اذهب إلى المحتوى
  • 0

كيف أكتب برنامج بلغة c++ باستخدام while

Abdulhadi A Abou Samra

السؤال

باستخدام لغة ++C مطلوب عمل برنامج آلة حاسبة بسيطة ، حيث يظهر للمستخدم في بداية البرنامج قائمة بارقام العمليات الحسابية المطلوبة كالتلي:

رقم 1  لعملية الجمع (Add)  

رقم 2 لعملية الطرح(Subtract) 

رقم 3 لعملية الضرب(Multiplication) 

رقم 4 لعملية القسمة(Division) 

رقم 5 لعملية باقي القسمة(Rest of division) 

رقم 0 للخروج من البرنامج (Exit) 

سيقوم المستخدم بإدخال رقم العملية الحسابية من لوحة المفاتيح (من 1 الى 5)  على سبيل المثال اذا اراد المستخدم  أن يجمع رقمين فإنه سيدخل الرقم 1 وهو الرقم الخاص بعملية الجمع من القائمة  ، ومن ثم سيطلب البرنامج من  المستخدم إدخال رقمين من لوحة المفاتيح ليقوم البرنامج بتنفيذ عملية الجمع عليهم وطباعة ناتج الجمع ، ستظهر القائمة للمستخدم من جديد تطلب منه إدخال رقم عملية حسابية جديدة (من 1 الى 5)  وستكرر العملية الى ان يدخل المستخدم الرقم صفر لانهاء البرنامج.

 

ملاحظات / 

لتكرار العملية استخدم الحلقة التكرارية while .

في حالة قام المستخدم بادخال رقم خارج الارقام من 0 الى 5 أظهر له رسالة خطأ(Error Operation)


قمت بكتابة البرنامج على هدا النمط .. ولكني تفاجءت بأن المعطيات (سكربت) ليس صحيحاً ..
 

#include <iostream>
using namespace std;
int main()
{
float num1 , num2;     // i need number 1.0 ...
char m;
cout <<"Enter the first number : ";    
cin >> num1;
cout <<"Enter secand number  :";
cin >> num2;
cout << "Enter the Hisbah  (+ or - or *  or /  )";
cin >> m;
   while (m=='+'){
    
    cout << " the Hisba(Add+) is ";
    cout <<num1+num2<< endl;
   break;    // dont stop the resulting i dont now that i do add break 
}

    while  (m=='-'){
    
    cout << " the Hisba(Subtract-) is ";
    cout <<num1-num2<< endl;
    break;    // dont stop the resulting i dont now that i do add break 
    }
    
    while  (m=='*'){
        
        
        cout << " the Hisba(Multiplication*) is ";
    cout <<num1*num2<< endl;
    break; // dont stop the resulting i dont now that i do add break 
    }
    
    while  (m=='/'){
        
        
        cout << " the Hisba(Division/) is ";
    cout <<num1/num2<< endl;
    break;  // dont stop the resulting i dont now that i do add break 
    }
    
    
return 0;
    
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحبًا @Abdulhadi A Abou Samra,

يمكنك عمل ذلك بهذه الشيفرة :

#include <iostream>
#include <stdexcept>

using namespace std;

int main()
{
    int num1, num2;
    int oper;
    
  	// عملية التكرار , تتوقف في حال ادخل المستخدم رقم 0
    while(true){
      
        cout << "Type a number of your operation.\nAdd : (1)\nSubtract : (2)\nMutliply : (3)\nDivide : (4)\nRest Of Division : (5)\nExit : (0)\noperation = ";
        cin >> oper;
        
      	// نتأكد اذا قيمة العملية بين رقم 0 و 5
        if(!(oper >= 0 && oper <= 5)){
          	// نقوم برفع خطأ اذا قيمة العملية ليست بين 0 و 5
            throw std::invalid_argument( "operation number shall be from 0 to 5" );
        }else
        {
          	// تتوقف عملية التكرار
            if(oper == 0){
                break;
            }
            
            cout <<"Enter the first number : ";    
            cin >> num1;
            
            cout <<"Enter the second number : ";    
            cin >> num2;
            
            cout << "Result is : ";  
            
            if(oper == 1){
                cout << num1+num2;
            }
            else if(oper == 2){
                cout << num1-num2;
            }
            else if(oper == 3){
                cout << num1*num2;
            }
            else if(oper == 4){
                cout << num1/num2;
            }
            else if(oper == 5){
                cout << num1%num2;
            }
             cout << "\n\n";
        }
    }
    


    return 0;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...