تابعنا :

الأحد، 29 أبريل 2012

Structure of control in Visual Basic 4




أشكال خاصة لعبارة DoèLoop


DoèLoop While

تقوم هذه الطريقة بتكرار الكود المرافق لها طالما بقي الشرط الموجود على يمين While محققا, وعند عدم تحققه فإن البرنامج يخرج من البنية إلى التعليمة التي تليها.
أي عملها مشابه لعمل WhileèWend تقريباً.
القاعدة العامة:


Do
  Statement1
  Statement2
  Statement..
Loop While Condition




حيث أنه يتم تكرير تنفيذ الكود الموجود بين كلمتي Do و Loop ثم يتم اختبار الشرط , وتعاد الكرة حتى عدم  تحقق الشرط Condition.ولنأخذ المثال التالي:


Private Sub Form_Load()
Dim Counter As Integer
Counter = 0
 Do
MsgBox Counter
 Counter = Counter + 1
 Loop While Counter<=6
Msgbox "The Loop Ended"
End Sub


مثال 



لاحظ أن البرنامج ظل يرسل الرسالة طالما كانت قيمة المتحول Counter أصغر أو تساوي 6.
لاحظ أننا استخدمنا في هذا المثال التعليمة <= وليس لها علاقة بالبنية,إنما الغـــــرض هو تعريفك ببعض الإشارات الموجودة في الفيجوال بيسك.وتعني هذه التعليمة(الموجـــودة في السطر السابع) أن شرط التكرار هو أن تكون قيمة Counter أصـغر من أو تساوي الستة وهو الشرط الذي يتوقف التكرار في حال عدم تحققه(أي عندما تصــــــبح قيمة Counter تساوي 7).
لاحظ لو أنك كتبت الإشارة  <= على الشكل =< سيصححها المترجم تلقائياً.



DoèLoop Until

تعد هذه الطريقة معاكسة للطريقة السابقة , حيث أنها تقوم بتكرار الكود المرافق لها حتى يصبح الشرط الموجود على يمين While محققا, أي أن البرنامج سيستمر في تكرير تنفيذ التعليمات في حال عدم تحقق الشرط Condition.
أي عملها معاكس لعمل WhileèWend تقريباً.
القاعدة العامة:
Do
  Statement1
  Statement2
  Statement..
                                                                        Loop Until Condition



حيث أنه يتم تكرير تنفيذ الكود الموجود بين كلمتي Do و Loop  ثم يتم اختبار الشرط, وتعاد الكرة حتى تحقق الشرط Condition.ولنأخذ المثال التالي:

Private Sub Form_Load()
Dim Counter As Integer
Counter = 0
 Do
MsgBox Counter
 Counter = Counter + 1
 Loop Until Counter>=7
Msgbox "The Loop Ended"
End Sub



مثال 


لاحظ أن البرنامج ظل يرسل الرسالة عندما كانت قيمة المتحـول Counter أصغر من 7,أما عندما أصبـحــت قيمة المتحول السابــق تساوي 7 خــرج البرنامــج من الحلقــة.
لاحظ أننا استخدمنا في هذا المثال التعليمة >= وليس لها علاقة بالبنية أيضا.وتعني هذه التعليمة(الموجـــودة في السطر السابع) أن شرط التوقف عن التكرار هو أن تكون قيمة Counter أكبـــر من أو تساوي السبعة وهو الشرط الذي يتوقف التكرار في حـــــــال تحققه(أي عندما تصــــــبح قيمة Counter تساوي 7).
لاحظ لو أنك كتبت الإشارة  >= على الشكل=> سيصححها المترجم تلقائياً أيضا,وهذه
من مزايا مترجم الفيجوال بيسك 6.
كذلك لاحظ أنه يقوم بتصحيح حالة الأحرف, أي الكبيرة و الصغيرة,فعندما نكتب do يقوم
المترجم بتحويلها إلى Do بمجرد انتقالنا إلى سطر آخر أو تشغيل البرنامج....




Do While èLoop

يشبه عملها عمل DoèLoop While إنما  تختلف عنها بالصيغة وبشــيء آخر,ألا وهو:
-       في الصيغة DoèLoop While يتم تنفيذ الكود(كود الحلقة أو كتلتها) ثم اختبار الشرط Condition.
-       أما في الصيغة Do WhileèLoop فإنه يتم اختبار الشرط  ثم تنفيذ الكود.
والشكل العام كما يلي:
Do While Condition
  Statement1
  Statement2
  Statement..
                                                                                                    Loop




Do Until èLoop



يشبه عملها عمل DoèLoop Until إنما  تختلف عنها بالصيغة وبشيء آخر,ألا وهو:
-       في الصيغة DoèLoop Until يتم تنفيذ الكود(كود الحلقة أو كتلتها) ثم اختبار الشرط Condition.
-       أما في الصيغة Do UntilèLoop فإنه يتم اختبار الشرط  ثم تنفيذ الكود.
والشكل العام كما يلي:
Do Until Condition
  Statement1
  Statement2
  Statement..
Loop






استخدام العبارة For



تستخدم العبارة for عادة لتنفيذ كتلة معينة من الشيفرة(الكود) عدد(غالبا ما يكون محددا) من المرات, ويمكن القول أن بإمكاننا الاستعاضة عن البنية for ببنية while أو do...


عبارة ForèNext

في هذه العبارة, يتم تنفيذ الكتلة المتعلقة بها,ثم تتم عملية إضافة مقدار معين(يكون افتراضيا 1) إلى متحول يمثل عداد,ويمكن تحديد مقدار التزايد.
لاتقلق إن لم تفهم ما ذكر,سنقوم بشرح هذه العبارة بشكل وافي, انظر القاعدة العامة لعبارة ForèNext

For CounterName = Start To End Step Increment
  Statement1
  Statement2
  Statement..
                                                                                    Next Counter




عدد صحيح يمثل القيمة التي يتوقف التكرار عندما يتجاوزها العداد
عدد صحيح يمثل مقدار التزايد في العداد بعد كل مرة تنفذ فيها الكتلة.

عدد صحيح يمثل القيمة الابتدائيـــة لعداد التكـــــرار




الكلمات التي تحتها خط في القاعدة تكتب كما هي
يعبر CounterName عن اسم المتحول الذي سنستخدمه كعداد للتكرار.
أما Start فهي القيمة التي يأخذها المتحول عند بداية التكرار.
و End هي القيمة التي تنهي التكرار, حيث أنه عندما تجتاز قيمة متحول التكرار Counter القيمة النهائية End يتم الخروج من بنية For وتنفيذ التعليمة التي تلي
كلمة Next.
أما Increment فهي مقدار الزيادة في متحول التكرار Counter بعد كل مرة تنفذ فيها
الكتلة المتعلقة بالبنية  For(كما ذكرنا إن لم تذكر تكون 1 بشكل افتراضي).
أما Next فعندما يصل البرنامج إليها تتم إضافة Increment (مقدار التزايد في متحول التكرار) إلى متحول التكرار Counter.
يجدر القول بأنه يمكن أن تكون القيمة Increment قيمة سالبة, في هذه الحالة سوف يتناقص متحول التكرار بدلاً من تزايده, ويمكن استخدام هذه الطريقة,ولكن بهذه الحالة
يجب أن تكون القيمة End أصغر من القيمة Start بحيث أن التكرار يبدأ بالقيمة Start
ثم ينقص منها المقدار Increment (يقوم البرنامج بزيادة Increment إلى Counter 
لكن إذا كانت Increment سالبة فإنه يقوم بإنقاصها, فمثلا : 2 + (-1) = 1 وهي كلها
عمليات رياضية) وعندما تصبح قيمة Counter أصغر من قيمة End فإن البرنامح يخرج من البنية For وينفذ التعليمة التي تليها.

دورة البنية For
-       يقوم  البرنامج باختبار فيما إذا كانت قيمة Counter تساوي القيمة Start أو End أو واقعة بينهما وفي حال لم تكن كذلك فإنه يخرج من البنية وفــي حال كانت كذلك فــإن البرنامج  ينفذ كتلة البنية For(الكــود المحصــور بين Increment وNext وقــد لا تكــــون Increment موجــــودة عندهــا يتم تنفيذ الكــود الواقع بين End وNext).
-       عندما يصل البرنامج إلى كلمة Next يقوم بإضافة القيمة Increment (والتي قد
    تكون سالبة كما ذكرنا) إلى متحول التكرار Counter( أو المتحول المذكور بعدها).
تنبيه..!  لا تذكر اسم أي متحول بعد الكلمة Next في حالة استخدام بنى For المتداخلة
   ( والتي ستتعرف عليها ) 



مثال بسيط
Private Sub Form_Load()
For i = 6 To 1 Step -1
Msgbox " إن قيمة متحول التكرار هي : " & i
Next i
End Sub



مثال


لاحظ أن قيمة متحول التكرار i  كانت متناقصة,حيث أن البرنامج قام بجعل قيمته تساوي
6 ثم كان يعرض الرسالة التي تحوي قيمة المتحول i ثم يضيف له القيمة -1 (أي ينقــص منة 1)
 ومن ثم يعود وينفذ الحلقة حتى تصبح قيمة المتحول i  أصغر من 1 عندها يخرج من البنية for
وفي حال أردنا جعل قيمة متحول التكرار متزايدة فإننا نكتب المثال السابق كما يلي:



Private Sub Form_Load()
For i = 1 To 6 Step 1
Msgbox " إن قيمة متحول التكرار هي : " & i
Next i
End Sub



لاحظ أنه ليس من الضروري ذكر قيمة التزايد في السطر الثاني لأنها 1 بالتالي ليس مــــن الضروري ذكر الكلمة Step 1.
ولاحظ أيضا أنه ليس من الضروري ذكر اسم المتحول بعد الكلمة Next في السطر الرابع من مثالنا



1 التعليقات:

إرسال تعليق

ما هو رايكم فى المدونة ؟ او يتم الاقتراح لاضافة اشياء اخرى ؟

Related Posts Plugin for WordPress, Blogger...