![]() |
مطلوب جل جمع الاعداد الفردية من 1 الى 10
الطالب الاول كان الحل بتاعه كدا
dim n , s as integer التاني كان الحل بتاعه كداdo while n<=10 s=s+n n=n+2 loop label1.text=s dim n , s as integer n=1 sum=1 do while n<=8 n=n+2 s=s+n label1.text=s loop اي الحلين خطأ وايهما مش خطأ ولو الحل الاول خطأ نقنع الطالب الاول ازاي انه خطأ ولو الحل التانى مش خطأ نقنع الطالب التانى انه مش خطأ الكود التانى نهايته 8 مش 10 |
الاول خطأ لان قيمة المتغير الابتدائية = صفر ثم تزيد قتكون 2 وهذه الاعداد زوجية
الثانى خطأ لان قيمة sum فى النهاية 36 وليست 25 |
في الحل الأول كان يجب تخصيص قيمة البداية للمتغير n = 1 حتى يتم جمع الأعداد الفردية
|
في الحل الثاني Sum لابد أن تبدأ بصفر Sum = 0
S= s+ 2 قبل N= n+2 |
اقتباس:
اقتباس:
اقتباس:
اقتباس:
|
واضح ان الكود الاول خطأ
يتبقى ازاي نقنع الطالب ان الكود ده خطأ مش صحيح |
هو الاول خطأ طبعا لانه كده هيستحدم الاعداد الزوجية مش الفردية
الكود الثانى صح لانه عايز مجموع الاعداد الفردية من 1 الى 10 اللى هما 1و3و5و7و9 وفعلا ال 9 هى اخر قيمة هنحسب بيها الsum وبعد كده هنخرج من الحلقة التكرارية وسبب كل ده طبعا هو ان كود زيادة العداد جاء قبل كود حساب المجموع وبالتالى فمفيش مشكلة ان قيمة sum فى اول مرة ب 1 وياريت اكون قدرت اوصل قصدى لحضرتك |
اقتباس:
يتبقى فقط ازاي نقنع الطالب الاول انه خطأ علشان جاب الدرجة النهائية رغم حله هذا الخطأ ونقنع الطالب التانى ازاي هو مش غلط علشان جاب 8.5 من عشرة وباقى اجاباته صحيحة |
اقتباس:
[SIZE="3"]================================================ الكود الاول ليس فيه مشكلة لإقناع الطالب بالخطأ لو تتبع الأوامر و ماذا يجمع و يخزن فى المتغير S فأول تكرار S=S+N=0+0=0 ثم زيادة قيمة العداد ليكون N=N+2=0+2=2--- ثانى تكرار S=S+N=0+2=2 ثم زيادة قيمة العداد ليكون N=N+2=2+2=4 ---- ثالث تكرار S=S+N=2+4=6 ثم زيادة قيمة العداد ليكون N=N+2=4+2=6 ---- رابع تكرار S=S+N=6+6=12 ثم زيادة قيمة العداد ليكون N=N+2=6+2=8 ---- خامس تكرار S=S+N=12+8=20 ثم زيادة قيمة العداد ليكون N=N+2=8+2=10 ---- سادس تكرار S=S+N=20+10=30 ثم زيادة قيمة العداد ليكون N=N+2=10+2=12 ---- و يصبح الشرط خطأ حيث أن الشرط N<=10 أى 12<=10 FALS و يتوقف التكرار و نخرج منه لجعل قيمة خاصية ال Text لأداة العنوان مجموع الأعداد 0+2+4+6+8+10 و لو قمنا بصياغتها بصورة موجزة نقول مجموع الأعداد الزوجية من 0 الى 10 و هو غير المطلوب و هو خطأ الكود الثانى يعطى نتيجة صحيحة كما هو مطلوب من معطيات المسألة – لكن ما هى المشكلة الوهمية ؟ أن شكل الكود مختلف عما هو شائع فى المقررات الدراسية الرسمية او غير الرسمية فأول تكرار N=N+2=1+2=3 ثم S=S+N=1+3=4 ثم يتم طباعة ناتج الجمع و هو قيمة المتغير S على أداة العنوان و هو 1+3=4 ---- و ثانى تكرار N=N+2=3+2=5 ثم S=S+N=4+5=9 ثم يتم طباعة ناتج الجمع و هو قيمة المتغير S على أداة العنوان و هو 1+3+5=9 ---- و ثالث تكرار N=N+2=5+2=7 ثم S=S+N=9+7=16 ثم يتم طباعة ناتج الجمع و هو قيمة المتغير S على أداة العنوان و هو 1+3+5+7=16 --- و رابع تكرار N=N+2=7+2=9 ثم S=S+N=16+9=25 ثم يتم طباعة ناتج الجمع و هو قيمة المتغير S على أداة العنوان و هو 1+3+5+7+9=25 ---- و يصبح الشرط خطأ حيث أن الشرط N<=9 أى 9 => 8 FALSE و يتوقف التكرار و نخرج من الحلقة التكرارية ملاحظة :- ما سيتم طباعتة على أداة العنوان سيكون أثناء الحلقة التكرارية و ليس خارجها فيتم طباعة الأعداد 4 ثم 9 ثم 16 ثم 25 و لكن ذلك كله يكون فى جزء من مليون جزء من الثانية و العين البشرية لا تستطيع رؤية ذلك لأن العين لا تلاحظ إلا الأشياء التى تتغير خلال عُشر ثانية تقريباً - فترى آخر رقم ثبت على اداة العنوان و هو ناتج جمع الأعداد 4+5+7+9=25 و هو نفسه ناتج جمع الأعداد 1+3+5+7+9=25 و هو ناتج جمع الأعداد الفردية من 1 الى 10 أستاذنا الفاضل سيف سالم دائما ما تثير الفضول بأسئلتك التى تشعرنا بأهمية التفاصيل الدقيقة فى الأكواد و التى قد تأتى بما هو غير متوقع لتخرجنا عن المألوف و أرجو ان أكون وفقت فى الإجابة عاطف مهدى حسان / ميت موسى[/SIZE] |
اقتباس:
ودائما ما تشرح كل شئ تفصيلا بس المشكلة لا يمكن اقناع طالب حاصل على الدرجة النهائية انه خطأ وان الحل خطأ دا جايب عشرة من عشرة وبالعكس تماما لا يمكن تقول للطالب انت صح وهو جايب 8.5 من عشرة يعنى متوسط شكرا لمروركم الكريم |
جميع الأوقات بتوقيت GMT +2. الساعة الآن 01:34 PM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.