تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الأول (1)
#1
كاتب الموضوع : lo2i


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

(( وماأوتيتم من العلم إلا قليلاً ))

----------------------------------------------------------------------------------------------------------------------------

الدرس الحادي عشر ج(1) في دورة السي بلس بلس

-------------------------------------------------------------------------------------------------------------------------------



سنتعلم في هذا الدرس ان شاء الله :-

  • التعرف على فائدة المصفوفات .
  • التعرف على أنواع المصفوفات .
  • كيفية تعريف المصفوفة وإدخال القيم بداخل حقولها.
  • بعض المسائل لحلها بالمصفوفات .
-------------------------------------

أولاً : التعرف على فائدة المصفوفات .


مثال : لنفرض انك تريد إدخال درجات طلاب في مادة الحاسب الآلي للجهاز لمعالجتها وإخراج أكبر رقم وكذلك إخراج أصغر رقم وإخراج متوسط الدرجات للطلاب .. هنا تكمن فائدة المصفوفة


فستكون صعبة جدأً عليك ان تدخل قيمة درجة كل طالب على حدا


مثل


كود :
[color=#000000][COLOR=#0000bb]int student_1 [/color][color=#007700]= [/color][color=#0000bb]80[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_2 [/color][color=#007700]= [/color][color=#0000bb]90[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_3 [/color][color=#007700]= [/color][color=#0000bb]76[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_4 [/color][color=#007700]= [/color][color=#0000bb]55[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_5 [/color][color=#007700]= [/color][color=#0000bb]90[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_6 [/color][color=#007700]= [/color][color=#0000bb]76[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int student_7 [/color][color=#007700]= [/color][color=#0000bb]55[/color][COLOR=#007700];
     .
     .
     .
     [/COLOR][color=#0000bb]int student_30[/color][color=#007700]=[/color][color=#0000bb]77[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

فاختصاراً لهذه العملية الطويلة والقابلة للاخطاء الكثيرة من قبل المستخدم اثناء كتابة الكود ,,

فلهذا ظهر مبدأ المصفوفات

فاختصاراً للكود الطويل الذي كتبناه هو الكود التالي

كود :
[color=#000000][COLOR=#0000bb] int students[/color][color=#007700][[/color][color=#0000bb]30[/color][COLOR=#007700]];  
[/COLOR][color=#0000bb][/color][/COLOR]

في الكود السابق قمنا بتعريف مصفوفة مكونة من 30 متغير باسم students وهو من نوع رقم صحيح int

وهو اختصاراً للكود الطويل اعلاه .

--------------------------

ثانياً : التعرف على أنواع المصفوفات .


على حد علمي يوجد نوعان من المصفوفات

[SIZE=4]
[/SIZE]
  1. [SIZE=4]المصفوفات ذات البعد الواحد (الاستاتيكية)(Static)
  2. المصفوفات ذات الأبعاد الكثيرة (الديناميكية)(Dynamic)
------
[/SIZE]

[SIZE=4]بداية المصفوفات الاستاتيكية ..
[/SIZE]

هي مصفوفات تحدد طول المصفوفة على بعد واحد في الذاكرة



كما يظهر في الصورة السابقة هذه تمثل مصفوفة استاتيكية تم تعريفها وهذه هي صورتها في الذاكرة بعد تعريفها في البرنامج.


الكود التالي هو المسؤول عن الشكل الذي في الاعلى
كود :
[color=#000000][COLOR=#0000bb] int billy [/color][color=#007700][[/color][color=#0000bb]5[/color][COLOR=#007700]];  
[/COLOR][color=#0000bb][/color][/COLOR]


نأتي الان لنضع قيمة في كل غرقة من غرف المصفوفة


يوجد أكثر من طريقة لادخال قيمة لكل غرفة في المصفوفة ..


  • [SIZE=4]الأولى :
    كود :
    [color=#000000][COLOR=#0000bb] int billy [/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = { [/color][color=#0000bb]16[/color][color=#007700], [/color][color=#0000bb]2[/color][color=#007700], [/color][color=#0000bb]77[/color][color=#007700], [/color][color=#0000bb]40[/color][color=#007700], [/color][color=#0000bb]12071 [/color][COLOR=#007700]};  
    [/COLOR][color=#0000bb][/color][/COLOR]


  • الثانية وهي الطريقة المتعارف عليها في كثير من لغات البرمجة

كود :
[color=#000000][COLOR=#0000bb]billy[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]]=[/color][color=#0000bb]16[/color][COLOR=#007700];
[/COLOR][color=#0000bb]billy[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]]=[/color][color=#0000bb]2[/color][COLOR=#007700];
[/COLOR][color=#0000bb]billy[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]]=[/color][color=#0000bb]77[/color][COLOR=#007700];
[/COLOR][color=#0000bb]billy[/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]]=[/color][color=#0000bb]40[/color][COLOR=#007700];
[/COLOR][color=#0000bb]billy[/color][color=#007700][[/color][color=#0000bb]4[/color][color=#007700]]=[/color][color=#0000bb]12071[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

وفي كلتا الحالتيين هذه هي صورة المصفوفة في الذاكرة .
[/SIZE]

كود :
[color=#000000][COLOR=#0000bb] int jimmy [/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]][[/color][color=#0000bb]5[/color][COLOR=#007700]];  
[/COLOR][color=#0000bb][/color][/COLOR]

وسوف تمثل المصفوفة التالية في الذاكرة بالشكل التالي ..








ولنرجع قليلاً إلى الكود الذي قمنا بكتابته وهو



كود :
[color=#000000][COLOR=#0000bb] int jimmy [/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]][[/color][color=#0000bb]5[/color][COLOR=#007700]];  
[/COLOR][color=#0000bb][/color][/COLOR]

عندما تريد معرفة كم غرفة سوف تُبنى في الذاكرة

3 × 5 = 15 غرفة

-----------*----------

السؤال هنا كيف نصل إلى غرفة محددة في المصفوفات الديناميكية


فمثلاً اذا اردنا أن نضع قيمة 10 في الغرفة [2][2]


بكل سهولة

كود :
[color=#000000][COLOR=#0000bb] jimmy[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]][[/color][color=#0000bb]2[/color][color=#007700]]=[/color][color=#0000bb]10[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

مثال آخر اذا اردنا أن نصل للغرفة

كود :
[color=#000000][COLOR=#0000bb] jimmy[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]][[/color][color=#0000bb]3[/color][COLOR=#007700]]  
[/COLOR][color=#0000bb][/color][/COLOR]

وهذه الصورة توضح إلى الطريقة









===========

يتبع

}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الثاني (2) RaggiTech 0 2,619 19-10-12, 11:15 AM
آخر رد: RaggiTech
  الدرس العاشر ( 10 ) - - جملة التكرار Do While وكيفية التعامل معها RaggiTech 0 7,379 19-10-12, 11:07 AM
آخر رد: RaggiTech
  الدرس التاسع ( 9 ) - - جملة التكرار For وكيفية التعامل معها RaggiTech 0 3,135 19-10-12, 11:03 AM
آخر رد: RaggiTech
  الدرس الثامن ( 8 ) -- التعرف على جملة الـ Switch وكيفية التعامل معها RaggiTech 0 3,986 19-10-12, 11:02 AM
آخر رد: RaggiTech
  الدرس السابع ( 7 ) -- الانتقال للعمل على مكتبة ال Stdafx والتعرف على ملفات ال Header RaggiTech 0 5,166 19-10-12, 10:59 AM
آخر رد: RaggiTech
  الدرس السادس ( 6 ) -- حل لمشكلة التعليق على ال Ctrl + F5 اثناء تشغيل البرنامج RaggiTech 0 2,649 19-10-12, 10:55 AM
آخر رد: RaggiTech
  الدرس الخامس ( 5 ) -- الجمل الشرطية if statement شرح تفصيلي RaggiTech 0 4,139 19-10-12, 10:37 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 ) RaggiTech 0 2,651 19-10-12, 10:20 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) RaggiTech 0 3,918 19-10-12, 10:08 AM
آخر رد: RaggiTech
  الدرس الثالث ( 3 ) -- كتابة اول برنامج الــ HELLO WORLD و استخدام المكتبة String RaggiTech 0 2,458 19-10-12, 10:02 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم