عرض مشاركة واحدة
  #68  
قديم 28-03-2013, 02:33 AM
الصورة الرمزية زياد_عاطف
زياد_عاطف زياد_عاطف غير متواجد حالياً
معلم كمبيوتر و تكنولوجيا المعلومات
 
تاريخ التسجيل: Aug 2008
المشاركات: 503
معدل تقييم المستوى: 16
زياد_عاطف is on a distinguished road
Opp رد/ عاطف حسان

اقتباس:
المشاركة الأصلية كتبت بواسطة جناكليس مشاهدة المشاركة
السلام عليكم
اخى الفاضل الاستاذ عاطف حسان
انا محتار فى اجابة هذا السالسؤال
الرجاء من حضرتك الاجابة علية مع الشرح
for i = 0 to 7
if (i mod 2 =0) thne
1- msgbox i+1
else if(i mod 3 =0) thne
2- msgbox i*1
else if(i mod 5 =0) thne
3- msgbox 2*1
else
4- msgbox i
end if
end sub

===========================
Dim i As Integer
For i = 0 To 7
if (i Mod 2 = 0) Then
MsgBox (i + 1)
u
ElseIf (i Mod 3 = 0) Then
MsgBox (i * 1)
u
ElseIf (i Mod 5 = 0) Then
MsgBox (2 * 1)
u
Else
MsgBox (i)
u
End If
Next
هذا سؤال متشابه لحد كبير جدا لتمرين اخر الفصل الثالث فى الكتاب المطبوع سابقا
و يطلب منك تحديد المخرجات – أى ما يظهر فى مربع الرسالة MsgBox

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

(1) عندما يذهب البرنامج فى اول مرة لـ For يتم تخزين قيمة البداية Start [0] فى العداد i
و يتم اختبار شرط التكرار – هل I<=End أى هل 0 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط يتحقق لأن
2 Mod 0 = 0 و Mod تشير لباقى القسمة هنا باقى قسمة صفر على 2 يكون 0 فيتم تنفيذ البديل الذى يلى الشرط و هو MsgBox ( I +1) أى طباعة 0+1 فى مربع الرسالة فيكون أول مخرجات (ما يطبعه) البرامج هو 1
(2) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 0+1=1
و يتم اختبار شرط التكرار – هل I<=End أى هل 1 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط لا يتحقق لأن
1 Mod 2 <> 0 فيتم تجاهل البديل الذى يليه
ثانى شرط لا يتحقق لأن
1 Mod 3 <> 0 فيتم تجاهل البديل الذى يليه
ثالث شرط لا يتحقق لأن
1 Mod 5 <> 0 فيتم تجاهل البديل الذى يليه
فيتم تفيذ البديل الإفتراضى و هو الذى يلى
ElseMsgBox(i) أى أى طباعة 1 فى مربع الرسالة فيكون ثاى مخرجات (ما يطبعه) البرامج هو 1
(3) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 1+1=2
و يتم اختبار شرط التكرار – هل I<=End أى هل 2 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط يتحقق لأن
2 Mod 2 = 0 فيتم تنفيذ البديل الذى يلى الشرط و هو MsgBox ( I +1) أى طباعة 2+1 فى مربع الرسالة
فيكون ثالث مخرجات (ما يطبعه) البرامج هو
3
(4) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 2+1=3
و يتم اختبار شرط التكرار – هل I<=End أى هل 3 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط لا يتحقق لأن
3 Mod 2 <> 0 فيتم تجاهل البديل الذى يليه
ثانى شرط يتحقق لأن
3 Mod 3 = 0
فيتم تنفيذ البديل الذى يلى الشرط و هو
MsgBox ( I *1) أى طباعة 3*1 فى مربع الرسالة
فيكون رابع مخرجات (ما يطبعه) البرامج هو
3
(5) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 3+1=4
و يتم اختبار شرط التكرار – هل I<=End أى هل 4 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط يتحقق لأن
4 Mod 2 = 0
فيتم تنفيذ البديل الذى يلى الشرط و هو
MsgBox ( I +1) أى طباعة 4+1 فى مربع الرسالة
فيكون خامس مخرجات (ما يطبعه) البرامج هو
5
(6) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 4+1=5
و يتم اختبار شرط التكرار – هل I<=End أى هل 1 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط لا يتحقق لأن
5 Mod 2 <> 0 فيتم تجاهل البديل الذى يليه
ثانى شرط لا يتحقق لأن
5 Mod 3 <> 0 فيتم تجاهل البديل الذى يليه
ثالث شرط يتحقق لأن
5 Mod 5 <> 0
فيتم تنفيذ البديل الذى يلى الشرط و هو MsgBox ( 2*I ) أى طباعة 2*1 فى مربع الرسالة
فيكون سادس مخرجات (ما يطبعه) البرامج هو
2
(7) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 5+1=6
و يتم اختبار شرط التكرار – هل I<=End أى هل 6 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط يتحقق لأن
6 Mod 2 = 0
فيتم تنفيذ البديل الذى يلى الشرط و هو MsgBox ( i+1 ) أى طباعة 6+1 فى مربع الرسالة
فيكون سابع مخرجات (ما يطبعه) البرامج هو
7
(8) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 6+1=7
و يتم اختبار شرط التكرار – هل I<=End أى هل 7 اقل من او تساوى 7 فيكون ناتج الشرط صحيح فيتم التكرار و التكرار هنا عبارة عن جملة Else If المتداخلة فيتم تفيذها
اول شرط لا يتحقق لأن
7 Mod 2 <> 0 فيتم تجاهل البديل الذى يليه
ثانى شرط لا يتحقق لأن
7 Mod 3 <> 0 فيتم تجاهل البديل الذى يليه
ثالث شرط لا يتحقق لأن
7 Mod 5 <> 0 فيتم تجاهل البديل الذى يليه
فيتم تفيذ البديل الإفتراضى و هو الذى يلى
ElseMsgBox(i) أى أى طباعة i فى مربع الرسالة فيكون ثامن مخرجات (ما يطبعه) البرامج هو 7
(9) ثم يذهب البرنامج لـ Next ليتم زيادة قيمة العداد بقيمة الزيادة الافتراضية و هى 1 لأننا لم نستخدم كلمة Step – فتصبح قيمة I تساوى قيمتها + مقدار الزيادة فتصبح 7+1=8
و يتم اختبار شرط التكرار – هل I<=End أى هل 8 اقل من او تساوى 7 فيكون ناتج الشرط خطأ فيتوقف التكرار
الملفات المرفقة
نوع الملف: doc مخرجات البرامج.doc‏ (38.5 كيلوبايت, المشاهدات 214)
رد مع اقتباس