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

لغز جديد ... من اين جاء الرقم 14 ...؟؟

مغلق
بدأه سنان محمد صالح في 2 فبراير 2008 · 20 رد · 6,397 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

تعودتوا يا اخوان من خالد على المواضيع الجميله التي يطرحها ليسلط الضوء على جانب من جوانب السي ++ ... واضن انه تعودتم مني على الالغاز البرمجية ..

فهذا لغز جديد ارجو التركيز والحليل ثم الاجابة ..

لديك الكود التالي ..

#include<iostream.h>
#define SQ(x) (x*x)
int main()
{
int a,b=4;
a=SQ(b+2);
printf("a=%d\n",a);
return 0;
}

تم تعريف ماكرو بسيط لتربيع العدد x .. واستدعيناه في الmain ..

ولكن .. هنا المفاجئة .. تربيع العدد 4 يجمع مع 2 ليصبح 6 كما هو معروف 36 .. امااخراج هذا البرنامج فسيكون 14 ..!!!!!!!

هنا السؤال .. من اين جاء الرقم 14 مع العلم ان تربيع ال6 (4+2) هو 36 والكود كما ترونه صحيح .؟؟

ولو اردنا جعل البرنامج يطبع 36 ولكن بنفس الشكل اعلاه .. فكيف نستطيع ذلك .. ؟؟؟

ملاحظة .. الاجوبة ترسل على الخاص رجاءا لا تفسدوا اللغز ..

وكذلك الذي يستطيع الحل يكتب استطعت وارسلت على الخاص والذي لم يفهم يمكنه السؤال ...

تحياتي العطرة وارجو ان يكون لغزا لطيفا ..

تم تعديل هذه المشاركة بواسطة سنان محمد صالح في 2 فبراير 2008 في 14:58

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#2

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

قمت بحل اللغز,

الحل سيكون لديك على الخاص بعد ثوان :)

#3

السلام عليكم:

اللغز فكرته جميله فعلا. والحل على الخاص ان شاء الله.

tvquran_6.gif

#4

حل صحيح يا اخوان ..

خالد وفهد .. ولكن نسيتم الجزء الثاني من السؤال ..

لو اردنا تصحيح الكود ليطبع 36 وهي تربيع ال6 .. كيف يمكننا ذلك ..؟؟؟

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5

لغز ممتاز وبسيط وخاصه لمن درس الماكرو Macro .

تم الحل ، وجاري الأرسال ..........

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

تم الحل وجاري ارسال الرد

للأسف تأخرت بسبب مشكلة النت في مصر

من أقوال الأئمة

الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".

الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".

الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".

الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".

علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".

وكل خير في اتباع من سلف وكل شر في ابتداع من خلف

#7

كل حلولكم صحيحه وكاملة ..

اين البقية ,؟؟

شاركونا ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#8

كان بودي أشارك ولكن للأسف لا أعرف أي شي عن المايكرو

فأنا في بداياتي بهذه اللغة <<<< لي ما يقارب شهرين لتعلم الأساسيات فقط :wacko:

ياحليل الفجوال بيسك سبوعين وانت داخل مواضيع متقدمة :lol:

يعطيكم العافية

تحياااااتي

للصداقة البرمجية

pro-vb6@hotmail.com

#9

البريد ممتلىء يا أخ سنان

#10
اقتباس
كان بودي أشارك ولكن للأسف لا أعرف أي شي عن المايكرو

كلنا كنا مثلك ولكن بالنسبه لك الطريق طويل ..

اقرا وتعلم وانتظر الحل مني لكي تعرف ماهي مشكلة الكود السابق ..

اقتباس
البريد ممتلىء يا أخ سنان

اعتذر ..لم انتبه .

حذفت الان مجموعة من الرسائل .. ارسل الحل عندما تكون موجود ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#11

اعتذر يا اخوان لقد نسيت ان اضع الحل الصحيح لهذا اللغز .. فكنت قد نسيت ذلك ..

هذا هو كود السؤال ..

#include<iostream.h>
#define SQ(x) (x*x)
int main()
{
int a,b=4;
a=SQ(b+2);
printf("a=%d\n",a);
return 0;
}

الحل للجزء الاول وهو ما هو سبب ضهور الرقم 14 بدلا من 36 ..

لانه عندما يستدعى المايكرو فان القيمة الدالخلة له ستكون بالشكل التالي ..

a = b+2*b+2
a= 4+2*4+2
a= 4 + 8 + 6
a =14

لانه بالاساس الماكرو لم نحدد معاملاته .. وهذا هو السبب في ضهور هذا الرقم .. فقد قام المايكرو وحسب الاسبقية بحساب النتيجه خطا فقد قام بالضرب قبل الجمع بين العددين الوسطين ..

اذا من حل الجزء الاول اكيد عرفتوا حل الجزء الثاني من اللغز ..

الحل هو سيكون حلين بالواقع وليس حل واحد .

الاول .. به نقوم بتحديد معاملات الماكرو كما قلنا .. على الشكل التالي (شاهدوا الماكرو )

#include<iostream.h>
#define SQ(x) ((x)*(x))
int main()
{
int a,b=4;
a=SQ(b+2);
printf("a=%d\n",a);
return 0;
}

وبذلك عندما يستدعى سياخذ القيمة بالشكل التالي ..

a = (b+2) * (b+2)
a= 6 * 6 
a = 36

ونصل للناتج الصحيح ..

الحل الثاني نفس فكرة الاول فنقوم ايضا بتحديد المعاملات ولكن ليس في الماكرو هذه المره .. فنترك الماكرو على حاله الاصلي .. والتغير سيكون بالدالة main كما يلي ..

int main()
{
int a,b=4;
a=SQ((b+2));
printf("a=%d\n",a);
return 0;
}

فنحصل على الناتج الصحيح وهو 36 ..

ارجو ان يكون لغزا جميلا وخفيف الدم على قلوبكم ..ومفيدا في نفس الوقت .

تحياتي العطرة للجميع ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#12

السلام عليكم

اخي لغز رائع مشكور :lol:

الفريق العربي للبرمجة

16359.png

userbarxp.png

624.gif
#13

استطيع فقط المطالعة :)

يا ليت تشرح الماكرو لو تكرمت .

460.gif

#14

حصلت في اسطوانة تعليمية اسمها تعليم فيجول سي بلس بلس

أن المايكرو يوفر في كتابة الاكواد

مثلا

#define Enter printf("Enter A Number..")

وفي

void main(){
.
.
Enter;
.
.
}

حيث إذا أردنا طباعة جملة Enter A Number فقط نكتب Enter

460.gif

#15

مشكووور جدا على الغز صراحه استفدت كثير :)

تم تعديل هذه المشاركة بواسطة zEr0-1 في 24 مايو 2008 في 12:29

#16

السلام عليكم ورحمة الله وبركاتة

اخى ولله انا مدرستش المكرو ولا حتى قرأت عنها

ولكن عندما نطرت الى هذا الغز فهمت المكرو ويا صحيى انا اسف جدا هذا لغز تافة جدا

وانت توهم العقل انهو لغز وهو ليس بلغز

انا اسف هذا رأى مش اكثر

من طلب العلى سهر اليالى

#17

اللغز واضح جداً

المترجم عندما جاء ليستبدل الماكرو هذا الذي حدث

b+2*b+2

و b تساوي 4 إذا

4+2*4+2

يعني تساوي 14

#18
اقتباس
اخى ولله انا مدرستش المكرو ولا حتى قرأت عنها

ولكن عندما نطرت الى هذا الغز فهمت المكرو ويا صحيى انا اسف جدا هذا لغز تافة جدا

وانت توهم العقل انهو لغز وهو ليس بلغز

انا اسف هذا رأى مش اكثر

طلب العلم ادب قبل ان يكون دكاء و ارادة -_-

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#19

لغز جميل وواضح وسهل

مشكوووووووور

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

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

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

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

#20

شكراً لك اخي الكريم

عمر ما درست مايكرو بالسي

بس فهمت الان

شكرا جزيلا

وإن شاء الله نشوف الغاز اخرى

واستطيع اجاوب عليها

بس لو سمحت

سهلها عشاني :blush:

اشكرك مره اخرى

اخوك incomplete

#21

الله يعطيك العافية ..لغز رائع ...:)

هذا الموضوع مغلق.

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