الصيغة العامة لجملة التكرار for statement
اكتب برنامج بلغة ++c لطباعة اسم بلدك خمس مرات
تخيل لو طلب منك طباعة الأعداد من 1 إلى 5000 كيف ستفعل ذلك إنّ جملة التكرار for statement هي واحدة من أشهر جمل التكرار، وتستخدم لتكرار تنفيذ جمل لغة C++ عدد محدداً من المرات.
أولاً: الصيغة العامة لجملة التكرار for statement.
for (Variable_name= initial_value ; condition; step)
{
Statement 1;
…
Statement n;
}
حيث إن:
for | تعلن عن بدء جملة التكرار. C++ كلمة محجوزة من كلمات لغة |
---|---|
Variable_name | هو اسم متغير، يجب الالتزام بشروط اختيار اسم المتغير. |
initial_value |
القيمة الابتدائية للعداد، قد تكون قيمة عددية أو متغيراً عددياً أو تعبيراً حسابياً. ويمكن تعريف المتغير في هذه الخطوة مثلاً: int counter=1. |
condition | شرط (تعبير علائقي أو منطقي) الدخول إلى جمل التكرار. |
step | الزيادة الدورية لقيمة العداد(الإجراء الذي يحدث بعد تنفيذ الجمل المراد تكرار تنفيذها) ، وقد تكون موجبة أو سالبة، عدداً صحيحا أو عدداً عشرياً، تعبيراً حسابياً أو متغيراً عددياً. وعادة يستخدم معامل الزيادة (++)أو معامل النقصان(--). |
{ | رمز بداية جملة التكرار، وتستخدم في حال وجود أكثر من جملة مراد تكرار تنفيذها. |
statement 1; … statement n | الجمل التي نرغب بتكرار تنفيذها++C. |
} | رمز نهاية جملة التكرار. |
لاحظ في الصيغة العامة وضع الأقواس للاحتفاظ بقيمة العداد والشرط ومقدار الزيادة أو النقصان في العداد مع وجود فواصل منقوطة بينها.
عند تنفيذ جملة التكرار for يأخذ العداد القيمة الابتدائية، ثم يتحقق من الشرط (condition) فإذا كانت قيمة الشرط صائبة يتم تنفيذ الجمل المراد تكرار تنفيذها، ثم تعدل قيمة العداد حسب قيمة الزيادة أو النقصان المحددة, ويتحقق من قيمة الشرط(condition) فإذا كانت قيمته صائبة ينفذ الجمل المراد تكرار تنفيذها ويعدل قيمة العداد بمقدار قيمة الزيادة أو النقصان المحددة ثم يتحقق من الشرط وهكذا... إلى أن تصبح قيمة الشرط خاطئة عندها يخرج من جملة التكرار وينفذ الجمل التي تليها. والشكل الآتي يوضح مخطط سير العمليات لجملة التكرار for.
البرنامج الآتي يطبع "Hello world" باستخدام جملة التكرار for خمس مرات.
في هذا البرنامج لاحظ أنه في جملة for تم إنشاء متغير اسمه i واستعماله كعداد وإسناد قيمة أولية له مقدارها 1 وشرط التنفيذ أنه قيمة العداد i لا تتجاوز الخمسة، وفي كل مرة يزداد العداد بمقدار 1 من خلال معامل الزيادة. وتم الفصل بينها باستخدام فواصل منقوطة.
كيف يعمل هذا البرنامج:
قيمة i الأولية هي 1، يتحقق البرنامج من أن جواب شرط التنفيذ هو صائب وبما أنه صائب يقوم بتنفيذ جملة الطباعة وهي طباعة عبارة Hello world وبعدها يقوم بإضافة 1 للعداد فتصبح قيمة العداد 2 فيعود البرنامج للتأكد من تحقق الشرط أي هل 5 => 2 وبما أنّ جواب الشرط True فسيتم تنفيذ الجملة وسيتم طباعة Hello world وبعدها تزداد قيمة العداد بمقدار 1 فتصبح قيمة العداد 3 . يعود البرنامج للتحقق من صواب الشرط أي هل 3 أصغر أو تساوي 5 - الإجابة نعم - فسيتم تنفيذ جملة الطباعة مرة ثالثة ويزداد العداد بمقدار واحد ليصبح 4 ثم يتم التحقق من الشرط هل 4 أقل أو تساوي 5 الإجابة نعم. إذًا سيتم طباعة العبارة Hello world ويزداد العداد بمقدار واحد ليصبح 5 . ثم يتحقق البرنامج من الشرط هل 5 أقل أو تساوي 5 الإجابة نعم - بالتالي سيتم طباعة العبارة Hello world مرة خامسة ويزداد العداد بمقدار واحد ليصبح 6. يقوم البرنامج بالتحقق هل 6 أقل أو تساوي 5 الإجابة False سيتوقف الدوران وينتقل البرنامج لتنفيذ أول جملة بعد جمل الدوران وفي هذا السؤال لا يوجد جمل لتنفيذها فسينتهي البرنامج.
ناتج تنفيذ البرنامج :
مثال 1: اكتب برنامجًا بلغة ++c لطباعة الأعداد من 0 إلى 8 باستخدام جملة التكرار for.
في هذا السؤال قيمة المتغير هي نفسها قيمة العداد وبالتالي يجب طباعة قيم العداد نفسها.
ناتج البرنامج هو:
لاحظ أنه عندما تكون قيمة العداد j أقل أو تساوي 8 يطبع قيمته، ويتوقف التكرار عندما تصبح قيمة العداد 9. إذا قيمة العداد j عند توقف التكرار هي 9.
نشاط (2-24): طباعة الأعداد من 1 إلى 10
بالتعاون مع أفراد مجموعتك نفذ الآتي:
- اكتب برنامجاً لطباعة الأعداد من 1 إلى 10 باستخدام جملة التكرار for.
- قم ببناء البرنامج ونفذه، ماذا تلاحظ؟
طُبعت الأعداد تصاعديًا.
- عدل البرنامج ليطبع الأعداد من -7 إلى 9، ثم قم ببناء البرنامج ونفذه، ماذا تلاحظ؟
طُبعت الأعداد تصاعديًا.
- عدل البرنامج السابق لطباعة الأعداد من 15 إلى 1، قم ببناء البرنامج ونفذه، ماذا تلاحظ؟
ناتج تنفيذه
طُبعت الأعداد تنازليًا.
احفظ البرنامج في ملف المجموعة.
مثال 2: اكتب برنامجًا لطباعة الأعداد الزوجية من 2 إلى 16، باستخدام جملة التكرار for.
رقم 2 هو القيمة الابتدائية للعداد.
العدد 16 هو القيمة النهائية للعداد.
ولكن البرنامج يحتاج إلى طباعة الأعداد الزوجية فقط. البرامج السابقة جميعها كان العداد يزداد بمقدار واحد في هذا السؤال يجب أن يزداد العداد بمقدار 2 ليطبع الأعداد الزوجية فقط.
وناتج تنفيذ البرنامج هو:
لاحظ أنه تم طباعة قيمة العداد النهائية بعد توقف جملة التكرار وهي 18.
نشاط (2-25): طباعة متسلسلة
بالتعاون مع أفراد مجموعتك نفذ الآتي:
- أكتب برنامجاً يقوم بطباعة المتتالية الآتية:
5 , 10 , 15 , 20 ,…, 100
- قم ببناء البرنامج ونفذه، ماذا تلاحظ؟
الأعداد تُطبع بفارق 5 بين كل عدد والآخر.
- عدل البرنامج السابق ليقوم بطباعة المتتالية الآتية:
3.25 , 3.50 , 3.75 , 4 , …. ,10
- قم ببناء البرنامج ونفذه، ماذا تلاحظ؟
الأعداد تُطبع بفارق 0.25 بين كل عدد والآخر ولاحظ أنها وضعت في المكان الذي كُتِب في step في الصيغة العامة
احفظ البرنامج في ملف المجموعة.
نشاط (2 -26): ناتج تنفيذ
بالتعاون مع أفراد مجموعتك نفذ البرنامج الآتي:
- ما ناتج تنفيذ البرنامج السابق؟
- عدل البرنامج السابق بحيث يطبع الأحرف كبيرة (Capital Letters) من A إلى Z.
احفظ البرنامج في ملف المجموعة.
مثال 3: اكتب برنامجًا يقوم بإدخال 5 أعداد وطباعة العدد الأصغر باستخدام جملة التكرار for.
نفترض المتغيرات الآتية:
العدد المدخل Num
العداد counter
أصغر عدد Min
نقوم أولًا بإدخال عدد من بين الخمسة أعداد ونفترض بأنه هو أصغر عدد
ثم نكتب جملة التكرار وندخل في كل مرة عدد ونقارنه فإذا كانت قيمة العدد المدخل أقل من العدد المخزن في المتغير Min نجعل Min = Num لتصبح القيمة الصغرى مخزنة في المتغير Min.
لاحظ أننا وضعنا إشارة أصغر فقط عند الشرط وذلك لأننا أدخلنا عددًا قبل جملة الدوران.
ناتج البرنامج هو:
نشاط (2-27): طباعة العدد الأكبر
بالتعاون مع أفراد مجموعتك نفذ الآتي:
- اكتب برنامجاً لإدخال عشرة أعداد ثم طباعة العدد الأكبر من بينها.
- قم ببناء البرنامج ونفذه.
- أدخل عشرة أعداد، ماذا تلاحظ؟
قام البرنامج بطباعة أكبر عدد من بين الأعداد المدخلة.
احفظ البرنامج في ملف المجموعة.
مثال 4: أكتب برنامجًا بلغة ++c لطباعة الشكل الآتي باستخدام جملة التكرار for.
**********
**********
**********
**********
عدد الأسطر هو 4 وبالتالي فإن البرنامج يجب أن يُنفذ أربع مرات فإذا بدأنا من العدد 1 يجب أن يكون الشرط أن العداد أقل أو يساوي 4
وإذا بدأنا من العدد 0 يجب أن يكون أقل من 4 وهكذا
وناتج التنفيذ هو:
نشاط (2-28): ناتج تنفيذ
بالتعاون مع أفراد مجموعتك نفذ البرنامج الآتي:
- ما ناتج تنفيذ البرنامج السابق.
- عدل البرنامج السابق بإضافة الجملة cout<<m; بعد جملة التكرار. ماذا تلاحظ؟
أعطى المترجم رسالة خطأ؛ لأن المتغير (m) غير معروف لديه؛ إذ كان تعريفه داخل جملة التكرار.
احفظ البرنامج في ملف المجموعة.