مانوع الخطا هنا مع التصحيح

(++for (int I=1; I > 0, I

{

;int x=0;

     ;x+=I

}

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • -1

الخطأ في التصريح عن المتغير x داخل الدوران وأيضا من النوع int

الحل هو التصريح عن المتغير x خارج الدوران ومن النوع long

// long long x=0; //32bit
long x=0; // 64bit
for(int I=1; I>0; I++){
  x+=I;
}

 

تمّ تعديل بواسطة Hamada Sayed

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1
بتاريخ 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
بتاريخ 48 دقائق مضت قال Nadia الجهني:

هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟

وشكرا لك على ردك 

هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟

وشكرا لك على ردك 

السلام عليكم @Nadia الجهني

 

يوجد خطا بما ذكره hamada 

لا يوجد خطا في تعريف المتغير x داخل ال for loop بالعكس هذا افضل اجراء يجب ان يتم تعريف المتغير الى جنب الوظيفة التي يؤديها ,اي داخل اللووب لان اللووب بسيط ولا يقوم باي عمليات حسابية معقدة ليحدث فيضان او overflow ,لكن متى يحدث فيضان او خطا هو عند اسناد قيمة لمتغير داخل اللووب اي مثلا اعطاء قيمة لمتغير x من متغير اخر  هذا يسمى اسناد وخطأ ان يتم داخل اللووب  بينما في المثال الخاص بك  لا يوجد اسناد قيمة لمتغير x فقط عرفنا المتغير بقيمة افتراضية وهي 0 اي مستحيل ان يحدث فيضان او Over Flow 

 

اتمنى ان تكون قد وصلت المعلومة :) 

 

تحياتي

شكرا لكم

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 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;

}

تحياتي

تمّ تعديل بواسطة Mohamd Imran

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هذي اي برمجة لو سمحتي

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 6 دقائق مضت قال Janat Alsaadi:

هذي اي برمجة لو سمحتي

 

ال دوران او ال for loop هذا لاكثر من لغة c++ ,php  

 

تحياتي

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

اول شئ يجب الازاحات ان تكون مرتبة 

ييوجد علامتان تنصيص عند اول دالة بين اول جملة علامتان

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟

وشكرا لك على ردك 

بتاريخ 18 دقائق مضت قال Hamada Sayed:

استبدال الفاصله بالفاصله المنقوطه

التصريح عن المتغير x خارج الدوران

مع العلم ان الفيضان سيحدث للمتغير x اكثر من مره


int x=0;
for(int I=1; i>0; i++){
  x+=1;
}

 

هل يعني ان الخطا منطقي ولا يجب ان نضع الصفر لانه سا يتكرر الى مالانهايه ؟

وشكرا لك على ردك 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الهدف من الدوران هو الحصول علي مجموع الارقام من 1 إلي 0x7fffffff

وللحصول علي مجموع الارقام يجب التصريح عن المتغير x خارج الfor والنوع int لا يكفي لتخزين مجموع الارقام من 1 إلي 0x7fffffff فيجب التصريح عن المتغير x من النوع long 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 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
بتاريخ 3 دقائق مضت قال Mohamd Imran:

اي انه لن يصل الى الصفر ويتم طباعة النتيجة الاكبر من صفر 

متغير الindex في الfor من النوع int وليس unsigned int وبالتالي فالرقم 0x80000000 أصغر من صفر وسيتم انهاء عمل الدوران بعد الوصول لهذا الرقم وجمع كل الارقام التي سبقته في متغير x والنوع long يقبل جمع النوع int

والسبب هو ان int حجمه 4byte وlong حجمه 8byte

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن