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

تحدي بسيط في C++

بدأه yahiakipsi في 9 نوفمبر 2009 · 4 رد · 844 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أكتب برنامج بلغة السي بلس يقوم بجميع العمليات الرياضية (جمع-ضرب-طرح-قسمه) ولكن بشرط ان تستخدم عملية الجمع "فقط" في حل بقية العمليات الاخرى..

توضيح للسؤال :

يعني البرنامج ما يتضمن اي دوال رياضية من مكتبة math.h ، وايضاً ما يكون داخل كووود البرنامج اي من الرموز التالية ( - او × او ÷ ).. وللتوضيح اكثر : فرضا لدينا رقمين a and b .. ونشتي نوجد ناتج الفرق بينهما.. الطريقة البديهية اننا تكتب c=a-b .. بس هذا مخالف للشرط اللي قلته في السؤال.. لاازم تكووون الصيغة الرياضية في الحل محتوية فقط على اشاارة + ..

منتظرين العباقره

#2

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

int a = 3, b = 4, result;

cout << "a + b = " << a+b << endl;
cout << "a - b = " << a + (~b + 1) << endl;

result = 0;
for(int i = 0; i < b; i++)
	result = result + a;

cout << "a * b = " << result << endl;

result = 0;
while(a >= b)
	a = a + (~b + 1), result++;

cout << "a / b = " << result << endl;
#3

يا عيني عليك تسلم ايدينك

#4

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

انا مبتدئ في السي بلس ..

ممكن أعرف العلامة هذه ~ ايش وظيفتها ..؟

#5

العلامة ~ هي لأخذ المتمم الأول one complement ،، يعني سيتم قلب أي 0 الى 1 وأي واحد الى صفر ،،

والأعداد السالبة يتم تمثيلها في الذاكرة بالمتمم الثنائي Two Complement وهو جمع ناتج الone complement مع 1 ..

بالتالي اذا كان لدينا كما في مثال خالد :

a=3 , b= 4;

فعند أخذ المتمم الثنائي للb (سيصبح -4 ) وعندما يتم جمعه مع a سيخرج الناتج المطلوب وهو -1 ..

c=  a + (~b + 1)

بالتوفيق ،

1

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

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

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

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