الفصل الثالث
أوامر التكرار
- في هذا الفصل سيتم تقديم أوامر التكرار وهي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين.
(1)الأمر Do While…………Loop
يتبع القاعدة التالية:
في كل مرة يصل البرنامج إلي Do While يقوم بتقييم الشرط.
أ- لو كان الشرط خاطئاً "False" فإن التنفيذ يبدأ عند أول أمر بعد كلمة Loop
ب-لو كان الشرط صحيحا "True" فإنه يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى أخر أمر قبل كلمة Loop وعندما يصل البرنامج إلي كلمة Loop فإنه يعود مرة أخري إلي Do while حيث يتم تقييم الشرط مرة أخري وطبقا لقيمة الشرط فإما أن تكون True فيستمر التكرار أو تكون False فينتهي التكرار
مثال: مطلوب أن تقوم بجمع الأعداد الفردية من (1) إلي (Limit) حيث Limit هو رقم صحيح موجود في الأداة Text Box المسمى TXTLimit
Dim x, total, limit As Integer
limit = Integer.Parse(txtLimit.Text)
x = 1
Do While x <= limit
total = total + x
x = x + 2
Loop
Me.Label2.Text = Format(total, "##")
ملحوظة
في السطر الثامن استخدمنا الدالة Format والتي يمكن استخدامها لتحديد شكل المخرجات
Result for x = 3.456 Result for x = 3.4 Format function
Format(x)
(Format(x, “00.0
Format(x, “##.##”)
Format(x, “##.00” )
Format(x, “00.##” )
قال صلى الله عليه وسلم " ما يصيب المؤمن من وصب ولا نصب ولا سقم ولا حزن حتى الهم يهمه إلا يكفر به من سيئاته "
(2)الامر For ………. Next
على خلاف أوامر التكرار السابقة والتي لا نعرف فيها عدد مرات التكرار فان الأمر For ………. Next يستعمل في حالة معرفة عدد مرات التكرار مسبقاً .
الأمثلة:
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 5 الى 50 بزيادة 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 1 الى 100 بزيادة 1
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 100 الى 2 بنقص 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (11 , 13 ,15 ,17 ,19)
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (49 , 42 ,35 ,28 ,21)
قال صلى الله عليه وسلم " من جلس في مجلس فكثر لغطه فقال قبل أن يقوم من مجلسه ذلك سبحانك اللهم وبحمدك أشهد أن لا إله إلا أنت أستغفرك وأتوب إليك إلا غفر الله له ما كان في مجلسه"
• الاداة ListBox
- هي واحدة من الأدوات التي ترتبط غالباً بالتكرار .
- وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها . وفي حالة ما اذا كان عدد الصفوف اكبر من يعرض داخل المستطيل يقوم v.b. تلقائيا باضافة شريط منزلقScroll Bar الى يمين الاداة Listbox
لاحظ ان index يأخذ الارقام من الصفر الي count-1 اي العنصر الاول صفر والذي يليه 1 وهكذا
مثال 1:
اكتب الاكواد اللازمة لمايأتي
1- عند الضغط على يتم ادخال ايام الاسبوع في الاداة ListBox المسماه lstDayays
2- عند الضغط على btnCopy يتم ادخال العنصر الذي تم اختياره الي الاداة ListBox المسماه lstChosen
3- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstDayays
4- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstChosen
الحل
1- نضغط مرتتين على btnAddDays ونكتب الاكواد
1 Me.lstDays.Items.Add("Saturday")
2 Me.lstDays.Items.Add("Sunday")
3 Me.lstDays.Items.Add("Monday")
4 Me.lstDays.Items.Add("Tuesday")
5 Me.lstDays.Items.Add("Wednesday")
6 Me.lstDays.Items.Add("Thursday")
7 Me.lstDays.Items.Add("Friday")
2- نضغط مرتتين على btnCopy ونكتب الاكواد
8 Me.lstChosen.Items.Add(Me.lstDays.SelectedItem)
3- - نضغط مرتتين على btnClearDays ونكتب الاكواد
9 Me.lstDays.Items.Clear()
4-- نضغط مرتتين على btnClearDays ونكتب الاكواد
10 Me.lstChosen.Items.Clear()
مثال 2 :
Amount = principal ( 1 + rate/100 )n
حيث ان القيمة المستحقة =amount و قيمة رأس المال =principal ومعدل الفائدة =rate وعدد السنوات =n
الكود الخاص ب Button1
'declare variables to store user inputs
1 Dim principal, interest, years, amount As Decimal
2 Dim year As Integer
3 Dim output As String
'convert text to decimal
4 principal = Val(Me.txtPrinc.Text)
5 interest = Val(Me.txtInterest.Text)
6 years = Val(Me.txtYears.Text)
'write heading in the list box
7 output = "Amount" & ControlChars.Tab & ControlChars.Tab & "Years"
8 Me.lstAmount.Items.Add(output)
'Calculate the amount from 1 year to the value of years variable
9 For year = 1 To years
10 amount = principal * ((1 + interest / 100) ^ year)
11 output = Format(amount, "###.00") & ControlChars.Tab &
12 ControlChars.Tab & year
13 Me.lstAmount.Items.Add(output)
14 Next
15 Me.txtPrinc.Focus() 'focus on txtPrinc text box
الكود الخاص ب Button2
16 Me.txtPrinc.Text = "" 'clear the Principal
17 Me.txtInterest.Text = "" 'clear the interest
18 Me.txtYears.Text = "" 'clear the number of years
19 Me.lstAmount.Items.Clear() 'clear the list box
20 Me.txtPrinc.Focus()
لاحظ:
Val دالة تستخدم لتحويل المتغيرات الحرفية إلي رقمية ولكن تتجاهل إدخال المستخدم لرمز مثل$ ولا تظهر رسالة خطأ
Focus ( ) تستخدم لنقل الانتباه إلي Text Box .
Controlchar.tab يستخدم لعمل tab 5مسافات بين الكلام في ال MsgBox .