بسم الله الرحمن الرحيم
ARRAY
«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»THE PART III«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»
السلام عليكم ورحمة الله وبركاته
موضوع المصفوفات من المواضيع المهمة لفهم اساس لغة السي ++ لان معظم البرامج تعتمد عليها
وماراح تفهم المؤشرات حتى تتقن المصفوفات .(وهذا راي شخصي)
][®][^][®][Multiple Subscripts Arrays][®][^][®][
المصفوفات متعددة الابعاد
ومثل ماشفتو ان المصفوفات يمكن ان تأخذ عدة ابعاد .ومن اشهر استخدامتها الجداول Tables الي هي عبارة عن مجموعة من القيم المرتبة ضمن مجموعة من الاسطر rows والاعمدة columns.
واذا بغينا نصل الى اي قيمة ضمن المصفوفة نحدد الدليلين : رقم السطر ورقم العمود للوصول الى العنصر..
نشوف المثال التالي
تحتوى هذي المصفوفة على بعدين وهي تتضمن 3 اسطر واربع اعمدة اي 3*4=12 .
خلونا نأخذكم في رحلة داخل المترجم عشان نعرف كيف يتم حجزها في الذاكرة ....>>هي بنا كوميسان هيا بنا لنعرف الحقيقة
(طبعا هو تخيلي)
مثل ما شفتم الصورة .....واعتقد وضحة عملية الوصول الى اي عنصر من عناصر المصفوفة .
ونقدر نعطي المصفوفة قيم ابتدائية عند التصريح عنها
نشوف المثال التالي وهي عملية اعطاء المصفوفة قيم ابتدائي :
كود:
int b[2][2] ={{1,2} , {3, 4}};
انتبة لعملية اعطاء القيم حيث انة تم تجميع قيم كل سطر ضمن قوسين كبيرين والقيمة 1 و 2 هي عبارة عن القيم الابتدائية للعنصرين
And
والقيم 3 و 4 هي قيم للعنصرين b[1][0] , b[1][1] f
واذا لم يوجد قيم كافية لسطر فانة يتم اعطاء القيم صفر نشووف المثال التالي :
كود:
int m[2][2] = {{1}, {3, 4}};
طيب نأخذ مثال
كود:
#include <iostream>
using namespace std;
void printArray(int [][3]);
void main()
{
int array1[2][3] = { {1,2,3} ,{4,5,6} };
int array2 [2][3] = {1,2,3,4,5};
int array3[2][3] = { {1,2} ,{4} };
cout<<"Valuse in array1 are :\n";
printArray(array1);
cout<<"Valuse in array2 are :\n";
printArray(array2);
cout<<"Valuse in array3 are :\n";
printArray(array3);
system("pause");
}
void printArray(int a[][3])
{
for (int i =0;i<=1; i++)
{
for (int j =0;j <= 2; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
المصفوفة الاولى مثل ما حنى عارفين ( وهي عملية ترتيب)
اما المصفوفة الثانية array2 احتوى تصريها على خمسة قيم والتي يتم اسنادها الى عناصر السطر الاولى ثم عناصر السطر التالي على التسلسل.والعنصر الي مالة قيمة يتم اعطائة صفر
يتم استدعاء دالة printArray لتقم بطباعة المصفوفات ومثل ما انتم شايفين عملية التكرار (loop) كيف تم استخدامها
ملاحظات :
يمكن للمصفوفة في لغة السي ++ تأخذ 12 بُعد .
من الاخطاء الشائعة تحديد عنصر من عناصر المصفوفة ثنائية البعد بهذي الطريقة
الى هنا وصلنا الى نهاية المصفوفات ...
وبقى نأخذ أسئلة ............
ودمتم سالمين