بأستخدام برنامج سي++.
كيف يمكن ايجاد مربع رقم بدون استخدام سيمي كولون في البرنامج .
مثلا , 5 = 25
بأستخدام برنامج سي++.
كيف يمكن ايجاد مربع رقم بدون استخدام سيمي كولون في البرنامج .
مثلا , 5 = 25
يعنى ايه لإيجاد مربع رقم بدون استخدام semi-colon، أعتقد انك عارف ان الـ semi-colon هى اللى بتحدد إنتهاء السطر البرمجى و إذا لم تكتب فى نهاية expression او statement هيحصل syntax error.
يرجى توضيح هذا اللغز
مدونتي: C++ Tips and Tricks
من الممكن ان يكون القصد هكذا
cout << "the square root is : " << 25 = 5 << " done\n";
.Everyone has a dream
.I never thought that I would be the one I am on now
...No Pain No Gain
مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...
تعديل: مشرف قسم السى/سى++ من 2012.
اولا اهلأ بكم , فعلا أخي انا هذا ما حيرني في السؤال , فأنا ايضا مثلكم عرض علي مثل هذا السؤال ,.
واقسم لي صاحب السؤال ان له حلا ,, فقلت استشيركم . :huh:
السلام عليكم و رحمة الله تعالى و بركاته
لم أفهم السؤال جيدا و لكن أحببت أن اعطيك فكرة يمكن أن تفيدك في الوصول إلى هدفك المنشود و هو حل اللغز :)
لنفرض أنك تريد إظهار الجملة arabteam2000 بدون استخدام الفاصلة المنقوطة !,الكود سيكون هكذا :
#include<iostream>
using namespace std ;
int main()
{
if(cout<<"arabteam2000"<<endl)
system("pause");
return 0;
}لا تقلق .. سأشرح لك الفكرة :wink:
لننظر كيف تتم ترجمة السطر الآتي:
if(x==5)
في البدايه عندما يجد المترجم الكلمة if سيبحث عن الشرط وهو x==5 ,الآن سيذهب المترجم إلى موقع الذاكرة المُخزن به قيمة المتغير x و يحضر القيمة ,بعد ذلك سيقوم بالنظر إلى معامل الشرط وهو == لينظر إلى الطرف الثاني وهو 5 و يقارن بين الاثنين و يكون الجواب في النهاية TRUE or FALSE ,لاحظ أنه قد تم تنفيذ الأمر x==5 مع أنك لم تضع الفاصلة المنقوطة !!!, نفس الشيء بالنسبة لهذا المثال .. سيقوم المترجم بتنفيذ ما بداخل الشرط ليعرف ما إذا كانت النتيجة هي TRUE or FALSE ,لاحظ أنه قد تم إظهار الجملة من خلال تنفيذ ما بداخل الشرط .
خلاصة : نعلم أن نتيجة الشرط هي TRUE or FALSE و لكي يعرف المترجم أي القيمتين بالضبط يقوم بتنفيذ ما بداخل الشرط فإذا كان النتيجة TRUE سيقوم المترجم بتنفيذ الأوامر التابعة للشرط و إلا فسيتم تجاهلها.
أتمنى أن تكون الفكرة واضحة و أكون قد أفدتك :)
تحياتي العطرة.
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
الحل شيئان اما المثال الفائت او المثال القادم
لنقل اننا نريد عمل متغير اسمه a و تعيين الرقم 25 له
#define a 25
هذه تكتب بعد الهيدر فايل و لا تدخل اى دوال
.Everyone has a dream
.I never thought that I would be the one I am on now
...No Pain No Gain
مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...
تعديل: مشرف قسم السى/سى++ من 2012.
السلام عليكم
اقتباسالحل شيئان اما المثال الفائت او المثال القادملنقل اننا نريد عمل متغير اسمه a و تعيين الرقم 25 له
#define a 25هذه تكتب بعد الهيدر فايل و لا تدخل اى دوال
لا يا أخي الفاضل !
حسب شروط التمرين فإن العدد سيتغير من إدخال لآخر مما يعني أن الحل الذي قدمتَه لا يؤدي المطلوب لأن استخدام الماكرو يعني تعريف ثابت قيمته محدده (هذا إذا لم نستخدم #if و #else و ...!)
احترامي.
تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 سبتمبر 2010 في 20:30
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
التعديل سيكون في بارامترات التابع main
في البارامتر char *argc
ضع فيه ما تشاء
أخي العزيز أحمد , حتى لو لم يحل هذا السؤال بالطريقة التي اريدها فكل التحية لك لما وصعت لأني تعلمت شيئا جديدا لم يكن لدي اي فكرة عنة .
واشكر الاخ xmaster للتوجد ايضا ,
اما بالنسبة لسؤالي , فما يحيرني فيه ,هو ان using name space ايصا لا يوجد فيها semi-colon ولا في اي مكان في البرنامج الا retern بسبب استخدمك int main فلو استخدمت void لاصبح برنامج كامل بدون استخدام السيمي كولون , ان لم تزبط معي جيمع المحاولات فانا سأحصل على الحل قريبا , ولكن بعد فشل :sleep: .\
وبإذنه تعالى سأضعة لترون كيفية حلة .
وايضا لا تبخلو علينا بأي معلومات ,.
اقتباسالتعديل سيكون في بارامترات التابع main
في البارامتر char *argc
ضع فيه ما تشاء
عفوا اخي لم استطيع ان افهم , هل تستطيع التوضيح بمثال ,
جزاك الله خير .
السلام عليكم
اقتباسالتعديل سيكون في بارامترات التابع mainفي البارامتر char *argc
ضع فيه ما تشاء
أهلا بك اخي الكريم :)
الدالة الرئيسية لها وسيطان, الأول معرف على شكل متغير من الأعداد الصحيحة حيث تُخزن فيه عدد وسائط البرنامج التي تم إدخالها و تكون قيمة هذا المتغير 1 و هي لاسم البرنامج, الوسيط الثاني يمكننا من رؤية تلك الوسائط أي القيم التي بها فهو عبارة عن مصفوفات, كل مصفوفة تأخذ وسيط.
لا أرى أن وسائط الدالة الرئيسية يمكن أن تنفعنا في الوصول إلى حل اللغز. و الله أعلم.
اقتباساما بالنسبة لسؤالي , فما يحيرني فيه ,هو ان using name space ايصا لا يوجد فيها semi-colon
توجد نقطة فاصلة في آخر السطر, انظر جيدا :
using namespace std ;
اقتباسولا في اي مكان في البرنامج الا retern بسبب استخدمك int main فلو استخدمت void لاصبح برنامج كامل بدون استخدام السيمي كولون
لا يا أخي الغالي !, الكتابة القياسية للدالة الرئيسية (و التي تدعمها جميع المترجمات) هي كالتالي:
int main(int argc,char *argv[])
{
.....
return 0;
}أما بقية الكتابات فلا أنصحك بها لأنها غير مدعومة من قبل standard و خصوصا الكتابة التي تحتوي على void
اقتباسوبإذنه تعالى سأضعة لترون كيفية
سأبذل ما بوسعي لمعرفة الحل و إذا لم أستطع الوصول إليه فلا تبخل علينا بجديدك :)
تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 سبتمبر 2010 في 22:00
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
تستطيع إزالة:
return 0;
فهذا لا يضر إن كنت تريد إرجاع صفر و هو الحالة الافتراضية حسب الـ standards. المشكلة الحقيقية هي أننا قمنا بتضمين ملف كـ iostream يحتوي على semicolons.
اقتباستوجد نقطة فاصلة في آخر السطر, انظر جيدا :
عفوا اخي العزيز يبدو انك لم تعرف مقصدي ,
فأنا أعلم انه توجد فاصلة منقوطة , لكن سؤالي يريد غير ذلك ,
فلا اريد ان يكون هناك اي من هذه الفواصل , وعندما قصدت استخدام الvoid قصدتها لانه لا ترجع باراميتر , وبالتالي لا يوجد فيها سطر اضافي , وبالتالي لا تحتاج ال سيمي كولون ,.
وايضا اشكرك ع المعلومات الاضافية .
هلا
اقتباسعندما قصدت استخدام الvoid قصدتها لانه لا ترجع باراميتر , وبالتالي لا يوجد فيها سطر اضافي , وبالتالي لا تحتاج ال سيمي كولون
رغبتك في الوصول إلى حل اللغز لا تعني أن تسلك طرقا ملتويه و تتبع كتابات لا تدعها standard !!!
تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 سبتمبر 2010 في 22:49
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
:huh: أخيرا بمساعدة زميلي الفاضل , توصلت الى الحل ,,
اعيد السؤال مرة اخرى ''' هو عمل برنامج باستخدام السي بلس بلس بايجاد مربع الرقم والشرط عدم استخدام السيمي كولون في البرنامج ..
والحل كالتالي ::::
#include<iostream>
int main( int x )
{
if(std::cout<<"Enter a Number:\t") {}
if(std::cin>>x) {}
if(std::cout<<"The result = "<<x*x) {}
}نعود معكم ومع الغاز جديدة .
تم تعديل هذه المشاركة بواسطة Eng.S.IDk في 25 سبتمبر 2010 في 23:21
أعتقد ان في كلا الحالتين صحيح ,
لاني انا استخدمها كثير ولم امر في اي مشاكل ,
مع العلم اني استخدم الفيجوال استوديو , ربما لا يفرق كثير ال .net .
كلام الأخ خالد الشايع صحيح, أنا استخدم الديف و قال انه فيه أخطاء حتى غيرت الـ void إلى int فعمل بدون مشاكل !
و لكن لماذا لا يعمل هذا الكود :
#include<iostream>
int main( int x )
{
if(std::cout<<"Enter a Number:\t")
if(std::cin>>x)
if(std::cout<<"The result = "<<x*x)
}تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 سبتمبر 2010 في 23:08
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
اقتباسكلام الأخ خالد الشايع صحيح, أنا استخدم الديف و قال انه فيه أخطاء حتى غيرت الـ void إلى int فعمل بدون مشاكل !
كلامك صحيح , مائة بالمئة , ففي الديف يجب ان تكون ال main من نوع int
فأنا استخدم كلا البرنامجين ,
وعندما استخدم الفيجوال استوديو فلا يؤثر ,,
:blush:
وقمت بالتعديل لإذالة اي شك
,
ولك التحية
تم تعديل هذه المشاركة بواسطة Eng.S.IDk في 25 سبتمبر 2010 في 23:23
أحمد المتألق كتب:كلام الأخ خالد الشايع صحيح, أنا استخدم الديف و قال انه فيه أخطاء حتى غيرت الـ void إلى int فعمل بدون مشاكل !
و لكن لماذا لا يعمل هذا الكود :
#include<iostream> int main( int x ) { if(std::cout<<"Enter a Number:\t") if(std::cin>>x) if(std::cout<<"The result = "<<x*x) }
ضع semicolon بعد آخر if
سبحان الله وبحمده ... سبحان الله العظيم
اقتباسضع semicolon بعد آخر if
أعتقد أن المقصود من اللغز هو عدم استخدام الـ semicolons :P
ضع {} بدلاً من الفاصلة المنقوطة.
اقتباسأعتقد أن المقصود من اللغز هو عدم استخدام الـ semicolons :P
ضع {} بدلاً من الفاصلة المنقوطة.
هذا صحيح , فهكذا وضعت الحل .