مدونة علم البرمجة والحاسوب
من حقك ان تتعلم اكثر

المصفوفات سي بلس بلس - C++ Array

لمصفوفات من الادوات الهامة في لغات البرمجة لتخزين قيم عددية او حرفية تحت نفس الاسم بمعنى آخر دعنا نرى المثال التالي لتخزين عدد
int A;
 A=5;
في هذا المثال لم نستطع ان نخزن في المتغير المعلن عنه وهو عدد صحيح سوى قيمة واحدة فقط ولو حاولت (بالطبع تتفق معي في هذا ) تخزين قيمة اخرى فسوف تلغي القيمة الاولى لتحل محلها القيمة الجديده تقوم المصفوفات بعلاج هذه المشكلة مثال لذلك.
int A[50];
اعلن عن مصفوفة اعداد صحيحة تستطيع تخزين خمسون عدد صحيح كما يلي
 A[0] = 5;
A[1] = 10;
.
A[49] = 300;
مع ملاحظة ان التعبير التالي سوف يعتبر خطأ جسيم مع لغة سي++
A[50] = 200;
رغم ان المصفوفة تتسع ل 50 رقم الا ان المصفوفة تبدء من العنصر A[0] وتنتهي بالعنصر A[49]  وبذلك يكون مجموع العناصر 50 كما طلبت شاملا الرقم صفر وفي لغة سي++ دائما نبدء العد من صفر وليس من 1
  ويمكن ان تكون المصفوفة ذات اتجاهين مثل
15 65 33 44
1  0  11 22
33 52 11 17 
18 25 14 41
  لتمثل بلغة سي ++ كما يلي
 int A[4][4];
  حيث يكون العدد 44 المظلل بالاحمر هو
A[0][0] = 44;
 
ويكون العدد 18 المظلل بالاخضر هو
A[3][3] = 18;
  وافضل طريقة لتعبئة وتخصيص قيم لمصفوفة وللتعامل مع المصفوفات بصفة عامة هي عمل looping  باستخدام for  او غيرها كما سبق ووضحنا ذلك وكمثال  لملئ المصفوفة التالية بالقيمة صفر

int A[100];
int I;
for (I = 0 ; I < 100 ; I++)
{
A[I] = 0;
}
بالطبع الدوران السابق يغير قيمة العداد من صفر الى 99 ووضعنا داخل البلوك تخصيص لعناصر المصفوفة وبدلا من وضع قيمة عددية لتشير لعنصر بالمصفوفة وضعنا رمز العداد حيث انه سوف يتغير مع الدوران الذي يحدث وبالتالي تتخصص القيم حسب الترتيب
  ولتخصيص القيم صفر مثلا لمصفوفه ذات اتجاهين
int A[10][10] , I , J;
for (I = 0 ; I < 10 ; I++)
{
for (J = 0 ; J < 10 ; J++)
{
A[I][J] = 0;
}
}
بوضع دورتين واحدة تدور على الصفوف حتى تنهيها وتعود لتغير الصف وهكذا كما سبق وتعلمت
  ولنا في المصفوفات مآرب أخرى
  لاتحتوي لغة سي ++ على تعريف ثابت وداخلي للمتغيرات الحرفية ولذلك يتم تلافي ذلك باستخدام المصفوفات ربما يعترض واحد من المتابعين لهذه الدروس بأن الامر char يقوم بذلك نعم هو كذلك ولكنه يعرف المتغير على انه حرف واحد فقط ونحن سنتحايل عليه بالمصفوفات كما يلي
char  Q;
Q = ‘A’;
عرفنا المتغير Q على انه حرف وبالتالي لانستطيع تخزين فيه سوى القيمة A  فاءذا طلبت طباعة قيمة المتغير Q سيقوم البرنامج بطبع الحرف A  فماذا لو اننا نريد تخزين عدة حروف تمثل اسم شخص اذا علينا بمصفوفة حروف كما يلي
char Q[40];
Q = “Mohamad Hasan”;
هل رأيت كيف تغلبنا على ذلك اعتمد الصيغة السابقة مؤقتا حتى الوصول لدرس يعطيك مزايا اكثر وشرح اوضح للمتغيرات الحرفية اننا لن نتأخر كثيرا عليك فهو الدرس القادم

أرشيف المدونة الإلكترونية

من انا ؟