الدرس السادس المصفوفات
2 مشترك
صفحة 1 من اصل 1
الدرس السادس المصفوفات
لمصفوفات من الادوات الهامة في لغات البرمجة لتخزين قيم عددية او حرفية تحت نفس الاسم بمعنى آخر دعنا نرى المثال التالي لتخزين عدد
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
ويمكن ان تكون المصفوفة ذات اتجاهين مثل
لتمثل بلغة سي ++ كما يلي
int A[4][4];
ويكون العدد 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 Q;
Q = ‘A’;
عرفنا المتغير Q على انه حرف وبالتالي لانستطيع تخزين فيه سوى القيمة A فاءذا طلبت طباعة قيمة المتغير Q سيقوم البرنامج بطبع الحرف A فماذا لو اننا نريد تخزين عدة حروف تمثل اسم شخص اذا علينا بمصفوفة حروف كما يلي
char Q[40];
Q = “Mohamad Hasan”;
هل رأيت كيف تغلبنا على ذلك اعتمد الصيغة السابقة مؤقتا حتى الوصول لدرس يعطيك مزايا اكثر وشرح اوضح للمتغيرات الحرفية اننا لن نتأخر كثيرا عليك فهو الدرس القادم
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
1 0 11 22
33 52 11 17
18 25 14 41
لتمثل بلغة سي ++ كما يلي
int A[4][4];
حيث يكون العدد 44 المظلل بالاحمر هو
A[0][0] = 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”;
هل رأيت كيف تغلبنا على ذلك اعتمد الصيغة السابقة مؤقتا حتى الوصول لدرس يعطيك مزايا اكثر وشرح اوضح للمتغيرات الحرفية اننا لن نتأخر كثيرا عليك فهو الدرس القادم
Aminos- .:: V I P ::.
- عدد المساهمات : 14
السٌّمعَة : 50
تاريخ التسجيل : 11/06/2010
رد: الدرس السادس المصفوفات
تباركلاه عليك خاي آمين
تسلم الأيادي ما قصرت
الله يعطيك الصحة
تسلم الأيادي ما قصرت
الله يعطيك الصحة
younes-bcr- .::|| الإدارة ||::.
- عدد المساهمات : 93
السٌّمعَة : 0
تاريخ التسجيل : 09/06/2010
العمر : 36
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى