how many times is the following loop executed?
int=3;
while(i)
{i=i-1;
}
انا جاوبت انه 3 مرات
اللي يعرف بليييز يشرحلي
وشي ثاني هل الجمله هاذي صحيحه ولا لا ولماذا:
x=x*x+3;
انا قلت ان الجمله صحيحه
i=-i+-j
وقلت انه هاذي غلط بس ماني عارفه ليه
how many times is the following loop executed?
int=3;
while(i)
{i=i-1;
}
انا جاوبت انه 3 مرات
اللي يعرف بليييز يشرحلي
وشي ثاني هل الجمله هاذي صحيحه ولا لا ولماذا:
x=x*x+3;
انا قلت ان الجمله صحيحه
i=-i+-j
وقلت انه هاذي غلط بس ماني عارفه ليه
تم تعديل هذه المشاركة بواسطة طالبة حاسب آلي في 19 ديسمبر 2009 في 12:19
السلام عليكم
انا صحيح ماعندي خبر في C/C++
لكن بالنسبة للكود الاول الشرط داخل ال while موكافي عشان يوقف loop (الا اذا كان في C مختلف)
عشان كذا اجابتك خطاء لانه بيتكرر بغير نهاية infinite loop
الثاني تقريبا صحيح لكن الاول بيكون عملية الضرب بعدين الجمع
الاخير للأسف ما ادري !!!!!
سامحونا على التقصير
وشكرا
طالبة حاسب آلي كتب:how many times is the following loop executed?
int=3;
while(i)
{i=i-1;
}
انا جاوبت انه 3 مرات
اللي يعرف بليييز يشرحلي
وشي ثاني هل الجمله هاذي صحيحه ولا لا ولماذا:
x=x*x+3;
انا قلت ان الجمله صحيحه
i=-i+-j
وقلت انه هاذي غلط بس ماني عارفه ليه
الجملة الأولى ستكون صحيحه وستعمل لمدة 3 مرات في حالة ان السطر الاول يكون
int i=3;
الجملة الثانية ايضا صحيحة
وهي تعني
x=x*x+3 مثال لوفرضنا قيمة x=4 ; x=x*x+3; ستكون النتيجة 4*4 +3 = 19 إذا قيمة x شتصبح 19 إذا الجملة صحيحه
الجملة الثالثة
i=-i+-j لو فرضنا ان i=3 j=5 إذا ستكون النتيجة كالتالي سالب + سالب النتيجة سالب وهنا في الجملة السابقة تكون كالتالي : -3 + -5 = -8
إذا الجملة أيضا صحيحة
تحياتي
OMANI FOR EVER
-------------------------------------------------

-------------------------------------------------
أخي
الجملة الاولى ستكرر بلا توقف كما قال زميلي في الاعلى لان الجملة التكرارية while تترجم كل الارقام مع عدا صفر على انه 1 بمعنى true اي ان الكود سيجرى بالشكل الاتي ،
whilie(true)
{
i=i-1;
}الجملة الثانية صحيحة
الثالثة ايضا صحيحة ، حيث ان ال compiler يترجم عديد من +-+ بلا مشكلة ، اما لو -- او ++ فيترجمها بشكل اخر، اي ان -+- تساوي + و -+ تساوي - و -+-+ تساوي + اما -++ ستكون خطا لان ++ تعطي لزيادة القيمة بواحد
تحياتي
اللوب الأول إلى اللانهاية
حتى يكون ل 3 مرات فقط يجب أن يكون الكود على الشكل التالي :
int i=3;
while (i>0)
{
i=i-1;
}
و بالنسبة للحالتين التاليتين x=x*x+3; و i=-i+-j فإنهما صحيحتان , لا أرى أي غلط فيهما
شكراً
كلام اخي عماني صحيح وسليم تماما
اما بخصوص الوايل ستكون 3 مرات لان عندما
i=0
سيكون الشرط خطأ
لاننا كما نعلم في السي بلس بلس الصفر يحقق لنا الشرطfalse
حيث 1=true و0=false
اذا حينما يصل الى الصفر سيقول خطأ ولن يكمل اللوب =)
اتمنى ان اكون قد وُفقت في توضيح السبب وإن اردت الاستفسار اكثر تفضلي ..
تم تعديل هذه المشاركة بواسطة the hope في 31 ديسمبر 2009 في 21:36