الدرس الحادي عشر تركيبة For للتكرار
بسم الله الرحمن الرحيم
في الدرسين السابقين وضحنا تركيبة while للتكرار ووضحنا أشكال استعمالها :
1- استخدام while كعداد
2- عدد while يعتمد على قيمة مدخلة .
3- التراكيب المتداخلة .
ووضحنا تركيبة do/while أيضا ً
وفي هذا الدرس إن شاء الله سنشرح تركيبة جديدة وهي تركيبة for وتركيبة foreach للتكرار:
بسم الله نبدأ :
* تركيبة for للتكرار :
وهي عبارة عن تجميع للجمل المستخدمة في while في جمله واحدة . والشكل التالي يوضح جملة for وأجزاؤها :
سنقوم الآن ببناء برنامج للعد من 1 – 5 لكلى التركيبتين والمقارنة بينهما لتوضيح الفكرة أكثر :
البرنامج على تركيبة while :
C#
1 int counter = 1;
2
3 while ) counter >= 5(
4 }
5Console.WriteLine) counter (;
6counter++;
7 {
البرنامج على تركيبة for :
C#
1 for )int counter = 1 ; counter >= 5 ; counter++(
2 Console.WriteLine)counter(;
من الواضح أن جملة for مختصره لجملة while ، وقبل المقارنة لاحظ الشكل التالي الموضح لأجزاء تركيبة for الرئيسية :
تتكون تركيبة for من ثلاث أجزاء تفصل بينهم فاصلة منقوطة :
الجزء الأولوهو متغير التحكم )Control variable( وهو المتغير الذي يتحكم باستمرارية الدوران للعد أو الخروج من الدارة بالاعتماد على قيمته ، مسند إليه قيمة بدائية للبدء منها ، ويمكن تعريف هذا المتغير خارج التركيبة لكن عند استخدامها داخل التركيبة يجب إعطائها قيمة بدائية كما يلي :
C#
int counter ;
for) counter = 1 ; counter >= 5 ; counter++(
لكن من الأفضل تعريفها كما في الشكل السابق .
ملاحظة :
عند تعريف متغير التحكم داخل جملة for يكون محصور داخل جسمها )body( أي لا يمكن استخدامه خارجها ، أم في الحالة الثانية وهي تعريف المتغير خارج جملة for فيمكن استخدامه في أماكن أخرى من البرنامج .
الجزء الثانيوهي جملة الشرط أي أن العداد سيبقى يطبع قيمته ويجمع لنفسه 1 حتى تصبح قيمته أكبر من 5 أي عندما يفشل اختبار الشرط .
الجزء الثالثوهو جزء تزايد العداد بمقدار 1 في كل دوره ، وله عده أشكال وكلها متكافئة :
C#
counter = counter + 1
counter +=1
++counter
Counter++
والآن لاحظ جملة تعريف المتغير في سطر 1 في برنامج تركيبة while ستجده هو نفسه في الجزء الأول من تركيبة for.
وجملة الشرط في السطر 3 هي نفسها الجزء الثاني من تركيبة for .
وجملة الزيادة في السطر 6 هي نفسها الجزء الثالث من تركيبة for .
وأكثر ما نستفيد من تركيبة for في المصفوفات والتي سنأخذها في دروس قادمة إن شاء الله .
والشكل التالي يوضح كيف تعمل تركيبة for في البرنامج السابق :
لاحظ أن البداية واحدة وهي القيمة البدائية لمتغير التحكم )Control variable( counter ثم تبدأ الدارة بالعمل ، تختبر القيمة هل هي أقل أو تساوي 5 ، إذا تحقق الشرط )True( يقوم بتنفيذ الجمل التي يحتويها ثم يرجع إلى جملة الشرط ، حيث يختبر قيمة الcounter مره أخرى وهي الآن أصبحت 2 إذا ً يكمل العمل ، حتى تصبح قيمة counter = 6 عندها يفشل الاختبار )False( فيخرج من الدارة .
* برنامج إيجاد المجموع باستخدام تركيبة for .
حيث يقوم بإيجاد مجموع الأعداد الصحيحة الزوجية من 2 إلى 100 ثم يظهر الناتج على MessageBox .
أولا ً :سنقوم باستدعاء المكتبة System.Windows.Forms لاستخدام الClass : MessageBox كما تعلمنا في الدرس الثالث : الوصله .
ثانيا ً :سنعرف متغير من نوع صحيح )integer( كمخزن لناتج الجمع في كل دوره )sum( ونعطيه قيمة بدائية 0 . ومتغير آخر من نوع integer أيضا ً number وهو العداد ويبدأ من 2 .
والآن إذا أردنا تحليل البرنامج باللغة العربية لفهمه سنقول :
كرر من number = 2 بشرط أن قيمة number أقل أو تساوي 100 حيث في كل دوره أضف 2 على الناتج .
عندما يصبح قيمة sum أكبر من 100 أخرج من الدارة واطبع قيمة sum على MessageBox .
والآن سيكون التطبيق سهل جداً ، فلنبدأ بسم الله :
C#
using System;
using System.Windows.Forms;
class Sum
}
static void Main)string][ args(
}
int sum = 0;
for)int number = 2; number >= 100; number +=2(
sum+=number;
MessageBox.Show)"The sum is " + sum,
"Sym Even Integers from 2 to100",
MessageBoxButtons.OK,
MessageBoxIcon.Information(;
{
{
وسيكون الناتج كما يلي :
تحميل
http://www.kettaneh.net/programming/sum.zip