نيلاي نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 مانوع الخطا هنا مع التصحيح (++for (int I=1; I > 0, I { ;int x=0; ;x+=I } اقتباس
-1 Hamada Sayed نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 (معدل) الخطأ في التصريح عن المتغير x داخل الدوران وأيضا من النوع int الحل هو التصريح عن المتغير x خارج الدوران ومن النوع long // long long x=0; //32bit long x=0; // 64bit for(int I=1; I>0; I++){ x+=I; } تم التعديل في 9 أبريل 2020 بواسطة Hamada Sayed اقتباس
1 Hamada Sayed نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 بتاريخ 7 ساعات قال Nadia الجهني: مانوع الخطا هنا مع التصحيح (++for (int I=1; I > 0, I { ;int x=0; ;x+=I } استبدال الفاصله بالفاصله المنقوطه التصريح عن المتغير x خارج الدوران مع العلم ان الفيضان سيحدث للمتغير x اكثر من مره int x=0; for(int I=1; i>0; i++){ x+=1; } اقتباس
1 Mohamd Imran نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 بتاريخ 48 دقائق مضت قال Nadia الجهني: هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟ وشكرا لك على ردك هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟ وشكرا لك على ردك السلام عليكم @Nadia الجهني يوجد خطا بما ذكره hamada لا يوجد خطا في تعريف المتغير x داخل ال for loop بالعكس هذا افضل اجراء يجب ان يتم تعريف المتغير الى جنب الوظيفة التي يؤديها ,اي داخل اللووب لان اللووب بسيط ولا يقوم باي عمليات حسابية معقدة ليحدث فيضان او overflow ,لكن متى يحدث فيضان او خطا هو عند اسناد قيمة لمتغير داخل اللووب اي مثلا اعطاء قيمة لمتغير x من متغير اخر هذا يسمى اسناد وخطأ ان يتم داخل اللووب بينما في المثال الخاص بك لا يوجد اسناد قيمة لمتغير x فقط عرفنا المتغير بقيمة افتراضية وهي 0 اي مستحيل ان يحدث فيضان او Over Flow اتمنى ان تكون قد وصلت المعلومة تحياتي شكرا لكم 1 اقتباس
0 Mohamd Imran نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 (معدل) بتاريخ 54 دقائق مضت قال Nadia الجهني: مانوع الخطا هنا مع التصحيح (++for (int I=1; I > 0, I { ;int x=0; ;x+=I } اهلا بك الخطا بسيط هو بدل (,) يجب استخدام (;) هنا for (int I=1; I > 0; I++) بعد الصفر والتصحيح هكذا for (int I=1; I > 0; I++) { int x=0; x+=I; } تحياتي تم التعديل في 9 أبريل 2020 بواسطة Mohamd Imran اقتباس
0 Mohamd Imran نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 بتاريخ 6 دقائق مضت قال Janat Alsaadi: هذي اي برمجة لو سمحتي ال دوران او ال for loop هذا لاكثر من لغة c++ ,php تحياتي اقتباس
0 محمد جمال32 نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 اول شئ يجب الازاحات ان تكون مرتبة ييوجد علامتان تنصيص عند اول دالة بين اول جملة علامتان اقتباس
0 نيلاي نشر 9 أبريل 2020 الكاتب أرسل تقرير نشر 9 أبريل 2020 هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟ وشكرا لك على ردك بتاريخ 18 دقائق مضت قال Hamada Sayed: استبدال الفاصله بالفاصله المنقوطه التصريح عن المتغير x خارج الدوران مع العلم ان الفيضان سيحدث للمتغير x اكثر من مره int x=0; for(int I=1; i>0; i++){ x+=1; } هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟ وشكرا لك على ردك اقتباس
0 Hamada Sayed نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 الهدف من الدوران هو الحصول علي مجموع الارقام من 1 إلي 0x7fffffff وللحصول علي مجموع الارقام يجب التصريح عن المتغير x خارج الfor والنوع int لا يكفي لتخزين مجموع الارقام من 1 إلي 0x7fffffff فيجب التصريح عن المتغير x من النوع long اقتباس
0 Mohamd Imran نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 بتاريخ 14 دقائق مضت قال Hamada Sayed: الهدف من الدوران هو الحصول علي مجموع الارقام من 1 إلي 0x7fffffff وللحصول علي مجموع الارقام يجب التصريح عن المتغير x خارج الfor والنوع int لا يكفي لتخزين مجموع الارقام من 1 إلي 0x7fffffff فيجب التصريح عن المتغير x من النوع long لكن اللووب نتيجته غير الذي ذكرته ,لاحظ اللووب for (int I=1; I > 0; I++) اللووب لن يصل الى الى صفر يوجد I++ وايضا I > 0 اي انه لن يصل الى الصفر ويتم طباعة النتيجة الاكبر من صفر وبالنسبة لتعريف المتغير long فهو خطا لان I من نوع int لاحظ اللووب ويتم طباعة القيمة هكذا x+=I; تحياتي اقتباس
0 Hamada Sayed نشر 9 أبريل 2020 أرسل تقرير نشر 9 أبريل 2020 بتاريخ 3 دقائق مضت قال Mohamd Imran: اي انه لن يصل الى الصفر ويتم طباعة النتيجة الاكبر من صفر متغير الindex في الfor من النوع int وليس unsigned int وبالتالي فالرقم 0x80000000 أصغر من صفر وسيتم انهاء عمل الدوران بعد الوصول لهذا الرقم وجمع كل الارقام التي سبقته في متغير x والنوع long يقبل جمع النوع int والسبب هو ان int حجمه 4byte وlong حجمه 8byte اقتباس
السؤال
نيلاي
مانوع الخطا هنا مع التصحيح
(++for (int I=1; I > 0, I
{
;int x=0;
;x+=I
}
11 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.