السبت، 7 فبراير 2015

تاريخ الحاسب الآلى : الفصل الثالث الحلقات التكرارية

تاريخ الحاسب الآلى : الفصل الثالث الحلقات التكرارية: اولا قاعدة For ...................... Next  FOR – NEXT يتم التكرار لعدد محدد مسبقا من الأوقات . . ·          بناء الجملة   FOR Variab...
أداة List Box             أداة Timer


https://www.facebook.com/groups/371834209635981/?fref=ts






  • ‫حلقات التكرار‬‫من أهم القواعد في لغات البرمجة إمكانية‬ ‫تكرار عدد من الخطوات عددا من‬ ‫المرات... من حلقات التكرار..‬ ‫• قاعدة)‪ :(For…Next‬نقوم بتكرار‬ ‫مجموعة من العمليات بعدد محدد من‬ ‫المرات.‬‫• قاعدة)‪ :(Do While‬تستمر حلقة التكرار‬ ‫ما دام الشرط صحيحا.‬


  •  ‪For… Next‬‬ ‫نريد جمع العداد ) من 1‬‫05 إلى 1=‪For S‬‬ ‫‪-: (50 To‬‬‫‪A=A+S‬‬‫‪Next‬‬
  • ‫بداية صيغة القاعدة‬ ‫بداية صيغة القاعدة‬ ‫قاعدة ‪For… Next‬‬ ‫القيمة النهائية للعداد‬ ‫دّ‬ ‫‪[For counter=start To end [Step step‬‬ ‫..................‬ ‫القيمة الولية للعدّداد‬ ‫دّ‬ ‫القيمة الولية للعداد‬ ‫مقدار الزيادة لدورة‬ ‫مقدار الزيادة لدورة‬ ‫التكرار وهي اختيارية‬ ‫التكرار وهي اختيارية‬ ‫]‪[Exit For‬‬ ‫عدد مرات التكرار يسمى عداد‬ ‫دّ دّ‬ ‫عدد مرات التكرار يسمى عداد‬ ‫)متغير من نوع عدد صحيح(‬ ‫)متغير من نوع عدد صحيح(‬ ‫إذا لم تحدد فأن الزيادة‬ ‫إذا لم تحدد فأن الزيادة‬ ‫الفتراضبة هي القيمة‬ ‫الفتراضبة هي القيمة‬ ‫اختيارية تستخدم عندما نريد الخروج من ...................‬ ‫اختيارية تستخدم عندما نريد الخروج من‬ ‫)1((‬ ‫)1‬ ‫التكرار عند شرط معين حتى لو لم تنته‬ ‫التكرار عند شرط معين حتى لو لم تنته‬ ‫‪Next‬‬ ‫حلقة التكرار‬ ‫حلقة التكرار‬ ‫نهاية حلقة التكرار ليعود التنفيذ‬ ‫نهاية حلقة التكرار ليعود التنفيذ‬ ‫إلى جملة )‪ For‬من جديد‬ ‫إلى جملة)‪ ((For‬من جديد‬
  • ‫مثال‬‫نريد جمع العداد تنازليا ) من‬‫01 إلى 1( :-‬ ‫1- ‪For M=10 To 1 STEP‬‬ ‫‪A=A+M‬‬ ‫‪Next‬‬
  • ‫مثال‬‫نريد طباعة العداد ) من 1‬‫01 01( تصاعديا :-‬ ‫إلى ‪For M=1 To‬‬ ‫‪PRINT M‬‬ ‫‪Next‬‬ ‫نريد طباعة العداد ) من 01‬ ‫1-‪ (1 To 1 STEP‬تنازليا:-‬ ‫إلى 01=‪For M‬‬ ‫‪PRINT M‬‬ ‫‪Next‬‬




امر التكرار
أوامر التكرار هي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين 
الأمر 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 إلى 5 باستخدام  for…………..next 
تصميم الواجهة كما سبق في المثال السابق 
ولكن كتابة الكود بالشكل
Dim x as integer
For x= 1 to 5
Msgbox(x)
Next
for………..next تلاحظ الفرق في كتابة الكود بواسطة الأمر
مثال : قم بطباعة الأعداد الفردية من 1 إلى 5 
Dim x as integer
For x = 1 to 5 step 2
Msgbox(x)
Next








الأمر 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
وامر التكرار
أوامر التكرار هي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين 
الأمر 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
كما عرفنا سيتم تصميم واجهة البرنامج كما بالشكل وسيتم كتابة الكود داخل أداة button  

الكود اللازم لعمل البرنامج



ما نتيجة تنفيذ هذا الكود؟

إذا أردنا طباعة الأعداد الفردية من 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


  • ‫بداية صيغة القاعدة‬ ‫بداية صيغة القاعدة‬ ‫قاعدة ‪DO WHILE‬‬ ‫‪Do While condition‬‬ ‫‪statement‬‬ ‫الشرط الذي سيتم التكرار‬ ‫الشرط الذي سيتم التكرار‬ ‫بناءء عليه ما دام الشرط‬ ‫بنا ً ًعليه ما دام الشرط‬ ‫..................‬ ‫صحيحا‬ ‫صحيحا‬ ‫]‪[Exit Do‬‬ ‫اختيارية وتستخدم للخروج من التكرار‬ ‫اختيارية وتستخدم للخروج من التكرار‬ ‫‪statement‬‬ ‫عند شرط معين حتى لو لم يتحقق‬ ‫عند شرط معين حتى لو لم يتحقق‬ ‫الشرط الذي سيتم التكراربناءء عليه.‬ ‫الشرط الذي سيتم التكرار بنا ً ًعليه.‬ ‫..................‬ ‫الاتلنتفننيفنيهاهيايةةحلحل ‪loop‬‬ ‫ذذ قق‬ ‫إلإىى ةةالاتل‬ ‫ججم كتك‬ ‫ل‬ ‫رارا‬ ‫ججديملةلة) ) ررليل‬ ‫‪ o‬يع‬ ‫ديد د ‪ (DDo‬عوود‬ ‫( د‬ ‫م‬ ‫منن‬
  •  ‫مثال‬ ‫-: برنامج يطبع العداد من 1 إلى 01‬ ‫1=‪M‬‬ ‫01=<‪Do While M‬‬ ‫‪PRINT M‬‬ ‫1+‪M=M‬‬ ‫‪Loop‬‬‫-: برنامج يطبع العداد من 01 إلى 1 تنازليا‬ ‫01=‪M‬‬ ‫0>‪Do While M‬‬ ‫‪PRINT M‬‬ ‫1-‪M=M‬‬ ‫‪Loop‬‬
  •  ‫ورقة عمل ) 3 (‬‫أكت ب برنامج يقوم بطباعة كلمة )سبحان‬ ‫ ِ‬ ‫ا( خمسين مرة باستخدام‬ ‫قاعدة ‪Do While‬‬ ‫‪Dim M As integer‬‬ ‫1=‪M‬‬ ‫05=<‪Do While M‬‬ ‫”سبحان ال“ ‪PRINT‬‬ ‫1+‪M=M‬‬ ‫‪loop‬‬
  • Dim K As string ,M As integerK=“‫”سبحان ال‬M=1Do While M<=50PRINT KM=M+1loop
  • ‫قاعدة ‪Do While‬‬ ‫ورقة عمل ) 4 (‬ ‫قاعد .. ‪Next For‬‬ ‫طريقة التطبيق:‬ ‫الزمن:01 د‬ ‫بماذا يتفقان‬ ‫جماعي‬ ‫إمكانية تكرار المقارنة من خلل منظم بياني‬ ‫هدف النشاط: تطبيق مهارة عدد من الخطوات عددا من المرات‬ ‫ ً‬ ‫المطلوب في النشاط: مع أفراد مجموعتك قارن ِ بين قاعدة ?‬ ‫‪For..Next‬وقاعدة ‪Do While‬مستخدما المنظم البياني التالي:‬ ‫بماذا يختلفان ؟ بالنسبة )مكونات الصيغة الساسية- كتابة الحلقة(‬ ‫• تبدأ ‪Do Wile‬‬ ‫• تبدأ ‪، For‬وجود العداد يحدد بداية و نهاية‬ ‫دّ‬ ‫• كتابة شرط الحلقة باستخدام عوامل المقارنة‬ ‫الحلقة‬ ‫• تنتهي الحلقة لتعود لتنفيذ )‪ (Do‬من جديد بـ‪loop‬‬ ‫• تنتهي الحلقة لتعود لتنفيذ )‪ (For‬من جديد‬ ‫بـ‪Next‬‬ ‫أوجه الشبة والختلف البارزة)ذات الهمية والمغزى(‬ ‫تكرار مجموعة من العمليات بعدد محدد من المرات في )‪(For..Next‬‬ ‫تستمر حلقة التكرار ما دام الشرط صحيحا في )‪(Do While‬‬ ‫ ً‬ ‫ما هو الستنتاج أو الستخل ص الذي يمكن اقتراحه بناء على أوجه الشبه والختلف المهمة؟‬ ‫ ً‬ ‫)علما بأن الستنتاج أو الستخل ص ليس تكرارا لوجه الشبه والختلف البارزة(‬‫يفضل استخدام )‪ (For..Next‬في العمليات المحددة والمتماثلة في )الدخال – المعالجة – الطباعة(‬
  •  Do While‫قاعدة‬ For..Next‫قاعدة‬M=1Do While M<=10 For M=1 To 10PRINT M PRINT MM=M+1 NextLoop
  •  ‫المصفوفـات‬ ‫) ‪(Array‬‬ ‫هي سلسلة من المتغيرات تحمل نفس السم‬‫أي أننا نجمع عدة عناصر من نفس نوع البيانات‬ ‫الصيغة العامة‬ ‫الصيغة العامة‬ ‫‪)As Type Dim var1( n‬‬ ‫عدد عناصر المصفوفة‬
  •  ‫فوائد المصفوفات :‬ ‫1- توفير الوقت والجهد‬‫2- تؤدي إلى بساطة البرنامج وصغر حجمه‬
  •  ‫مثال : لنفرض اننا نريد تخزين أسماء 05 طالب ، فأننا بحاجة‬ ‫إلى تعريف 05 متغير لتخزين 05 اسم وهذا امر صعب للغاية‬ ‫سيؤدي إلى كبر حجم البرنامج وربما حدوث مشاكل أخرى‬ ‫أثناء التشغيل ؟؟؟‬‫الحل أننا نستخدم مصفوفة مكونة من 05 عنصر‬ ‫وذلك بكتابة المر :‬ ‫‪Dim Name(50) As String‬‬
  •  ‫إدخال وقراءة وطباعة قيم المصفوفة :‬ ‫لدخال درجات 51 طالب في مصفوفة نقوم بكتابة الوامر‬ ‫التالية :‬‫‪Dim D(15) As single‬‬ ‫‪For‬‬ ‫41 ‪C= 0 to‬‬‫“(‬ ‫أدخل الدراجة‬ ‫‪”)D(C)= InputBox‬‬‫‪)Print D(C‬‬‫‪Next‬‬
  • ‫ورقة عمل )5(‬ ‫المصفوفة ‪M‬‬‫94‬ ‫84‬ ‫..............‬ ‫1‬ ‫0‬ ‫رقم‬ ‫.........‬ ‫العنصر‬‫أحمد‬ ‫عمر‬ ‫..............‬ ‫محمد‬ ‫عبدال‬ ‫القيمة‬ ‫.........‬ ‫أكتبي أمر تعريف المصفوفة بلغة الفيجول بيسك ؟‬ ‫‪DIM m(50) AS string‬‬ ‫ماقيمة ‪ c‬اذا كان 94(‪ (c=m‬؟‬ ‫قيمتة هي أحمد‬ ‫اكتبي أمر الوصول إلى قيمة العنصر الثاني وما قيمتة‬ ‫1( ‪)M‬‬ ‫وقيمته هي محمد‬
  •  ( 6 ) ‫ورقة عمل‬ ‫طالبتي الموهوبة من خلل ما تعلم ت في الدرس‬ ِ Do ) ‫ ( وقاعدة‬For..Next ) ‫رتبي ك ل ً من مكونات قاعدة‬ ( While Do While‫قاعدة‬ For..Next‫قاعدة‬Condition,loop, [Step step],end ,Do While, counter,For , start[Exit Do] [Exit For],To,Next.
  •  ( 6 ) ‫ورقة عمل‬ ‫طالبتي الموهوبة من خلل ما تعلم ت في الدرس‬ ِ Do ) ‫ ( وقاعدة‬For..Next ) ‫رتبي ك ل ً من مكونات قاعدة‬ ( While For..Next‫قاعدة‬[For counter=start To end [Step step..................[Exit For] [Step step],end ,................... counter,For , startNext [Exit For],To,Next.
  •  ( 6 ) ‫ورقة عمل‬ ‫طالبتي الموهوبة من خلل ما تعلم ت في الدرس‬ ِ Do ) ‫ ( وقاعدة‬For..Next ) ‫رتبي ك ل ً من مكونات قاعدة‬ ( While Do While‫قاعدة‬Condition,loop, Do While condition statementDo While, ..................[Exit Do] [Exit Do] statement .................. loop
تعمل على تنفيذ مجموعة من الأوامر بعد كل فترة زمنية تحدد من قبل المبرمج،
خصائصها:
à       Interval: وهي الفترة الزمنية التي يجب انتظارها حتى يتم تنفيذ الأوامر ضمن الأداة، وهي مقدرةبالميلي ثانية.
à        Enabled: تمكين أو عدم تمكين الأداة.
للأداة حدث واحد هو Timer ويقع كلما انقضت الفترة الزمنية المحددة بالخاصية Interval.

مثال1: لنضع على النافذة الأداة Label و الأداة Timer حيث Interval=1000 ولنكتب الشيفرة التالية في الحدث Timer:
Label1.Caption =Timer $

مثال2: ضع الأداة Timer على النافذة Form حيث أن Interval=1000 وعرف في Generalمتحول color1 من نوع Integer بالشكل:
Dim color1 as integer
واكتب الشيفرة التالية في الحدث Timer:
Form1.BackColor = Qbcolor(color1)
color1=color1+1
IF  color1=15 then  color1=0
مثال3: إنهاء البرنامج بعد 60 ثانية:
1- نعرف N كمتحول عام على مستوى النافذة.
2- في الحدث Timer1_Timer نكتب:
N=N+1
IF N=60 then End
مثال4: (شاشة توقف)
1-              ابدأ بمشروع جديد.
2-              غير خصائص النافذة Form كما يلي:
القيمة
الخاصية
0-None
BorderStyle
أسود
BackColor
2- Maximized
WindowStat
3- في الحدث Form_Dblclick اكتب تعليمة إنهاء البرنامج End.
3-              ضع Timer على النافذة، واضبط خاصية Interval على القيمة 100.
4-              اكتب الشيفرة التالية في الحدث Timer1_Timer:
Dim w As Long
Dim h As Long
w = Form1.Width
h = Form1.Height
Circle (Rnd * w, Rnd * h), 200, QBColor(Rnd * 15)

5- نفذ البرنامج ولاحظ كيف سيتم رسم دوائر بألوان عشوائية على النافذة.
ملاحظات:
يستخدم التابع Circle لرسم دائرة.
يستخدم التابع Rnd لإعادة عدد عشوائي بين الصفر والواحد.









لأداة 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


من إعداد وتحرير هناء أحمد محمد إبراهيم      معلم حاسب آلى

ليست هناك تعليقات:

إرسال تعليق