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

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

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

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


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

1- تعريف المصفوفة ونسب القيم لها اثناء تعريفها .
2- التعرف على كيفية تعبئة المصفوفات الديناميكية .
3- بعض التمارين مع جمل التكرار .

أولاً :- تعريف المصفوفة ونسب القيم لها اثناء تعريفها :-

إدخال القيم للمصفوفة يكون على نوعيين وهي اما إدخال القيم لها عند تعريف مصفوفة جديدة
او تركها للمستخدم ليقوم بتعبئتها ومن ثم يتم العمل على القيم التابعة لها لإخراج مجموعها مثلاً او متوسطها .
مثال على المصفوفات التي تضيف قيم لها عند تعريفها ..


كود :
[color=#000000][COLOR=#0000bb]int students_marks[/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = { [/color][color=#0000bb]7 [/color][color=#007700], [/color][color=#0000bb]3 [/color][color=#007700], [/color][color=#0000bb]9 [/color][color=#007700], [/color][color=#0000bb]10 [/color][color=#007700], [/color][color=#0000bb]0 [/color][COLOR=#007700]};  
[/COLOR][color=#0000bb][/color][/COLOR]


في الكود السابق قمنا بتعريف مصفوفة تحمل 5 عناصر
ملاحظة :- يبدأ العد من المصفوفة من الصفر
في المثال السابق هذا هو وضع الترقيم

0 1 2 3 4
قمنا بتسمية المصفوفة بـ
students_marks
ونمط المصفوفة رقم صحيح لأنها مسبوقة بـ int


على العموم عند كتابتك لهذا الكود ووضعه في البرنامج بهذا الشكل لن تستفيد منه شيئاً
لذا نريد العمل معها والتعديل فيها
بداية دعونا نقوم بطباعة جميع قيم هذه المصفوفة في الـ cmd (الشاشة السوداء)

قم بسمح كل شي مكتوب في البرنامج وقم بنسخ هذا الكود

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int students_marks[/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = { [/color][color=#0000bb]7 [/color][color=#007700], [/color][color=#0000bb]3 [/color][color=#007700], [/color][color=#0000bb]9 [/color][color=#007700], [/color][color=#0000bb]10 [/color][color=#007700], [/color][color=#0000bb]0 [/color][COLOR=#007700]};
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"The array values are\n\n"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]] << [/color][color=#0000bb]endl [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]] << [/color][color=#0000bb]endl [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]] << [/color][color=#0000bb]endl [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]3[/color][color=#007700]] << [/color][color=#0000bb]endl [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]4[/color][color=#007700]] << [/color][color=#0000bb]endl [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cin[/color][color=#007700].[/color][color=#0000bb]get[/color][COLOR=#007700]();
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

هذا الكود سوف يعطيك هذه الشاشة :-





نأتي الان لنضع نفس الكود ولكن بجملة تكرار for

نمسح كل شي ُكتب في البرنامج ونقوم بكتابة هذا الكود

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int students_marks[/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = { [/color][color=#0000bb]7 [/color][color=#007700], [/color][color=#0000bb]3 [/color][color=#007700], [/color][color=#0000bb]9 [/color][color=#007700], [/color][color=#0000bb]10 [/color][color=#007700], [/color][color=#0000bb]0 [/color][COLOR=#007700]};
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"The array values are\n\n"[/color][COLOR=#007700];
for ([/COLOR][color=#0000bb]int x [/color][color=#007700]= [/color][color=#0000bb]0 [/color][color=#007700]; [/color][color=#0000bb]x [/color][color=#007700]< [/color][color=#0000bb]5 [/color][color=#007700]; [/color][color=#0000bb]x[/color][COLOR=#007700]++){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]x[/color][color=#007700]] << [/color][color=#0000bb]endl[/color][COLOR=#007700];
};
[/COLOR][color=#0000bb]cin[/color][color=#007700].[/color][color=#0000bb]get[/color][COLOR=#007700]();
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

كما تلاحطوا جملة التكرار أكثر سهولة وأناقة من الكود السابق
وستظهر لنا نفس الشاشة





وخصوصاً اذا كان عناصر المصفوفة كثيرة فمن الصعب طباعة كل عنصر على حدى
هنا تبرز مهمة جملة التكرار for

سوف نجرب نفس الكود مع جملة التكرار while

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int students_marks[/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = { [/color][color=#0000bb]7 [/color][color=#007700], [/color][color=#0000bb]3 [/color][color=#007700], [/color][color=#0000bb]9 [/color][color=#007700], [/color][color=#0000bb]10 [/color][color=#007700], [/color][color=#0000bb]0 [/color][COLOR=#007700]};
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"The array values are\n\n"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0 [/color][COLOR=#007700];
do
{
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]] << [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]i[/color][COLOR=#007700]++;
}
while ([/COLOR][color=#0000bb]i [/color][color=#007700]< [/color][color=#0000bb]5[/color][COLOR=#007700]);
[/COLOR][color=#0000bb]cin[/color][color=#007700].[/color][color=#0000bb]get[/color][COLOR=#007700]();
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

وسيظهر لنا ايضاً نفس الشاشة




التعامل مع جمل التكرار في غاية السهولة
ويمكنك ايضاً الرجوع لهذه الدروس

الدرس التاسع ( 9 ) : - جملة التكرار For وكيفية التعامل معها
الدرس العاشر ( 10 ) : - جملة التكرار Do While وكيفية التعامل معها
----------------------------
ثانياُ : تعبئة المصفوفات الديناميكية ذات الأبعاد الكثيرة

طريقة تعبئة المصفوفات العادية (ذات البعد الواحد) (الاستاتيكية)


كود :
[color=#000000][COLOR=#0000bb]int students_marks[/color][color=#007700][[/color][color=#0000bb]3[/color][COLOR=#007700]] ;
[/COLOR][COLOR=#ff8000]//fill the array
[/COLOR][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]]=[/color][color=#0000bb]7[/color][COLOR=#007700];
[/COLOR][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]]=[/color][color=#0000bb]4[/color][COLOR=#007700];
[/COLOR][color=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]2[/color][color=#007700]]=[/color][color=#0000bb]6[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

في السطر الاول قمنا بتعريف المصفوفة التي تحتوي على 3 متغيرات باسم students_marks

طريقة تعبئتها سهلة جداً وهي كتابة اسم المصفوفة ثم فتح قوسيين مربعيين []
وكتابة رقم ال index بداخله للقيمة التي تريد التعامل معها ,,
-------------------------------
طريقة تعبئة المصفوفات الديناميكية


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

لنفرض اننا قمنا بتعريف مصفوفة ديناميكية بهذا الكود

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

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

هكذا مثلاً


كود :
[color=#000000][COLOR=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]]=[/color][color=#0000bb]7[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

فستلاحظ الخطأ التي سيظهر لك
لان المصفوفة التي تتعامل معها مكونة من بعديين وليس من بعد واحد !!








لحل هذه المشكلة ينبغي عليك تحديد البُعد الثاني للمصفوفة
اكتب هذا

كود :
[color=#000000][COLOR=#0000bb]students_marks[/color][color=#007700][[/color][color=#0000bb]0[/color][color=#007700]][[/color][color=#0000bb]0[/color][color=#007700]]=[/color][color=#0000bb]7[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]


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

يتبع

والان جرب
واعطيني النتيجة
====================
========
==


انتظروا الدرس الثاني عشر !!


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الأول (1) RaggiTech 0 909 19-10-12, 11:17 AM
آخر رد: RaggiTech
  الدرس العاشر ( 10 ) - - جملة التكرار Do While وكيفية التعامل معها RaggiTech 0 2,241 19-10-12, 11:07 AM
آخر رد: RaggiTech
  الدرس التاسع ( 9 ) - - جملة التكرار For وكيفية التعامل معها RaggiTech 0 858 19-10-12, 11:03 AM
آخر رد: RaggiTech
  الدرس الثامن ( 8 ) -- التعرف على جملة الـ Switch وكيفية التعامل معها RaggiTech 0 1,293 19-10-12, 11:02 AM
آخر رد: RaggiTech
  الدرس السابع ( 7 ) -- الانتقال للعمل على مكتبة ال Stdafx والتعرف على ملفات ال Header RaggiTech 0 1,202 19-10-12, 10:59 AM
آخر رد: RaggiTech
  الدرس السادس ( 6 ) -- حل لمشكلة التعليق على ال Ctrl + F5 اثناء تشغيل البرنامج RaggiTech 0 826 19-10-12, 10:55 AM
آخر رد: RaggiTech
  الدرس الخامس ( 5 ) -- الجمل الشرطية if statement شرح تفصيلي RaggiTech 0 2,021 19-10-12, 10:37 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 ) RaggiTech 0 656 19-10-12, 10:20 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) RaggiTech 0 923 19-10-12, 10:08 AM
آخر رد: RaggiTech
  الدرس الثالث ( 3 ) -- كتابة اول برنامج الــ HELLO WORLD و استخدام المكتبة String RaggiTech 0 648 19-10-12, 10:02 AM
آخر رد: RaggiTech

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


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