بسم الله الرحمن الرحيم في الدرسين السابقين وضحنا تركيبة 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 { 5 Console.WriteLine( counter ); 6 counter++; 7 } البرنامج على تركيبة for : C# 1 for (int counter = 1 ; counter <= 5 ; counter++) 2 Console.WriteLine(counter);
بسم الله الرحمن الرحيم في الدرسين السابقين وضحنا تركيبة while للتكرار ووضحنا أشكال استعمالها : 1- استخدام while كعداد 2- عدد while يعتمد على قيمة مدخلة . 3- التراكيب المتداخلة . ووضحنا تركيبة do/while أيضا ً
وفي هذا الدرس إن شاء الله سنشرح تركيبة جديدة وهي تركيبة for وتركيبة foreach للتكرار: بسم الله نبدأ : * تركيبة for للتكرار : وهي عبارة عن تجميع للجمل المستخدمة في while في جمله واحدة . والشكل التالي يوضح جملة for وأجزاؤها : سنقوم الآن ببناء برنامج للعد من 1 – 5 لكلى التركيبتين والمقارنة بينهما لتوضيح الفكرة أكثر : البرنامج على تركيبة while :
1 int counter = 1; 2 3 while ( counter <= 5) 4 { 5 Console.WriteLine( counter ); 6 counter++; 7 }
البرنامج على تركيبة for :
1 for (int counter = 1 ; counter <= 5 ; counter++) 2 Console.WriteLine(counter);
من الواضح أن جملة for مختصره لجملة while ، وقبل المقارنة لاحظ الشكل التالي الموضح لأجزاء تركيبة for الرئيسية :
تتكون تركيبة for من ثلاث أجزاء تفصل بينهم فاصلة منقوطة : الجزء الأول وهو متغير التحكم (Control variable) وهو المتغير الذي يتحكم باستمرارية الدوران للعد أو الخروج من الدارة بالاعتماد على قيمته ، مسند إليه قيمة بدائية للبدء منها ، ويمكن تعريف هذا المتغير خارج التركيبة لكن عند استخدامها داخل التركيبة يجب إعطائها قيمة بدائية كما يلي :
int counter ; for( counter = 1 ; counter <= 5 ; counter++)
لكن من الأفضل تعريفها كما في الشكل السابق . ملاحظة : عند تعريف متغير التحكم داخل جملة for يكون محصور داخل جسمها (body) أي لا يمكن استخدامه خارجها ، أم في الحالة الثانية وهي تعريف المتغير خارج جملة for فيمكن استخدامه في أماكن أخرى من البرنامج . الجزء الثاني وهي جملة الشرط أي أن العداد سيبقى يطبع قيمته ويجمع لنفسه 1 حتى تصبح قيمته أكبر من 5 أي عندما يفشل اختبار الشرط . الجزء الثالث وهو جزء تزايد العداد بمقدار 1 في كل دوره ، وله عده أشكال وكلها متكافئة :
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 . والآن سيكون التطبيق سهل جداً ، فلنبدأ بسم الله :
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); } }
وسيكون الناتج كما يلي : برنامج sum : تحميل
وسيكون الناتج كما يلي :
برنامج sum : تحميل