Professional Documents
Culture Documents
الحمدل والصلة والسلم على افضل النبياء والمرسلين قدوتنا وحبيبنا وشفيعنا ان شاء ال محمد بن عبد ال
وعلى اله وصحبه اجمعين.......
كيف حالكم أخواني واخواتي اسأل ال ان تكونوا في أحسن حال......اليوم بعد ان انتهينا من جملة ال switch
ننتقل بأذن ال الى موضوع مهم وعملي جدا...ال وهو جمل التكرار وتتمثل في ال ,while ,for loop
do whileوتستخدم هذه الجمل بدرجة واسعه في البرمجة بل معظم البرامج تحتوي عليها.
تخيل انه طلب منك عمل برنامج لدخال بيانات موظفين هذا البرنامج يقوم بأدخال السم و رقم التسلسل
للموظف ووظيفته وعدد ساعات عمله طبعا هنا ستحتاج تطلب من المستخدم اسمه ورقم التسلسل التابع له
ووظيفته و عدد ساعاته وهنا سيكون برنامجك يحوي اربع coutواربع cinلكل موظف تخيل لو انه طلب
منك كتابة هذه البرنامج لمئة موظف او اكثر طبعا المسألة غير مقبولة اذا استخدمت هذه الطريقة لن البرنامج
سيكون طويل جدا وممل جدا وبدون معنى ,فهنا يأتي دور جمل التكرار التي ستنقذك من هذا الموقف الحرج ومن
كتابة كل هذا الكلم.وسنشرحهم ان شاء ال بالتفصيل.
نصيحة ذهبية :المبرمج الناجح حينما يكتب برنامج يجعله مرن بحيث يستخدم لي استخدام للغرض الذي انشأ
من اجله مثل لو طلب منك عمل برنامج يحسب المتوسط طبعا يجب ان تجعله برنامج يحسب المتوسط لي عدد
من الدرجات ايا كان عددها وهكذا لك يستخدم في اي وقت وحاول تختار اسماء متغيرات واضحه وذات معني
اي اذا اردت ان تختار متغير تخزن فيه الدرجات اجعل اسمه gradeاي درجه لك تتذكر هدفه ومعناه اذا
رجعت له بعد زمن او اردت تطويره.......
أعتذر على الطاله ننتقل مباشره لول جمل التكرار وهي ال .while
جملة ال : while
هنا تكتب الكود الذي تريد ان يطبقه البرنامج عند توفر الشرط فيه
}
لحظ عند استخدام ال whileيجب ان تستخدم الشكل السابق ,بين القوسين تكتب الشرط لدخول
ال whileويجب ان تبدأ ال whileبقوس مفتوح وتنهيها بقوس مغلق كما هو موضح
بالصورة ,وبين قوسين البداية والنهاية تكتب الكود الذي سيطبقه البرنامج عند توفر الشرط
لدخول ال .while
طبعا لك نفهم اكثر ننتقل لمثال عملي ستفهمون منه ان شاء ال كيفية التعامل مع ال while
أكثر.
-المطلوب كتابة برنامج يقوم بجمع العداد من 1الى , 10يعني .10+.......+5+4+3+2+1
>1-#include <iostream
;2-using std::cout
;3-using std::endl
)(4-int main
{5-
6- ;int sum=0
7- ;int x=1
8- { ) while ( x <= 10
9- ;sum =sum+x
10- ;x=x+1
12- ;cout << "The sum is: " << sum << endl
-في السطر السابع قمنا بحجز مساحه لمتغير اسميناه xونوعه عدد صحيح,وهذا المتغير
سيكون لنا بمثابة المؤشر الذي يؤشر على العدد الذي نصل له بعد جمع اي عدد وطبعا جعلنا
قيمته المبدئيه بواحد لننا نريد جمع الرقام من واحد الى . 10ولو اردنا جمع العداد من 3الى
10لجعلنا قيمته المبدئية . 3
-السطر السابع :هنا نبتدي ال whileلحظ يبدأ المترجم في البداية بالتأكد من الشرط ,والشرط
هنا) , (x <= 10سيقارن المترجم قيمة ال xوهي حاليا واحد وسينتج ان الشرط تحقق لن
الواحد أقل من ال عشرة .فسيدخل التكرار ويطبق السطور الكودية التي بداخل القوسين لل
. while
-السطر الثامن :هنا سيقوم البرنامج بجمع العدد الذي بالخانه المسماه xمع قيمة ال sum
وسينتج 1=1+0وستتغير قيمة ال sumالى واحد .
بعدها ينتقل البرنامج للسطر التاسع وقوم بزيادة قيمة المتغير xبمقدار واحد حتى ننتقل للرقم 2
ونقوم بجمعه مرة أخرى .لحظ لن يخرج البرنامج من ال whileاول سيقارن الشرط وفعل ال
2اقل من العشرة فسيدخل التكرار مرة اخرى ويطبق السطور التي بداخل ال , whileفيجمع
الناتج وهو الن يحتوي القيمة واحد بالقيمة التي في المتغير xويضيف القيمة الجديدة وهي 3
في المتغير sumوينزل للسطر الذي يليه وهو السطر التاسع ويزيد قيمة ال xبمقدار واحد
فتصبح قيمة ال x =3ثم يرجع البرنامج لل whileويقارن الشرط مرة اخرى وفعل يتحقق لن
ال 3أقل من 10ويدخل مرة اخرى داخل ال whileويطبق السطور الكودية التي بداخل ال
whileويستمر هكذا الى ان تصل قيمة ال xالى عشرة يقارنها بالشرط فيتحقق الشرط فيطبق
السطر الكودية التي بداخل ال whileهنا ستصل قيمة ال sum =45يضيف لها قيمة ال x
الحالية وهي 10فيصبح لدينا 55= 45+10فتتغير قيمة ال sum=55بعدها تزيد قيمة ال x
مقدار واحد فتصبح x=11يرجع البرنامج ويقارن الشرط هنا ل يتطبق الشرط قيخرج البرنامج
من ال whileويذهب الى السطر 12الناتج على الشاشة .:55The sum is
وهكذا ينتهي البرنامج وبهذا النمط والتكرار تكون طريقة سير البرنامج بأستخدام ال while
اتمنى ان تكون قد وصلت الفكرة وسأسرد أمثلة اخرى لتوضيح عمل ال whileولكن لن نفصل
سير البرنامج بهذا التفصيل السابق لننا قد سردنا التفصيل في المثال الول ...
مثال :2برنامج يقوم بطباعة مضروب العدد في نفسة من واحد الى عشرة وطباعة مجموعهم.
مثال الناتج على الشاشة سيكون كالتالي :
1
4
9
16
25
36
49
64
81
100
The total is :385
الحل:
>#include <iostream
;using std::cout
;using std::endl
)(int main
{
;int y // declare y
;int x = 1 // initialize x
;int total = 0 // initialize total
;cout << "Total is " << total << endl // display result
ملحظه :التعليقات التي بعد علمة //مجرد تعليق لك انت اي ان البرنامج ل يعطيه اي اهميه
وقد وضحت هذه النقطه في الدروس السابقه لكن اعادة هذه اللحظه للتنبية ل تضر شيئا.
كما تعودنا اليكم هذا السؤال الذي اتمنى ان تحاولوا ان تجدوا الحل له وهو سهل جدا وسأضيف
اجابته في الدرس القادم ان شاء ال.
-قم بكتابة برنامج بأستخدام لغة السي ++يقوم بطلب الساس والس من المستخدم وايجاد الناتج
.مثال
Enter base as an integer:
3
Enter exponent as an integer
2
Power =9
§*)§®¤*~ˆ°سبحانك اللهم وبحمدك أشهد ان ل اله الانت استغفرك وأتوب أليك §*(§®°ˆ~*¤