الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في Loop

بدأه طالبة حاسب آلي في 19 ديسمبر 2009 · 5 رد · 1,287 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

#2

السلام عليكم

انا صحيح ماعندي خبر في C/C++

لكن بالنسبة للكود الاول الشرط داخل ال while موكافي عشان يوقف loop (الا اذا كان في C مختلف)

عشان كذا اجابتك خطاء لانه بيتكرر بغير نهاية infinite loop

الثاني تقريبا صحيح لكن الاول بيكون عملية الضرب بعدين الجمع

الاخير للأسف ما ادري !!!!!

سامحونا على التقصير

وشكرا

#3
طالبة حاسب آلي كتب:

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

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#4

أخي

الجملة الاولى ستكرر بلا توقف كما قال زميلي في الاعلى لان الجملة التكرارية while تترجم كل الارقام مع عدا صفر على انه 1 بمعنى true اي ان الكود سيجرى بالشكل الاتي ،

whilie(true)
{
i=i-1;
}

الجملة الثانية صحيحة

الثالثة ايضا صحيحة ، حيث ان ال compiler يترجم عديد من +-+ بلا مشكلة ، اما لو -- او ++ فيترجمها بشكل اخر، اي ان -+- تساوي + و -+ تساوي - و -+-+ تساوي + اما -++ ستكون خطا لان ++ تعطي لزيادة القيمة بواحد

تحياتي

#5

اللوب الأول إلى اللانهاية

حتى يكون ل 3 مرات فقط يجب أن يكون الكود على الشكل التالي :

int i=3;

while (i>0)

{

i=i-1;

}

و بالنسبة للحالتين التاليتين x=x*x+3; و i=-i+-j فإنهما صحيحتان , لا أرى أي غلط فيهما

شكراً

#6

كلام اخي عماني صحيح وسليم تماما

اما بخصوص الوايل ستكون 3 مرات لان عندما

i=0

سيكون الشرط خطأ

لاننا كما نعلم في السي بلس بلس الصفر يحقق لنا الشرطfalse

حيث 1=true و0=false

اذا حينما يصل الى الصفر سيقول خطأ ولن يكمل اللوب =)

اتمنى ان اكون قد وُفقت في توضيح السبب وإن اردت الاستفسار اكثر تفضلي ..

تم تعديل هذه المشاركة بواسطة the hope في 31 ديسمبر 2009 في 21:36

مواضيع مشابهة