اهلا وسهلا بك فى بوابة الثانوية العامة ... سجل الان

Prev المشاركة السابقة   المشاركة التالية Next
  #17  
قديم 14-04-2016, 10:17 PM
الصورة الرمزية زياد_عاطف
زياد_عاطف زياد_عاطف غير متواجد حالياً
معلم كمبيوتر و تكنولوجيا المعلومات
 
تاريخ التسجيل: Aug 2008
المشاركات: 503
معدل تقييم المستوى: 18
زياد_عاطف is on a distinguished road
افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة حازم المحمدى مشاهدة المشاركة
شكرا أستاذ زياد على التواصل و لك منى كل تقدير و إحترام حتى و إن إختلفنا فى الرأى
بالمناسبة أول دخولى للمنتدى سألت عدة أسئلة و ذلك لم يكن لأعرف الإجابة و لكن لكى أحدد مستوى تفكير الأعضاء و أعلم ما إذا كان هناك تفاعل حقيقى و من الذى يقوم بالتفاعل مع الأعضاء الجدد و للعلم مستواك عالى أستاذ زياد
و لكن هنك نقطة كنت أريد مناقشتها معك فى الكود الذى قمت بكتابته و هو كالتالى



Dim A As integer
For A = 1 To 3 Step 0

Label1.text = A
Next
Label2.Text = A
ما القيمة المعروضه فى أداة العنوان Label1 و أداة العنوان Label2 و كم عدد مرات التكرار
أولا عدد مرات التكرار سيكون عدد لا نهائى من المرات و لكن ستكون النتيجة فى كل مرة تكرار هى نفس النتيجة و هى الرقم واحد لذلك سيكون عدد مرات التكرار (1) و ذلك حسب القانون
عدد مرات التكرار = ((النهاية - البداية)/الزيادة )+1
= ((3 - 1 ) / 0 ) + 1
= ( 2 / 0 ) + 1 = ليس لها معنى + 1 = 1
ثانيا فى الأداة Label2 لن يتم عرض أى شىء و ذلك لأن الأمر Label2 جاء بعد نهاية التكرار و هذا التكرار غير متوقف لذلك لن يخرج من الحلقة و لن يتم تنفيذ الكود الذى يلى Next

ثالثا و هو ما يحيرنى أن الأداة Label1 يجب أن يكون بها القيمة 1 و لكن عند التنفيذ عملى لم تكن
النتيجة كذلك و لكنها ظلت Label1
السؤال الثانى فى الكود التالى

Dim A As integer
For A = 1 To 3 Step -1
Label1.text = A
Next
Label2.Text = A
ما القيمة المعروضه فى أداة العنوان Label1 و أداة العنوان Label2 و كم عدد مرات التكرار مع ذكر السبب فى كل إجابة

======================================

Dim A As integer
For A = 1 To 3 Step 0

Label1.text = A
Next
Label2.Text = A
ما القيمة المعروضه فى أداة العنوان Label1 و أداة العنوان Label2 و كم عدد مرات التكرار
أولا عدد مرات التكرار سيكون عدد لا نهائى من المرات و لكن ستكون النتيجة فى كل مرة تكرار هى نف
س النتيجة و هى الرقم واحد لذلك سيكون عدد مرات التكرار (1) و ذلك حسب القانون
عدد مرات التكرار = ((النهاية - البداية)/الزيادة )+1
= ((3 - 1 ) / 0 ) + 1
= ( 2 / 0 ) + 1 = ليس لها معنى + 1 = 1

====================================
أولاً :-
كل الشكر و التقدير على كلامك الجميل و أتمنى ان أكون عند حسن ظنك
ثانياً :-
التعليق :-
عاطف مهدى حسان ( معلم اول (أ) كمبيوتر

إذا كانت قيمة العداد متزايدة [ قيمة النهاية أكبر من قيمة البداية يجب أن تكون قيمة الزيادة موجبة حتى يتم التكرار ] أما إذا كانت قيمة الزيادة صفر فسوف يتم التكرار إلى مالانهاية و لن يتم الخروج من الحلقة التكرارية
و للعلم انه إذا تم التكرار ام لم يتم فإن العداد سيخزن به قيمة البداية و هى [1]
أول تكرار يكون قيمة العداد 1 و سينفذ الجملة
Label1.text = A فيظهر قيمة العداد A [1] على الأداة Label1 و يذهب البرنامج لـ Next فيتم زيادة قيمة العداد بمقدار الزيادة التى بعد Step و هى صفر فتظل قيمة العداد A ب 1 و يتم التكرار الثانى و هكذا لمالا نهاية و لن يتم الخروج من الحلقة التكرارية و لن يتوقف التكرار الا بعد عمل Stop Debugging
و لن يعرض البرنامج القيمة [1] بالشكل المتوقع حيث يتم التنفيذ فى جزء من مليون جزء من الثانية و لن نلاحظ القيمة - لذا كان يفضل العرض من خلال صندوق رسالة MsgBox حيث يتوقف البرنامج معه و لا يواصل التكرار التالى إلا بعد الخروج من المربع و لذا ننصح بالكود التالى

Dim A As integer
For A = 1 To 3 Step 0

MsgBox(" While Looping" & A)
Next
MsgBox(" After Looping" & A)
=====================================
و بالنسبة لعدد مرات التكرار فهناك مآخذ عليه
حيث أنك ذكرت أنه يتم حساب عدد مرات التكرار كالتالى

عدد مرات التكرار = ((النهاية - البداية)/الزيادة )+1
= ((3 - 1 ) / 0 ) + 1
= ( 2 / 0 ) + 1 = ليس لها معنى + 1 = 1

ففى السطر الآخير ليس لها معنى المقصود بها ما لانهاية و ما لانهاية +1 = ما لانهاية أى الحلقة لا نهائية و المفهوك من السطر الأخير من كلامك أن ليس لها معنى تكافىء الصفر و هذا غير حقيقى
================================================== ==


رد مع اقتباس
 

العلامات المرجعية

أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


جميع الأوقات بتوقيت GMT +2. الساعة الآن 12:39 AM.