الفصل الثالث
أوامر التكرار
- في هذا الفصل سيتم تقديم أوامر التكرار وهي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين.
• الأمر Do While…………Loop
يتبع القاعدة التالية:
في كل مرة يصل البرنامج إلي Do While يقوم بتقييم الشرط.
أ- لو كان الشرط خاطئاً "False" فإن التنفيذ يبدأ عند أول أمر بعد كلمة Loop
ب-لم كان الشرط صحيحا "True" فإن الحاسب يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى أخر أمر قبل كلمة Loop وعندما يصل البرنامج إلي كلمة Loop فإنه يعود مرة أخري إلي Do while حيث يتم تقييم الشرط مرة أخري وطبقا لقيمة الشرط فإما أن تكون True فيستمر التكرار أو تكون False فينتهي التكرار كما في الشكل.
مثال: مطلوب أن تقوم بجمع الأعداد الفردية من (1) إلي (Limit) حيث Limit هو رقم صحيح موجود في الأداة Text Box المسمى TXTLimit
الحل:
ملحوظة
في السطر الثامن استخدمنا الدالة Format والتي يمكن استخدامها لتحديد شكل المخرجات
• الامر Do Until …….. Loop
علي العكس من Do While …….. Loop فان Do Until …….. Loop يختبر الشرط فإذا كان خاطئاً False يبدأ التكرار ويستمر حتى يصبح الشرط صحيحاً True وعندها يتوقف التكرار,
والشرط الموجود في البناء Do Until …….. Loop يسمى شرط إنهاء التكرار .
مثال:
في المثال السابق إذا استخدمنا Do Until …….. Loop فان التغيير الوحيد الذي سيحدث هو أن يكون الشرط X > Limit بدلا من X< Limit فقط . ويكون المثال كالأتي:
• الامر Do ………. Loop While
يعمل الأمر Do ………. Loop While مثل الأمر Do While …….. Loop مع اختلاف بسيط وهو أن الشرط يتم تقييمه بعد نهاية كل تكرار وليس قبل بدايته وهذا يؤدي إلي أن الأوامر التي ستتكرر سيتم تنفيذها على الأقل مرة واحدة بعكس Do While …….. Loop حيث أن الأوامر قد لا يتم تنفيذها علي الإطلاق .
مثال:
ملحوظات :
1. الدالة Rnd( ) في السطر الخامس
تولد أرقاما عشوائية وفي كل مرة يتم حساب قيمة الدالة Rnd ( ) وتكون النتيجة كسراً .
إذا أنهيت البرنامج ثم أعدت تشغيله مره أخرى فسترى انه يعطي نفس ترتيب الأعداد العشوائية في كل مرة ولكي تجعل البرنامج يولد أعداد عشوائية بترتيب مختلف فانك يجب أن تستعمل الأمر Randomize ( )
وهذا الأمر يجب تنفيذه مرة واحدة قبل أول تنفيذ لـــ Rnd ( )
2. الدالة InputBox ( ) تعرض نافذة تحتوي علي إشارة إدخال ومربع كتابة لمستخدم البرنامج لكي يدخل ما يريد .
• الامر Do ………. Loop Until
نفس أوجه الشبة وأوجه الاختلاف بين Do While …….. Loop و Do Until …….. Loop موجود أيضا بين Do ………. Loop While و Do ………. Loop Until .
مثال :
في المثال السابق إذا استخدمنا Do ………. Loop Until سيكون التغير في الشرط فقط سيكون
Loop Until (read = secret ) بدلاً من Loop While ( read < > secret ) .
• الامر For ………. Next
على خلاف أوامر التكرار السابقة والتي لا نعرف فيها عدد مرات التكرار فان الأمر For ………. Next يستعمل في حالة معرفة عدد مرات التكرار مسبقاً .
الأمثلة:
• الاداة ListBox
- هي واحدة من الأدوات التي ترتبط غالباً بالتكرار .
- وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها .
مثال 1:
مثال 2 :
Amount = principal ( 1 + rate/100 )n
الحل:
لاحظ:
1. Val دالة تستخدم لتحويل المتغيرات الحرفية إلي رقمية ولكن تتجاهل إدخال المستخدم لرمز مثل $ ولا تظهر رسالة خطأ .
2. Focus ( ) تستخدم لنقل الانتباه إلي Text Box .
3. Controlchar.tab يستخدم لعمل خمس مسافات بين الكلام في ال MsgBox .