الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

المصفوفات ثلاثيه الابعاد .. أرجو المساعده

مغلق
بدأه الدنيا حلوة في 14 فبراير 2012 · 4 رد · 3,419 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

اريد مساعدتكم مشكورين في الحصول على أمثله وشرح للمصفوفات الثلاثيه الابعاد

بحثت كثيرا ولم أحصل على ما أريد

#2

السلام عليكم هذا مثال واضح عن المصفوفات ثلاثية البعد :

#define HEIGHT 5
#define WIDTH 3
#define DEPTH 7

int main() {
  double ***p2DArray;

  // Allocate memory
  p2DArray = new double**[HEIGHT];
  for (int i = 0; i < HEIGHT; ++i) {
    p2DArray = new double*[WIDTH];

    for (int j = 0; j < WIDTH; ++j)
      p2DArray[j] = new double[DEPTH];
  }

  // Assign values
  p2DArray[0][0][0] = 3.6;
  p2DArray[1][2][4] = 4.0;

  // De-Allocate memory to prevent memory leak
  for (int i = 0; i < HEIGHT; ++i) {
    for (int j = 0; j < WIDTH; ++j)
      delete [] p2DArray[j];

    delete [] p2DArray;
  }
  delete [] p2DArray;

  return 0;
}

أنصحك بالبحث باللغة الإنجليزية إذا كنت تريد نتائج مباشرة و دقيقة !

#3

شكرا جزيلا

ولكن أريد أيضا شرحا للمثال

أو أمثله اخرى مشروحه

#4
Mohammad Walid كتب:

السلام عليكم هذا مثال واضح عن المصفوفات ثلاثية البعد :

#define HEIGHT 5
#define WIDTH 3
#define DEPTH 7

int main() {
  double ***p2DArray;

  // Allocate memory
  p2DArray = new double**[HEIGHT];
  for (int i = 0; i < HEIGHT; ++i) {
    p2DArray = new double*[WIDTH];

    for (int j = 0; j < WIDTH; ++j)
      p2DArray[j] = new double[DEPTH];
  }

  // Assign values
  p2DArray[0][0][0] = 3.6;
  p2DArray[1][2][4] = 4.0;

  // De-Allocate memory to prevent memory leak
  for (int i = 0; i < HEIGHT; ++i) {
    for (int j = 0; j < WIDTH; ++j)
      delete [] p2DArray[j];

    delete [] p2DArray;
  }
  delete [] p2DArray;

  return 0;
}

أنصحك بالبحث باللغة الإنجليزية إذا كنت تريد نتائج مباشرة و دقيقة !

السائل عن المصفوفات ثلاثية اﻻبعاد يبدو من سؤالة انه مبتدأ وايضا جديد على هذة الجزئية

فالتالى مثال يعتبرمفهوم مؤشر لمؤشر لمؤشر صعب تاما وثم الحجز الديناميكى للذاكرة زاد من التعقيد

فضلا ضع مثال للمبتدئين 3D array .

مثلا: مثال كالتالى شارح نفسة

#include <iostream>
using namespace std;

int main()
{
    // Create a 3D array that is 20 x 30 x 4
    int x = 5;
    int y = 3;
    int z = 2;

    int my_array[x][y][z];

    // Assign values to the elements
    int values = 0;
    for (int i = 0; i !=x ; ++i)
    {
        for (int j = 0; j != y; ++j)
        {
            for (int k = 0; k != z; ++k)
            {
                my_array[j][k] = values++;
            }
        }
    }

    for (int i = 0; i !=x ; ++i)
    {
        for (int j = 0; j != y; ++j)
        {
            for (int k = 0; k != z; ++k)
            {
               cout <<  my_array[j][k] << " " ;
            }
            cout << endl;
        }
        cout << endl;
    }

    return 0;
}

وهنا شرح المثال الذى ذكرة اخى اسابق عنى: www.cplusplus.com

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

شكرا جزيلا للجميع

يعطيكم العافيه :)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…