الفصل الثالث
أوامر التكرار
أوامر التكرار هي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين
الأمر Do while …………………loop
القاعدة العامة للأمر
Do while conditionالشرط
Statement 1
Statement 2
Statement3
.......
........
........
Statement n
loop
شرح الأمر
True أ- اذا كان الشرط
فان الحاسب يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى آخر أمر
loop قبل كلمة
do while فانه يعود مرة أخرى الى loop وعندما يصل البرنامج إلى كلمة
حيث يتم تقييم الشرط مرة أخرى وطبقا لقيمة الشرط فإما ان تكون فيستمر التكرار او تكون ....... فينتهي التكرار
Falseب_ إذا كان الشرط
loop. فان التتنفيذ يبدأ عند أول أمر بعد كلمة do while إذاً يتم تكرار الأوامر اللي بعد الشرط في حالة إذا كان الشرط صحيح وعندما يصبح الشرط خطأ يتم تنفيذ الأوامر التي تلي
مثال : قم بعمل برنامج يطبع الأعداد من 1 إلى 5 باستخدام الأمر do while
كما عرفنا سيتم تصميم واجهة البرنامج كما بالشكل وسيتم كتابة الكود داخل أداة button1 بالشكل الاتى
الكود اللازم لعمل البرنامج
ما نتيجة تنفيذ هذا الكود؟
إذا أردنا طباعة الأعداد الفردية من 1 إلى 5 فيتم كتابة الكود الاتى ستم كتابة الكود كما سبق مع تغير الأمر x=x+1 إلى x=x+2
وإذا أردنا طباعة الأعداد الزوجية من 0 إلى 5 سيتم كتابة الكود كما سبق مع تغير الأمر x=1 إلى الأمر x=0 والأمر x=x+1 إلى x=x+2
**************************************************
مثال : قم بكتابة برنامج لجمع الأعداد من 1 إلى الرقم الذي سيتم إدخاله من خلال مشغل البرنامج
فى هذه الحالة سنحتاج لأداة textbox لرسمها على الفورم لإدخال القيمة النهائية
شرح الكود:
السطر الأول تعريف المتغيرات
السطر الثاني تخزين القيمة النهائية داخل المتغير final باستخدام أمر التخصيص
واستخدمنا الدالة parse لتحويل القيمة المدخلة من قيمة حرفية الى قيمة عددية
السطر الثالث لاعطاء قيمة ابتدائية للمتغير x
بعد ذلك سيتم تكرار الأوامر اللي بين do while والأمر loop طالما ان الشرط صحيح وهو أن x تكون اقل من أو تساوى القيمة النهائية المدخلة ونستخدم الأمر x=x+1 لزيادة قيمة المتغير بمقدار واحد
السطر الأخير label3.text=sum.Tostring لإظهار الناتج على الفورم باستخدام أداة label3 فمكن تظهر النتيجة في label1 او label2 حسب الاداة التى خصصت لإظهار الناتج بها
بعد تشغيل البرنامج
لو طلب منك عمل برنامج لجمع الأعداد الفردية نفس السابق مع تغير الامر x=x+1 إلى x=x+2
لو برنامج لجمع الأعداد الزوجية نفس السابق مع تغير x=1 إلى x=0
والأمر x=x+1 إلى الأمر x=x+2
ــــــــــــــــــــــــــــــــــــــــــــــ
الأمر for …………Next يستعمل هذا الأمر في حالة معرفة عدد مرات التكرار مسبقا على خلاف الأمر do while التي لا نعرف فيها عدد مرات التكرار
قاعدة الأمر For……………next
For counter = start to end (step increment)
statment1
statment2
statment3
…..
…..
……
Statement n
تحدد الكلمة for بداية التكرار والكلمة next نهاية التكرار
Counter : متغير رقمي يستخدم لحساب عدد مرات التكرار
Start : بداية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
End : نهاية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
Increment : مقدار الزيادة التي يزيدها القيمة المخزنة في العداد counter
شرح الأمر
1- تخزين القيمة start داخل المتغير counter
2- مقارنة القيمة المخزنة في counter بالقيمة end
أ _ إذا كانت القيمة المخزنة في المتغير اقل أو تساوى من القيمة النهائية للتكرار يتم تنفيذ الأوامر المراد تكرارها بين (for , next )
ب - إذا كانت القيمة المخزنة فى المتغير أكبرا من القيمة النهائية للتكرار ينتهى التكرار و يتم تنفيذ الأوامر الموجودة بعد next
3- عندما يصل البرنامج إلى next : أ) فيتم زيادة القيمة المخزنة في العداد counter بمقدار قيمة increment وفى حالة عدم استعمال step فان قيمة العداد تزيد بمقدار واحد
ب)يعود البرنامج إلى بداية التكرار
أمثلة
قم بطباعة الأعداد من 1 إلى 5 باستخدام for…………..next
تصميم الواجهة كما سبق في المثال السابق
ولكن كتابة الكود بالشكل
Dim x as integer
For x= 1 to 5
Msgbox(x)
Next
for………..next تلاحظ الفرق في كتابة الكود بواسطة الأمر
do while…………..loop وكتابة الكود بواسطة الأمر
مثال : قم بطباعة الأعداد الفردية من 1 إلى 5
Dim x as integer
For x = 1 to 5 step 2
Msgbox(x)
Next
قم بطباعة الأعداد الفردية من 5 إلى 1
Dim x as integer
For x = 5 to 1 step -2
Msgbox(x)
Next
لاحظ الفرق في جملة for في البرنامجين السابقين وماذا تستنتج
قم بجمع الأعداد من 1 إلى 10
Dim x , sum as integer
Sum=0
For x = 1 to 10
sum=sum +x
Next
Label1.text=sum
حيث label1 هي الأداة التي سيظهر فيه الناتج على الفورم
ملاحظة لماذا لا نضع الجملة Label1.text=sum قبل next أو loop
الإجابة لأننا نريد إظهار المجموع الكلى مرة واحدة ولا نريد إظهار جمع كل تكرار
ملحوظة : فى الخطوة sum=0 ممكن متكتبش لاننا فى السطر الاول قيمة المتغيرين x , sum الابتدائية تساوى صفر كما اوضحنا سابقاً
الأداة listbox
تعد الأداة listbox واحدة من الأدوات التي تربط غالبا بالتكرار وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها
شكل الأداة
تظهر الأداة على هيئة مستطيل يعرض بداخله صفوفا من الكلام , كل صف من هذه الصفوف يعد عنصرا يمكن لمستخدم البرنامج أن يختاره
في حالة إذا كان عدد الصفوف اكبر من أن يعرض بأكمله داخل المساحة المتاحة للمستطيل فان vb يقوم تلقائيا بإضافة شريط التمرير الرأسي الى يمين الأداة
خصائص الأداة
الخاصية وظيفتها
Name اسم الأداة داخل كود البرمجة
Horizonatalscrollbar إمكانية إظهار شريط التمرير الافقى أو لا داخل الأداة
Items معرفة العناصر الموجودة داخل الأداة
Selecteditems معرفة او تحديد العنصر الواقع عليه الاختيار
Sorted تبين ما إذا كانت العناصر داخل الأداة مرتبة أبجديا ام لا
الخاصية items في حد ذاتها كائن وكما علمنا في الفصل الدراسي الأول أن الكائن وهو كل ما له خصائص ووظائف واستجابة للأحداث
اى أن الخاصية items لها خصائص ووظائف
الجدول التالي يوضح بعد وظائف method الخاصية items للأداة listbox
الوظيفة method العمل behavior
Add( text) إضافة العنصر text في آخر القائمة
Insert ( index ,text ) إضافة العنصر text فى القائمة ويكون ترتيبه داخل القائمة هو index
Count معرفة عدد العناصر فى القائمة
Remove ( text ) مسح العنصر text من القائمة
Removeat (index) مسح العنصر اللي ترتيبه في القائمة index
Clear مسح جميع العناصر الموجودة بالأداة
Index هو رقم العنصر في القائمة ( ترتيبه) ويأخذ الأرقام من صفر إلى count -1 حيث count هو عدد العناصر في الأداة listbox
يبدأ الترقيم داخل الأداة listbox من الصفر
أمثلة
لو عدد عناصر القائمة 4 فان العنصر الرابع ترتيبه فى القائمة هو 3
ــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 إلى القائمة listbox1 يتم ذلك من خلال كتابة الكود
Listbox1.items.add("2")
ــــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 في القائمة listbox1 ويكون ترتيبه داخل الأداة العنصر الثاني
Listbox1.items.insert(1,"3")
ــــــــــــــــــــــــــــــــــــــــ
لحذف العنصر 5 من القائمة listbox1
Listbox1.items.remove("5")
ــــــــــــــــــــــــــــــــــــــ
لحذف العنصر اللي ترتيبه في القائمة listbox1 الثالث
Listbox1.items.removeat(2)
ـــــــــــــــــــــــــــــــــــــــ
لحذف جميع العناصر الموجودة فى الأداة listbox1
Listbox1.items.clear( )
ـــــــــــــــــــــــــــــــــــــــــ
لمعرفة عدد عناصر القائمة listbox1
Listbox1.items.count
ـــــــــــــــــــــــــــــــــــــــ
إجابة أسئلة الفصل الثالث
السؤال الأول : اختر الإجابة الصحيحة مما يلي
1- الأوامر المتكررة في do while………..loop ( يتم تنفيذها اذا كان الشرط صحيحا true )
2- نوعية الامر الذي يتم تنفيذه حتى يصبح شرط التكرار خطأ هي
الإجابة : do while………..loop
3- يطلق على المتغير الذي يتحكم في عدد مرات تنفيذ الأوامر اسم ( counter )
لإلغاء كل القيم من الأداة listbox يتم استخدام طريقة ( method ) الحل : clear
5- الطريقة (method ) التي تقوم بإضافة عنصر جديد في نهاية القائمة listbox in الحل : add
السؤال الثاني : قم بدراسة مجموعة الأوامر التالية مع افتراض ان المتغيرات قد تم الإعلان عنها
Sum=0
Count=0
Do while ( x<10)
Sum=sum
Count=count+1
Loop
Average =sum/count
ما هو الخطأ فى هذه الأوامر؟
اكتب الخطوات اللازمة لتصويب هذه الأوامر؟
الخطأ أن قيمة المتغير ستظل طول البرنامج بصفر وجملة التكرار لن تتوقف لان الشرط سيظل صحيح
التصحيح : هي كتابة الأمر لزيادة قيمة المتغير بمقدار واحد
ملحوظة الشرط مكتوب بين القوسين لا يمثل خطأ فهو صحيح
الكود بعد التصحيح
Sum=0
Count=0
Do while ( x<10)
x =x+1
Sum=sum +x
Count=count+1
Loop
Average =sum/count
ـــــــــــــــــــــــــــــــــــــــــــــ
السؤال الرابع
افترض مجموعة الأوامر الآتية
For i=1 to 10 step x
Msgbox(i)
Next
اشرح كيفية تنفيذ الأوامر في كل من الحالات الآتية
أ- إذا كان المتغير اكس اكبر من صفر
ب- إذا كان المتغير اكس اصغر من صفر
ت- اذا كان المتغير اكس مساويا للصفر
الاجابة اذا كان المتغير اكس اكبر من الصفر مثلا 1 ستظهر رسائل تعرض الأرقام 1 , 2 , 3
أما إذا كان قيمة المتغير اكس اقل من الصفر مثلا -1 لن يتم تنفيذ جملة التكرار ولا تظهر اى رسائل
اذا كانت قيم اكس بصفر سيستمر التكرار الى مالا نهاية لان قيمة المتغير ستظل قيمتها بواحد وذلك لان كل مرة يزيد بمقدار صفر ولن يصل الى 3 ولذلك سيستمر البرنامج بعرض مربع رسالة يحتوى على الرقم 1 الى مالا نهاية
ــــــــــــــــــــــــــــــــــــــــــ
x I
9 0
18 3
36 6
السؤال الخامس : قم بتتبع مجموعة الأوامر الآتية موضحا قيمة كل متغير في كل مرة يتغير فيها
x =4.5
For I = 0 to 7 step 3
x =x*2
Next
حيث قيمة x الجديدة تحسب من خلال الأمر x = x*2
ــــــــــــــــــــــــــــــــــــــــ
السؤال السادس : قم بتحويل الأمر for...next التالي الى الأمر do while....loop
I =1
For i= 1 to 10 do while I <=10
Msgbox(i*i) Msgbox(i*i)
Next I=I+1
Loop
السؤال السابع : صف المخرجات الناتجة من تنفيذ مجموعة الأوامر الآتية
For I =0 to 7
If ( I mod 2=0) then
Msgbox(I+1)
Else if ( I mod 3=0) then
Msgbox( I*I )
Else if ( I mod 5=0) then
Msgbox(2*i-1)
Else
Msgbox(i)
End if
Next
i الشرط الذي سيتحقق الكود الذي سينفذ الناتج
صفر I mod 2=0 Msgbox(i+1) 1
1 Else اللي بعد Msgbox(i) 1
2 I mod 2=0 Msgbox(I+1) 3
3 I mod 3=0 Msgbox( I*I ) 9
4 I mod 2=0 Msgbox(i+1) 5
5 I mod 5=0 Msgbox(2*i-1) 9
6 I mod 2=0 Msgbox(i+1) 7
7 else الأمر اللي بعد Msgbox(i) 7
ـأسئلة الوزارة
السؤال الأول ضع علامة () أمام العبارة الصحيحة و علامة (×) أمام العبارة الخطأ للعبارات الآتية:
1- الأمر Do while ….loop عندما يكون ناتج الشرط false تنفذ الأوامر التي تلي loop. ( )
2- الأمر Do while ….loop عندما يكون ناتج الشرط true تنفذ الأوامر التي تلي الشرط. ( )
3- الأمر Do while ….loop يستمر تكرار تنفيذ الأوامر طالما الشرط ناتجة false. ( )
4- الأمر Do while ….loop يتوقف تكرار تنفيذ الأوامر عندما يصبح الشرط true. ( )
5- الأمر Do while ….loop يتم تقييم الشرط في بداية كل تكرار. ( )
6- الأمر For…..next غير معروف عدد التكرارات التي سوف تتم. ( )
7- الأمر For…..next فيه يتم تحديد القيمة التي يبدأ عندها عملية التكرار والقيمة التي ينتهي عنها التكرار وقيمة الخطوة. ( )
8-إليك ما يلي for i=2 to 10 step 2عدد مرات التكرار 5. ( )
9- يمكنك من خلال خصائص الأداة Listbox عمل فرز للعناصر المعروضة. ( )
10 – أثناء التشغيل لا يمكن حذف عنصر من العناصر المعروضة لدى الأداة Listbox. ( )
11- يمكنك إضافة عنصر للأداة Listbox عند ترتيب معين. ( )
السؤال الثاني أختر الإجابة الصحيحة مما يلي :
1- الأمر Do while ….loop عندما يكون ناتج الشرط true
أ- لا ينفذ أي من أمر من أوامر التكرار.
ب- تنفذ أوامر التكرار.
ج- تنفذ مره على الأقل.
2- إليك ما يلي for i=1 to 6 step 2عدد مرات التكرار
أ- 3
ب- 4
ج- 6
3- الخاصية المسئولة عن معرفة عدد عناصر الأداة ListBox
أ- counter
ب-count
ج- selecteditems
4- الأمر Do while ….loop يستمر تنفيذ الأوامر طالما الشرط قيمته
أ- true
ب- false
ج- nothing
5- الإجراء RemoveAt ( index) للأداة ListBox يقوم بحذف عنصر حسب
أ- الترتيب
ب- العنصر
ج- نص العنصر
6- الإجراء Insert ( Index ,text ) للأداة ListBox يقوم بإضافة
أ- عنصر في آخر الترتيب
ب عنصر عند ترتيب معين
ج- عنصر في أول الترتيب
السؤال الثالث أكمل العبارات الآتية بما يناسبها مما بين القوسين :
( False – بداية – True - Insert ( Index ,text ) - عنصر عند ترتيب معين -
solution explorer – أربعة – عشرة )
1- الأمر Do while ….loop عندما يكون ناتج الشرط …… تنفذ الأوامر التي تلي loop.
2- في الأمر Do while ….loop يتم تقييم الشرط في …… كل تكرار.
3-في الأمر Do while ….loop عندما يكون ناتج الشرط …… تنفذ الأوامر التي تلي الشرط.
4- يمكنك إضافة عنصر للأداة Listbox عند ترتيب معين باستخدام الإجراء …….
5- الإجراء Insert ( Index ,text ) للأداة ListBox يقوم بإضافة …….
6- إليك ما يلي for I = 4 to 10 step 2عدد مرات التكرار تساوي …….
السؤال الرابع اختر من العمود ( أ ) ما يناسبه من العمود ( ب)
العمود ( أ ) العمود ( ب )
1- Insert ( Index ,text ) 1- لمعرفة عدد عناصر الأداة ListBox.
2- count 2- بيان العنصر المحدد في الأداة ListBox.
3- selecteditem 3- لإضافة عنصر عند ترتيب معين في ListBox.
4- RemoveAt ( index) 4- لفرز عناصر الأداة ListBox.
5- لحذف عنصر عند ترتيب معين في ListBox.
السؤال الخامس اختر من العمود ( أ ) ما يناسبه من العمود ( ب)
1- For…Next 1- تستخدم مع for … next.
2- Do while … loop 2- تستخدم عند الرغبة في التفرع.
3- شرط 3- عند عمل تكرار معلوم عدده.
4- متغير 4- عند عمل تكرار يعتمد على ناتج شرط.
5- تستخدم مع Do while … loop.
1- إذا كانت قيمة الخاصية interval للكائن timer 3000 فإن مقدارها بالثواني هو:
1- 3 2- 30
3- 3000 4- 300
السؤال الثالث ما اسم الخاصية المستخدمة لإيقاف أو تشغيل المؤقت بأوامر البرمجة ؟
السؤال الرابع اذكر اسم الخاصية المسئولة عن تحديد الفترة الزمنية للحدث tick ؟
السؤال السادس أعد ترتيب الخطوات الآتية ترتيبا صحيحا :
أ - لحساب مجموع الأعداد الفردية من 1 إلى 8
1. total = total + i
2. MessageBox.Show(total)
3. Next
4. For i = 1 To 8 Step 2
5. Dim i, total As Integer
ب- لحساب مجموع الأعداد الفردية من 1 إلى 8
1. Loop
2. Do While i <= 8
3. Dim i = 1, total As Integer
4. MessageBox.Show(total)
5. total = total + i
6. i = i + 2
أوامر التكرار
أوامر التكرار هي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين
الأمر Do while …………………loop
القاعدة العامة للأمر
Do while conditionالشرط
Statement 1
Statement 2
Statement3
.......
........
........
Statement n
loop
شرح الأمر
True أ- اذا كان الشرط
فان الحاسب يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى آخر أمر
loop قبل كلمة
do while فانه يعود مرة أخرى الى loop وعندما يصل البرنامج إلى كلمة
حيث يتم تقييم الشرط مرة أخرى وطبقا لقيمة الشرط فإما ان تكون فيستمر التكرار او تكون ....... فينتهي التكرار
Falseب_ إذا كان الشرط
loop. فان التتنفيذ يبدأ عند أول أمر بعد كلمة do while إذاً يتم تكرار الأوامر اللي بعد الشرط في حالة إذا كان الشرط صحيح وعندما يصبح الشرط خطأ يتم تنفيذ الأوامر التي تلي
مثال : قم بعمل برنامج يطبع الأعداد من 1 إلى 5 باستخدام الأمر do while
كما عرفنا سيتم تصميم واجهة البرنامج كما بالشكل وسيتم كتابة الكود داخل أداة button1 بالشكل الاتى
الكود اللازم لعمل البرنامج
ما نتيجة تنفيذ هذا الكود؟
إذا أردنا طباعة الأعداد الفردية من 1 إلى 5 فيتم كتابة الكود الاتى ستم كتابة الكود كما سبق مع تغير الأمر x=x+1 إلى x=x+2
وإذا أردنا طباعة الأعداد الزوجية من 0 إلى 5 سيتم كتابة الكود كما سبق مع تغير الأمر x=1 إلى الأمر x=0 والأمر x=x+1 إلى x=x+2
**************************************************
مثال : قم بكتابة برنامج لجمع الأعداد من 1 إلى الرقم الذي سيتم إدخاله من خلال مشغل البرنامج
فى هذه الحالة سنحتاج لأداة textbox لرسمها على الفورم لإدخال القيمة النهائية
شرح الكود:
السطر الأول تعريف المتغيرات
السطر الثاني تخزين القيمة النهائية داخل المتغير final باستخدام أمر التخصيص
واستخدمنا الدالة parse لتحويل القيمة المدخلة من قيمة حرفية الى قيمة عددية
السطر الثالث لاعطاء قيمة ابتدائية للمتغير x
بعد ذلك سيتم تكرار الأوامر اللي بين do while والأمر loop طالما ان الشرط صحيح وهو أن x تكون اقل من أو تساوى القيمة النهائية المدخلة ونستخدم الأمر x=x+1 لزيادة قيمة المتغير بمقدار واحد
السطر الأخير label3.text=sum.Tostring لإظهار الناتج على الفورم باستخدام أداة label3 فمكن تظهر النتيجة في label1 او label2 حسب الاداة التى خصصت لإظهار الناتج بها
بعد تشغيل البرنامج
لو طلب منك عمل برنامج لجمع الأعداد الفردية نفس السابق مع تغير الامر x=x+1 إلى x=x+2
لو برنامج لجمع الأعداد الزوجية نفس السابق مع تغير x=1 إلى x=0
والأمر x=x+1 إلى الأمر x=x+2
ــــــــــــــــــــــــــــــــــــــــــــــ
الأمر for …………Next يستعمل هذا الأمر في حالة معرفة عدد مرات التكرار مسبقا على خلاف الأمر do while التي لا نعرف فيها عدد مرات التكرار
قاعدة الأمر For……………next
For counter = start to end (step increment)
statment1
statment2
statment3
…..
…..
……
Statement n
تحدد الكلمة for بداية التكرار والكلمة next نهاية التكرار
Counter : متغير رقمي يستخدم لحساب عدد مرات التكرار
Start : بداية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
End : نهاية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
Increment : مقدار الزيادة التي يزيدها القيمة المخزنة في العداد counter
شرح الأمر
1- تخزين القيمة start داخل المتغير counter
2- مقارنة القيمة المخزنة في counter بالقيمة end
أ _ إذا كانت القيمة المخزنة في المتغير اقل أو تساوى من القيمة النهائية للتكرار يتم تنفيذ الأوامر المراد تكرارها بين (for , next )
ب - إذا كانت القيمة المخزنة فى المتغير أكبرا من القيمة النهائية للتكرار ينتهى التكرار و يتم تنفيذ الأوامر الموجودة بعد next
3- عندما يصل البرنامج إلى next : أ) فيتم زيادة القيمة المخزنة في العداد counter بمقدار قيمة increment وفى حالة عدم استعمال step فان قيمة العداد تزيد بمقدار واحد
ب)يعود البرنامج إلى بداية التكرار
أمثلة
قم بطباعة الأعداد من 1 إلى 5 باستخدام for…………..next
تصميم الواجهة كما سبق في المثال السابق
ولكن كتابة الكود بالشكل
Dim x as integer
For x= 1 to 5
Msgbox(x)
Next
for………..next تلاحظ الفرق في كتابة الكود بواسطة الأمر
do while…………..loop وكتابة الكود بواسطة الأمر
مثال : قم بطباعة الأعداد الفردية من 1 إلى 5
Dim x as integer
For x = 1 to 5 step 2
Msgbox(x)
Next
قم بطباعة الأعداد الفردية من 5 إلى 1
Dim x as integer
For x = 5 to 1 step -2
Msgbox(x)
Next
لاحظ الفرق في جملة for في البرنامجين السابقين وماذا تستنتج
قم بجمع الأعداد من 1 إلى 10
Dim x , sum as integer
Sum=0
For x = 1 to 10
sum=sum +x
Next
Label1.text=sum
حيث label1 هي الأداة التي سيظهر فيه الناتج على الفورم
ملاحظة لماذا لا نضع الجملة Label1.text=sum قبل next أو loop
الإجابة لأننا نريد إظهار المجموع الكلى مرة واحدة ولا نريد إظهار جمع كل تكرار
ملحوظة : فى الخطوة sum=0 ممكن متكتبش لاننا فى السطر الاول قيمة المتغيرين x , sum الابتدائية تساوى صفر كما اوضحنا سابقاً
الأداة listbox
تعد الأداة listbox واحدة من الأدوات التي تربط غالبا بالتكرار وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها
شكل الأداة
تظهر الأداة على هيئة مستطيل يعرض بداخله صفوفا من الكلام , كل صف من هذه الصفوف يعد عنصرا يمكن لمستخدم البرنامج أن يختاره
في حالة إذا كان عدد الصفوف اكبر من أن يعرض بأكمله داخل المساحة المتاحة للمستطيل فان vb يقوم تلقائيا بإضافة شريط التمرير الرأسي الى يمين الأداة
خصائص الأداة
الخاصية وظيفتها
Name اسم الأداة داخل كود البرمجة
Horizonatalscrollbar إمكانية إظهار شريط التمرير الافقى أو لا داخل الأداة
Items معرفة العناصر الموجودة داخل الأداة
Selecteditems معرفة او تحديد العنصر الواقع عليه الاختيار
Sorted تبين ما إذا كانت العناصر داخل الأداة مرتبة أبجديا ام لا
الخاصية items في حد ذاتها كائن وكما علمنا في الفصل الدراسي الأول أن الكائن وهو كل ما له خصائص ووظائف واستجابة للأحداث
اى أن الخاصية items لها خصائص ووظائف
الجدول التالي يوضح بعد وظائف method الخاصية items للأداة listbox
الوظيفة method العمل behavior
Add( text) إضافة العنصر text في آخر القائمة
Insert ( index ,text ) إضافة العنصر text فى القائمة ويكون ترتيبه داخل القائمة هو index
Count معرفة عدد العناصر فى القائمة
Remove ( text ) مسح العنصر text من القائمة
Removeat (index) مسح العنصر اللي ترتيبه في القائمة index
Clear مسح جميع العناصر الموجودة بالأداة
Index هو رقم العنصر في القائمة ( ترتيبه) ويأخذ الأرقام من صفر إلى count -1 حيث count هو عدد العناصر في الأداة listbox
يبدأ الترقيم داخل الأداة listbox من الصفر
أمثلة
لو عدد عناصر القائمة 4 فان العنصر الرابع ترتيبه فى القائمة هو 3
ــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 إلى القائمة listbox1 يتم ذلك من خلال كتابة الكود
Listbox1.items.add("2")
ــــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 في القائمة listbox1 ويكون ترتيبه داخل الأداة العنصر الثاني
Listbox1.items.insert(1,"3")
ــــــــــــــــــــــــــــــــــــــــ
لحذف العنصر 5 من القائمة listbox1
Listbox1.items.remove("5")
ــــــــــــــــــــــــــــــــــــــ
لحذف العنصر اللي ترتيبه في القائمة listbox1 الثالث
Listbox1.items.removeat(2)
ـــــــــــــــــــــــــــــــــــــــ
لحذف جميع العناصر الموجودة فى الأداة listbox1
Listbox1.items.clear( )
ـــــــــــــــــــــــــــــــــــــــــ
لمعرفة عدد عناصر القائمة listbox1
Listbox1.items.count
ـــــــــــــــــــــــــــــــــــــــ
إجابة أسئلة الفصل الثالث
السؤال الأول : اختر الإجابة الصحيحة مما يلي
1- الأوامر المتكررة في do while………..loop ( يتم تنفيذها اذا كان الشرط صحيحا true )
2- نوعية الامر الذي يتم تنفيذه حتى يصبح شرط التكرار خطأ هي
الإجابة : do while………..loop
3- يطلق على المتغير الذي يتحكم في عدد مرات تنفيذ الأوامر اسم ( counter )
لإلغاء كل القيم من الأداة listbox يتم استخدام طريقة ( method ) الحل : clear
5- الطريقة (method ) التي تقوم بإضافة عنصر جديد في نهاية القائمة listbox in الحل : add
السؤال الثاني : قم بدراسة مجموعة الأوامر التالية مع افتراض ان المتغيرات قد تم الإعلان عنها
Sum=0
Count=0
Do while ( x<10)
Sum=sum
Count=count+1
Loop
Average =sum/count
ما هو الخطأ فى هذه الأوامر؟
اكتب الخطوات اللازمة لتصويب هذه الأوامر؟
الخطأ أن قيمة المتغير ستظل طول البرنامج بصفر وجملة التكرار لن تتوقف لان الشرط سيظل صحيح
التصحيح : هي كتابة الأمر لزيادة قيمة المتغير بمقدار واحد
ملحوظة الشرط مكتوب بين القوسين لا يمثل خطأ فهو صحيح
الكود بعد التصحيح
Sum=0
Count=0
Do while ( x<10)
x =x+1
Sum=sum +x
Count=count+1
Loop
Average =sum/count
ـــــــــــــــــــــــــــــــــــــــــــــ
السؤال الرابع
افترض مجموعة الأوامر الآتية
For i=1 to 10 step x
Msgbox(i)
Next
اشرح كيفية تنفيذ الأوامر في كل من الحالات الآتية
أ- إذا كان المتغير اكس اكبر من صفر
ب- إذا كان المتغير اكس اصغر من صفر
ت- اذا كان المتغير اكس مساويا للصفر
الاجابة اذا كان المتغير اكس اكبر من الصفر مثلا 1 ستظهر رسائل تعرض الأرقام 1 , 2 , 3
أما إذا كان قيمة المتغير اكس اقل من الصفر مثلا -1 لن يتم تنفيذ جملة التكرار ولا تظهر اى رسائل
اذا كانت قيم اكس بصفر سيستمر التكرار الى مالا نهاية لان قيمة المتغير ستظل قيمتها بواحد وذلك لان كل مرة يزيد بمقدار صفر ولن يصل الى 3 ولذلك سيستمر البرنامج بعرض مربع رسالة يحتوى على الرقم 1 الى مالا نهاية
ــــــــــــــــــــــــــــــــــــــــــ
x I
9 0
18 3
36 6
السؤال الخامس : قم بتتبع مجموعة الأوامر الآتية موضحا قيمة كل متغير في كل مرة يتغير فيها
x =4.5
For I = 0 to 7 step 3
x =x*2
Next
حيث قيمة x الجديدة تحسب من خلال الأمر x = x*2
ــــــــــــــــــــــــــــــــــــــــ
السؤال السادس : قم بتحويل الأمر for...next التالي الى الأمر do while....loop
I =1
For i= 1 to 10 do while I <=10
Msgbox(i*i) Msgbox(i*i)
Next I=I+1
Loop
السؤال السابع : صف المخرجات الناتجة من تنفيذ مجموعة الأوامر الآتية
For I =0 to 7
If ( I mod 2=0) then
Msgbox(I+1)
Else if ( I mod 3=0) then
Msgbox( I*I )
Else if ( I mod 5=0) then
Msgbox(2*i-1)
Else
Msgbox(i)
End if
Next
i الشرط الذي سيتحقق الكود الذي سينفذ الناتج
صفر I mod 2=0 Msgbox(i+1) 1
1 Else اللي بعد Msgbox(i) 1
2 I mod 2=0 Msgbox(I+1) 3
3 I mod 3=0 Msgbox( I*I ) 9
4 I mod 2=0 Msgbox(i+1) 5
5 I mod 5=0 Msgbox(2*i-1) 9
6 I mod 2=0 Msgbox(i+1) 7
7 else الأمر اللي بعد Msgbox(i) 7
ـأسئلة الوزارة
السؤال الأول ضع علامة () أمام العبارة الصحيحة و علامة (×) أمام العبارة الخطأ للعبارات الآتية:
1- الأمر Do while ….loop عندما يكون ناتج الشرط false تنفذ الأوامر التي تلي loop. ( )
2- الأمر Do while ….loop عندما يكون ناتج الشرط true تنفذ الأوامر التي تلي الشرط. ( )
3- الأمر Do while ….loop يستمر تكرار تنفيذ الأوامر طالما الشرط ناتجة false. ( )
4- الأمر Do while ….loop يتوقف تكرار تنفيذ الأوامر عندما يصبح الشرط true. ( )
5- الأمر Do while ….loop يتم تقييم الشرط في بداية كل تكرار. ( )
6- الأمر For…..next غير معروف عدد التكرارات التي سوف تتم. ( )
7- الأمر For…..next فيه يتم تحديد القيمة التي يبدأ عندها عملية التكرار والقيمة التي ينتهي عنها التكرار وقيمة الخطوة. ( )
8-إليك ما يلي for i=2 to 10 step 2عدد مرات التكرار 5. ( )
9- يمكنك من خلال خصائص الأداة Listbox عمل فرز للعناصر المعروضة. ( )
10 – أثناء التشغيل لا يمكن حذف عنصر من العناصر المعروضة لدى الأداة Listbox. ( )
11- يمكنك إضافة عنصر للأداة Listbox عند ترتيب معين. ( )
السؤال الثاني أختر الإجابة الصحيحة مما يلي :
1- الأمر Do while ….loop عندما يكون ناتج الشرط true
أ- لا ينفذ أي من أمر من أوامر التكرار.
ب- تنفذ أوامر التكرار.
ج- تنفذ مره على الأقل.
2- إليك ما يلي for i=1 to 6 step 2عدد مرات التكرار
أ- 3
ب- 4
ج- 6
3- الخاصية المسئولة عن معرفة عدد عناصر الأداة ListBox
أ- counter
ب-count
ج- selecteditems
4- الأمر Do while ….loop يستمر تنفيذ الأوامر طالما الشرط قيمته
أ- true
ب- false
ج- nothing
5- الإجراء RemoveAt ( index) للأداة ListBox يقوم بحذف عنصر حسب
أ- الترتيب
ب- العنصر
ج- نص العنصر
6- الإجراء Insert ( Index ,text ) للأداة ListBox يقوم بإضافة
أ- عنصر في آخر الترتيب
ب عنصر عند ترتيب معين
ج- عنصر في أول الترتيب
السؤال الثالث أكمل العبارات الآتية بما يناسبها مما بين القوسين :
( False – بداية – True - Insert ( Index ,text ) - عنصر عند ترتيب معين -
solution explorer – أربعة – عشرة )
1- الأمر Do while ….loop عندما يكون ناتج الشرط …… تنفذ الأوامر التي تلي loop.
2- في الأمر Do while ….loop يتم تقييم الشرط في …… كل تكرار.
3-في الأمر Do while ….loop عندما يكون ناتج الشرط …… تنفذ الأوامر التي تلي الشرط.
4- يمكنك إضافة عنصر للأداة Listbox عند ترتيب معين باستخدام الإجراء …….
5- الإجراء Insert ( Index ,text ) للأداة ListBox يقوم بإضافة …….
6- إليك ما يلي for I = 4 to 10 step 2عدد مرات التكرار تساوي …….
السؤال الرابع اختر من العمود ( أ ) ما يناسبه من العمود ( ب)
العمود ( أ ) العمود ( ب )
1- Insert ( Index ,text ) 1- لمعرفة عدد عناصر الأداة ListBox.
2- count 2- بيان العنصر المحدد في الأداة ListBox.
3- selecteditem 3- لإضافة عنصر عند ترتيب معين في ListBox.
4- RemoveAt ( index) 4- لفرز عناصر الأداة ListBox.
5- لحذف عنصر عند ترتيب معين في ListBox.
السؤال الخامس اختر من العمود ( أ ) ما يناسبه من العمود ( ب)
1- For…Next 1- تستخدم مع for … next.
2- Do while … loop 2- تستخدم عند الرغبة في التفرع.
3- شرط 3- عند عمل تكرار معلوم عدده.
4- متغير 4- عند عمل تكرار يعتمد على ناتج شرط.
5- تستخدم مع Do while … loop.
1- إذا كانت قيمة الخاصية interval للكائن timer 3000 فإن مقدارها بالثواني هو:
1- 3 2- 30
3- 3000 4- 300
السؤال الثالث ما اسم الخاصية المستخدمة لإيقاف أو تشغيل المؤقت بأوامر البرمجة ؟
السؤال الرابع اذكر اسم الخاصية المسئولة عن تحديد الفترة الزمنية للحدث tick ؟
السؤال السادس أعد ترتيب الخطوات الآتية ترتيبا صحيحا :
أ - لحساب مجموع الأعداد الفردية من 1 إلى 8
1. total = total + i
2. MessageBox.Show(total)
3. Next
4. For i = 1 To 8 Step 2
5. Dim i, total As Integer
ب- لحساب مجموع الأعداد الفردية من 1 إلى 8
1. Loop
2. Do While i <= 8
3. Dim i = 1, total As Integer
4. MessageBox.Show(total)
5. total = total + i
6. i = i + 2