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

لغز خفيف بسيط....اتفضل

بدأه mandareka في 27 يونيو 2009 · 6 رد · 612 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,

بإختصار هذا الكود، والمطلوب هو قيمة b بعد تنفيذ هذا الكود

int a, b, result;
	a = b = 0;
	result = a>0 && ++b>0;

الكومبايلرات غير مسموحة :wink:

فكر وبسسسسسسسسسسسس :happy:

Bye

دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب

حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .

الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية

الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير

#2

القيمة هي 0

لأن نتيجة العملية a>0 هي 0

ونتيجة العملية ++b>0 هي 1

ونتيجة العملية 0 && 1 تساوي 0

If you want to learn programming start with C++

#3

لا عفوا اخي

انا قصدت قيمة المتغير b وليس النتيجة

انا بالإنتظار

دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب

حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .

الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية

الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير

#4

حسنا,,,

لن أطيل عليكم

كنت متوقع عدم وجود ردود

لسبب واحد..... تفاهة السؤال,,

حسنا,, كما قلت أخي في مشاركتك

 ++b > 0 = 1

أنت هكذا أنت تقصد أن قيمة b = 1

ولكن ذلك غير صحيح

b قيمتها 0 !!!!!

حتى بعد تنفيذ الأمر

هذا ما اردته من الموضوع

أن قيمة المتغير لم تتأثر بوجود المعامل ++

والسلام عليكم

دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب

حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .

الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية

الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير

#5

b = 0

لأن العامل && لا يقوم بتقييم الحد الثاني إذا كان الحد الأول false على عكس العامل & ..

سبحان الله وبحمده ... سبحان الله العظيم

#6

السلام عليكم ...

فكرة جميلة و للأسف لم أنتبه للسؤال :)

هذا يسمى Short Circuit Evaluation.

بما أن a > 0 قيمتها false, إذاً جميع عوامل المعامل && لاتؤثر على قيمة النتيجة النهائية, و بالتالي ناتج العبارة يصبح false أو 0 إن أحببت,

عندما يصل التنفيذ إلى a > 0 فإن البرنامج يتوقف عن إكمال بقية العبارة لأنه حصل على النتيجة فعلاً, و لهذا لا يتم تنفيذ الشق المتعلق بـ b,

====================

عذراً لم أرى رد الأخ أحمد :)

تحياتي ,,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 28 يونيو 2009 في 01:23

#7
اقتباس
حسنا,,,

لن أطيل عليكم

كنت متوقع عدم وجود ردود

لسبب واحد..... تفاهة السؤال,,

حسنا,, كما قلت أخي في مشاركتك

فكرة جميلة ، المهم الفائدة مهما كان السؤال تافهًا ..

بانتظار المزيد من ألغازك أخي mandareka

تم تعديل هذه المشاركة بواسطة المبرمج أحمد في 28 يونيو 2009 في 01:23

سبحان الله وبحمده ... سبحان الله العظيم

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