ممكن شرح للمصفوفه متعدده الاتجاهات بالأمثله
لأنى فاهم الموضوع كــ Logic لكن مش قادر انفذ
يعنى مثلا مثال ثم نشرح على المثال ماذا حدث فيه
جزاكم الله خيرا
وفعلا انا اسف على الازعاج .. لكن والله الدرس ده هايفيد كتير مثلى وخاصة اللى معايا فى الــ lab
ممكن شرح للمصفوفه متعدده الاتجاهات بالأمثله
لأنى فاهم الموضوع كــ Logic لكن مش قادر انفذ
يعنى مثلا مثال ثم نشرح على المثال ماذا حدث فيه
جزاكم الله خيرا
وفعلا انا اسف على الازعاج .. لكن والله الدرس ده هايفيد كتير مثلى وخاصة اللى معايا فى الــ lab
السلام عليكم ورحمة الله وبركاته
هل تقصد Multidimensional Array ؟
اذا كنت تقصده فاتمني ان هذا الشرح يفيدك :
خلينا نبدأ من الاول:
اولا هل تعرف تخزن درجة واحدة لطالب ما؟ طبعا الجواب نعم
كيف؟ طبعا الجواب عن طريق عمل variable من نوع float
float studentDegree=50;
لاحظ استخدام الفلوت لان ممكن درجة الطالب تكون 50.5
طب لو كانت لا تقبل الكسر؟ الجواب : هستخدم int
احنا كده خزنة درجة واحدة طب لو عاوز تخزن درجات الطالب كلها هتعمل ايه ؟؟؟
امامك حلين
1- انك تعرف متغير لكل درجة مثلا:
int mathDegree=100;
int physicsDegree=65;
int englishDegreee=40;
.
.
.,وهكذا
طبعا في هذه الحالة عدد المواد قليل
طب افرض ان عدد المواد 100 (مثلا) هتعمل ايه؟؟ طبعا صعب تعمل متغير لكل مادة وكل ما تحتاج تعمل عملية حسابية علي المواد تكتب اسمائهم كلهم
عشان كده هنلجأ للحل الاخر
طبعا طبعا هو ال Array الجميل
لو عوزين نخزن 6 مواد مثلا نعمل ايه؟باستخدام الاريه
int [] studentDegrees=new int [6]; studentDegrees[0]=100; studentDegrees[1]=150; studentDegrees[3]= 200 studentDegrees[4]= 200; studentDegrees[5]= 90;
طبعا انت عارف ليه احنا عملنا من 0 الي 5
كده احنا قدرنا نخزن درجات الطالب . طب افرض ان احنا عوزين نجيب مجموعهم ؟؟
باستخدام الطريقة الاولي
int sum = mathDegree+englishDegree+physicsDegree;
طبعا انت متخيل ايه هيحصل لو كان العدد كبيييييييييرررررررررررررر
باستخدام الطريقة الثانية
int sum=0; for (int i=0;i<6;i++) sum+=studentDegrees;
طبعا مهما زاد العدد مش مشكلة
طب افرض ان عاوزين نخزن درجات طالبين نعمل ايه
برده امامك حلين اما انك تعمل اريه لكل طالب وبالتالي كلما زاد عدد الطلاب هيزيد عدد الاريهات وانت فاهم الباقي
حلينا ندخل ع الحل التاني
وهو ان نعمل جدول الصفوف بتاعته هي الطلاب والاعمدة هي المواد يعني بمعني اخر كل صف يمثل درجات طالب
خلينا نكلم بلغة البرمجة الجدول يمثل في لغة البرمجة الاريه متعدد الاتجاهات يعني ايه متعدد الاتجاهات؟؟
يعني له اعمدة وصفوف .حاول دائما تتخيله جدول (هو بالفعل جدول)
نكلم بمثال :
احنا عاوزين نعمل جدول(اريه) به 2 طلاب كل طالب له 5 مواد هتعملها ازاي؟؟
سهلة اوي اعمل جدول به 2 صفوف و5 اعمدة
ازاي بالسي شارب؟؟؟
int [,] studentsDegrees=new int [5,2];
لاحظ كتابة عدد الاعمدة الاول ثم الصفوف
افرض انا عاوزة اخزن درجة اول مادة للطالب الاول
سهلة اوي لو تخيل الجدول امامك هتجد ان درجة اول مادة للطالب الاول هي اول خانة في الجدول
يعني ايه اول خانة؟؟
يعني موجودة في الصف الاول العمود الاول وبالتالي هتكون هي الخالية رقم [0,0]
طب افرض ان انا عاوزةاخزن درجة رابع مادة للطالب الثاني
نفصصها حتة حتة
رابع مادة يعني العمود رقم 4اللي ال index بتاعه هو طبعا 3
الطالب الثاني يعني الصف رقم 2 اللي ال index بتاعه هو طبعا 1
يبقي درجة المادة الرابعة للطالب الثاني هي
studentsDegrees [3,1]=80;
لاحظ ان كتابنة رقم العمود الاول ثم رقم الصف
طب لو عاوز تجمع درجات الطالب الاول
int sum =0; for(int i=0;i<5;i++) sum=sum+studentsDegree[i,0];
وبنفس الطريقة نقدر نجمع درجات الطالب الثاني
طب افرض ان عندك 100 طالب كل طالب له 12 مادة وعاوز تجمع درجات كل واحد هتعمل ايه؟؟
طبعا مستحيل تعمل 100 forloop
طب ايه الحل
1- تعرف اريه للطلاب
int studentsSubjects[,]=new int [12,100];
2- تعمل اريه به 100 خانة لوضع مجموع درجات كل طالب في الخانة المقابلة
int [] subjectsSum=new int [100];
3- تمر علي صف صف وتجمع المواد بتعته؟؟ ازاي؟؟ طبعا هتستخدم اتنين forloop جوه بعض الاولي تمر علي الطلاب
والثانية تمر علي المواد
for(int i=0;i<100;i++) for(int j=0; j<12;j++) subjectsSum+=studentsSubjects[j,i];
لاحظ ترتيب [j,i]
ملحوظة مهمة جدا هناك اكثر من طريقة لتعريف الاريه انا لم اذكرهم للتبسيط
بنحدد عدد الضيمنشن بتاع الاريه من عدد الصفوف يعني لما اقول two dimensional array ده معناه انه به صفين واي عدد من الاعمدة
لمعرفة المزيد عن الاريه دور في msdn هتجد امثلة جميلة
بصراحة كتر الف خيرك يا اخت دعاء على الشرح والله
والله يبارك فيكى
وانا باكتب الموضوع كنت خايف يطلع انه مخالف لأنى شوفت كتير من المواضيع بتتكلم فى المصفوفات لكن مش عارف ليه ماكنتش قادر افهم
ولفته جميله بخصوص ال msdn ان شاء الله هابص فيها وجزاك الله خيرا
استاذنا بن العيد الف شكر على مرورك ..
هذا الموضوع مغلق.