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

‬‬
‫الحمدل والصلة والسلم على افضل النبياء والمرسلين قدوتنا وحبيبنا وشفيعنا ان شاء ال محمد بن عبد ال‬
‫وعلى اله وصحبه اجمعين‪.......‬‬
‫كيف حالكم أخواني واخواتي اسأل ال ان تكونوا في أحسن حال‪......‬اليوم بعد ان انتهينا من جملة ال ‪switch‬‬
‫ننتقل بأذن ال الى موضوع مهم وعملي جدا‪...‬ال وهو جمل التكرار وتتمثل في ال ‪,while ,for loop‬‬
‫‪ do while‬وتستخدم هذه الجمل بدرجة واسعه في البرمجة بل معظم البرامج تحتوي عليها‪.‬‬
‫تخيل انه طلب منك عمل برنامج لدخال بيانات موظفين هذا البرنامج يقوم بأدخال السم و رقم التسلسل‬
‫للموظف ووظيفته وعدد ساعات عمله طبعا هنا ستحتاج تطلب من المستخدم اسمه ورقم التسلسل التابع له‬
‫ووظيفته و عدد ساعاته وهنا سيكون برنامجك يحوي اربع ‪ cout‬واربع ‪ cin‬لكل موظف تخيل لو انه طلب‬
‫منك كتابة هذه البرنامج لمئة موظف او اكثر طبعا المسألة غير مقبولة اذا استخدمت هذه الطريقة لن البرنامج‬
‫سيكون طويل جدا وممل جدا وبدون معنى ‪,‬فهنا يأتي دور جمل التكرار التي ستنقذك من هذا الموقف الحرج ومن‬
‫كتابة كل هذا الكلم‪.‬وسنشرحهم ان شاء ال بالتفصيل‪.‬‬
‫نصيحة ذهبية ‪ :‬المبرمج الناجح حينما يكتب برنامج يجعله مرن بحيث يستخدم لي استخدام للغرض الذي انشأ‬
‫من اجله مثل لو طلب منك عمل برنامج يحسب المتوسط طبعا يجب ان تجعله برنامج يحسب المتوسط لي عدد‬
‫من الدرجات ايا كان عددها وهكذا لك يستخدم في اي وقت وحاول تختار اسماء متغيرات واضحه وذات معني‬
‫اي اذا اردت ان تختار متغير تخزن فيه الدرجات اجعل اسمه ‪ grade‬اي درجه لك تتذكر هدفه ومعناه اذا‬
‫رجعت له بعد زمن او اردت تطويره‪.......‬‬
‫أعتذر على الطاله ننتقل مباشره لول جمل التكرار وهي ال ‪.while‬‬

‫جملة ال ‪: while‬‬
‫نبدا الن بالشكل العام لل ‪.... 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‬‬

‫{ ) ‪while ( x <= 10‬‬
‫;‪sum =sum+x‬‬
‫;‪x=x+1‬‬

‫‪8‬‬‫‪9‬‬‫‪10-‬‬

‫‪} // end while‬‬

‫‪11-‬‬

‫;‪cout << "The sum is: " << sum << endl‬‬

‫‪12-‬‬

‫;‪return 0‬‬

‫‪13-‬‬

‫‪} // end function main‬‬

‫‪14-‬‬

‫ننتقل الن لشرح البرنامج‪:‬‬
‫لحظ في السطر السادس قمنا بحجز مساحه لنحفظ فيها المجموع واسميناها ‪ sum‬ونوعها‬‫‪ integer‬لن الناتج مع لعداد صحيحه اكيد لن يكون ال عدد صحيح ‪,‬يمكن تتسائل لماذا جعلنا‬
‫قيمة ال ‪ sum =0‬هنا صفرنا الخانه التي سنخزن فيها المجموع لننا نحتاج لحفظ المجموع خانه‬
‫خالية من اي رقم لك نحصل على ناتج صحيح وفي العاده الذاكره يكون موجود فيها ‪ 1‬أو ‪ 0‬لذلك‬
‫ل نريد ان ندع المسأله للحظ اذا كان صفر حصلنا على ناتج صحيح واذا كان ‪ 1‬كان الناتج غير‬
‫صحيح ‪.‬نصفر الخانه ونكون في الجانب المن‪.‬‬
‫خذوا هذه العادة الحسنه‪ :‬عندما تريدون ان تحجزوا مساحه لحفظ الناتج بداخلها في البداية عند‬
‫تعريفها قوموا بتصفيرها كما فعلنا الن‪.‬‬
‫ في السطر السابع قمنا بحجز مساحه لمتغير اسميناه ‪ 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‬‬

‫‪// declare y‬‬
‫‪// initialize x‬‬
‫‪// initialize total‬‬
‫‪loop 10 times‬‬
‫‪perform calculation‬‬
‫‪output result‬‬
‫‪add y to total‬‬
‫‪increment counter x‬‬

‫‪//‬‬
‫‪//‬‬
‫‪//‬‬
‫‪//‬‬
‫‪//‬‬

‫)(‪int main‬‬
‫{‬
‫;‪int y‬‬
‫;‪int x = 1‬‬
‫;‪int total = 0‬‬

‫{ ) ‪while ( x <= 10‬‬
‫;‪y = x * x‬‬
‫;‪cout << y << endl‬‬
‫;‪total += y‬‬
‫;‪++x‬‬
‫‪} // end while‬‬

‫‪// display result‬‬

‫;‪cout << "Total is " << total << endl‬‬

‫‪// indicate successful termination‬‬

‫;‪return 0‬‬

‫‪} // end function main‬‬

‫ملحظه ‪ :‬التعليقات التي بعد علمة ‪ //‬مجرد تعليق لك انت اي ان البرنامج ل يعطيه اي اهميه‬
‫وقد وضحت هذه النقطه في الدروس السابقه لكن اعادة هذه اللحظه للتنبية ل تضر شيئا‪.‬‬

‫كما تعودنا اليكم هذا السؤال الذي اتمنى ان تحاولوا ان تجدوا الحل له وهو سهل جدا وسأضيف‬
‫اجابته في الدرس القادم ان شاء ال‪.‬‬
‫ قم بكتابة برنامج بأستخدام لغة السي ‪ ++‬يقوم بطلب الساس والس من المستخدم وايجاد الناتج‬‫‪ .‬مثال‬
‫‪Enter base as an integer:‬‬

‫‪3‬‬

‫‪Enter exponent as an integer‬‬

‫‪2‬‬
‫‪Power =9‬‬
‫السؤال سهل اليس كذلك‪‬‬
‫هنا نصل الى نهاية الدرس اليوم وفي الدرس القادم سنأخذ امثلة اكثر على ال ‪ while‬وتمارين‬
‫أعمق ‪.‬فيجب ان تتمكن من استخدامها جيدا للهميتها البالغة في برمجة السي ‪.++‬‬

‫‪§*)§®¤*~ˆ°‬سبحانك اللهم وبحمدك أشهد ان ل اله الانت استغفرك وأتوب أليك §*(§®‪°ˆ~*¤‬‬

‫`~'*‪))`~'*¤!||!¤‬كاتبة الدرس ‪......‬بنت النور‪......‬عفوا يمنع اجراء اي تعديل للملف ((`~'*‪`~'*¤!||!¤‬‬
‫`~'*‪))`~'*¤!||!¤‬نسألكم دعوة صادقة لختكم في ظهر الغيب ((`~'*‪`~'*¤!||!¤‬‬