الحل ده غلط
اقتباس:
المشاركة الأصلية كتبت بواسطة redrose37
برجاء سرعة إجابة هذا الشؤال:
السؤال السابع الفصل الثالث كتاب الوزارة صفحة 125
صف المخرجات الناتجة من تنفيذ مجموعة الاوامر الآتية
For I= 0 To 7
If ( i mod 2 = 0 ) then
MsgBox( i + 1 )
Elself ( i Mod 3+ 0) Then
MsgBox( i *i)
Elself (i Mod 5= 0) then
msgBox(2 *i - 1 )
Else
MsgBox(i)
Evd If
NEXT
اولا هنقول i بتساوي كام
i = 0.1.2.3.4.5.6.7
بعد كده هنقول هو امتى باقى قسمة i مع 2 = صفر
في حالة i = 2 . 4 . 6 بعد كده نقول
عند i =2 تظهر رسالة 3 وعند i = 4 تظهر رسالة 5 و عند i = 6 تظهر رسالة 7 ------------------------ i+1
بعد كده هنقول امتى باقى قسمة i مع 3 = صفر
في حالة i = 3 . 6 بعد كده نقول
عند i = 3 تظهر رسالة محتواها 9 وعند i = 6 تظهر رسالة محتواها 36 ------------------ i*i
بعد كده نقول امتى باقى قسمة i على 5 = صفر
في حالة i = 5 بعد كده نقول
عند i = 5 تظهر رسالة محتواها 9 -----------------1-2*5
|
الحل الصحيح : i= 0,1,2,3,4,,5,6,7
فى جملة if then else المتعددة يتم اخذ قيمة المتغير مرة واحد فقط ولايتم تكراره
ولهذا : ( i mod 2= 0) يكون هذا مع الارقام 0 & 2 & 4 &6 ولهذ هيكون الناتج 1 & 3 & 5 &7
وعندما تكون ( i mod 3 =0 ) يكون الرقم المستخدم هنا فقط 3 ولن يتم استخدام 6 لانه تم استخدامها قبل ذلك ولهذ يكون الناتج )i * i = يكون الناتج = 9
عندما تكون (i mod 5 =0 ( يكون الرقم المستخدم 5 وهذا يكون الناتج )2* i -1 يكون الناتج 9
الرقمين التى لم يتم استخامهم هم ( 1 & 7 ) يظهر فى اخر البرنامج
* جرب البرنامج على vb.net
الدليل الثانى ان الحل فى خطأ ان ) zero mod 3 =0 لماذا لم يتم استخدامه