Finde den Fehler nicht !

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von ra!d, 4. Januar 2006 .

Schlagworte:
  1. 4. Januar 2006
    Hi
    Ich habe ein Problem bei C++ ... ich habe gestern angefangen C++ zu lernen und aus diesem Grunde mehere Tutorials gemacht ... unter anderem auch ein Programm welches eine Addition durchführt ! Daraus hab ich dann auch eine Division, Subtraktion und Multiplikation gemacht ... jetzt wollte ich aber antatt 4 Programme zu haben einfach 1 "Taschenrechner" schreiben der alle 4 funktionen hat ...
    gesagt getan ... aber es funtioniert nicht und ich finde den Fahler nicht ...
    Ich hoffe jemand kann mir da helfen !

    Code:
    #include <iostream.h>
    using namespace std;
     int main() {
     int a;
     int b;
     int c;
     int Auswahl; 
     cout<<"|--------------------|"<<endl;
     cout<<"|-> Taschenrechner <-|"<<endl;
     cout<<"|--------------------|"<<endl;
     cout<<"| 1: Addition |"<<endl;
     cout<<"| 2: Subtraktion |"<<endl;
     cout<<"| 3: Multiplikation |"<<endl;
     cout<<"| 4: Division |"<<endl;
     cout<<"|--------------------|"<<endl;
     cout<<"| Bitte waehlen Sie! |"<<endl;
     cout<<"|--------------------|"<<endl;
     cin>>Auswahl;
     cout<<"|--------------------|"<<endl;
     cout<<"| Zahl 1 eingeben! |"<<endl;
     cout<<"|--------------------|"<<endl;
     cin>>a;
     cout<<"|--------------------|"<<endl;
     cout<<"| Zahl 2 eingeben! |"<<endl;
     cout<<"|--------------------|"<<endl;
     cin>>b;
     cout<<"|--------------------|"<<endl;
     cout<<" Das Ergebnis ist "<<c<<endl;
     cout<<"|--------------------|"<<endl;
     cout<<"|Programmiert by eveR|"<<endl;
     cout<<"|--------------------|"<<endl;
     }
    void main(Auswahl);
    { 
    float Auswahl;
    const float Addition=1;
    const float Subtraktion=2;
    const float Multiplikation=3;
    const float Division=4;
    
     if(Auswahl==Addition)
     c=a+b;
     else
     cout<<"Error (Zeile 45)"<<endl;
     if(Auswahl==Subtraktion)
     c=a-b;
     else
     cout<<"Error (Zeile 49)"<<endl;
     if(Auswahl==Multiplikation)
     c=a*b;
     else
     cout<<"Error (Zeile 53)"<<endl;
     if(Auswahl==Division)
     c=a/b;
     else
     cout<<"Error Zeile 57)"<<endl;
     }
     system("pause");
     return true;
     };
    
    Das war der Quellcode !
    Danke schonmal im Vorraus !
    Gruß ra!d
     
  2. 4. Januar 2006
    Hab deinen Source ma umgeschrieben
    Dürfte alles funktionieren..

    Code:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
     int auswahl;
     char janein;
    
     do {
     system("cls");
     cout<<"###########################"<<endl;
     cout<<"---------------------------"<<endl;
     cout<<"## Programmiert von eveR ##"<<endl;
     cout<<"---------------------------"<<endl;
     cout<<"###### Taschenrechner #######"<<endl;
     cout<<"---------------------------"<<endl;
     cout<<"### Bitte wählen sie... ###"<<endl;
     cout<<"---------------------------"<<endl;
     cout<<"###########################"<<endl;
     cout<<"---------------------------"<<endl;
     cout<<"1: Addition"<<endl;
     cout<<"2: Subtraktion"<<endl;
     cout<<"3: Multiplikation"<<endl;
     cout<<"4: Division"<<endl; 
     cout<<"---------------------------"<<endl;
     cout<<"###########################"<<endl; 
     cout<<"---------------------------"<<endl;
     cout<<"###########################"<<endl; 
     
     cin >> auswahl;
     
     switch (auswahl) {
     case 1: {
     int sum1, sum2;
     cout << "1. Summand: ";
     cin >> sum1;
     cout << "2. Summmand: ";
     cin >> sum2;
     cout << "Das Ergebnis ist " << sum1+sum2 << ".\n";
     break;
     }
     case 2: {
     int sub1, sub2;
     cout << "Minuend: ";
     cin >> sub1;
     cout << "Subtrahent: ";
     cin >> sub2;
     cout << "Das Ergebnis ist " << sub1-sub2 << ".\n";
     break;
     }
     case 3: {
     int faktor1, faktor2;
     cout << "1. Faktor: ";
     cin >> faktor1;
     cout << "2. Faktor: ";
     cin >> faktor2;
     cout << "Das Ergebnis ist " << faktor1*faktor2 << ".\n";
     break;
     }
     case 4: {
     int div1, div2;
     cout << "Dividend: ";
     cin >> div1;
     cout << "Divisor: ";
     cin >> div2;
     cout << "Das Ergebnis ist " << div1/div2 << ".\n";
     break;
     }
     }
     cout << "Noch eine Berechnung? (1 = ja/0 = nein): ";
     
     cin >> janein;
     
    
     } while (janein == 1);
     return EXIT_SUCCESS;
    }
    
    hab grad gesehen, da stimmt irgendwas nich
     
  3. 4. Januar 2006
    danke ! ich gucke gleich mal obs funzt aber könntest du mir das auch mal erklären ?? ich will ja nicht dumm sterben ^^
    thx ra!d

    Ja da stimmt auch was nicht ! es muss heißen
    Code:
     } while (janein == 0);
     return EXIT_SUCCESS;
    }
    
    ^^
     
  4. 4. Januar 2006
    kuggst du hier

    Code:
     fflush(stdin);
     cin >> janein;
    
    
     } while (janein != 0);
    

    fflush(stdin) führt dazu, um den TastaturPuffer zu löschen, so dass nicht ausversehen ein \n in janein steht.

    Außerdem hab ich janein zu ner integer variable gemacht

    und bau doch beim dividieren noch ne abfrage ein, ob der divisor 0 ist

    gruß

    hamml
     
  5. 4. Januar 2006
    danke erstmal aber wofüpr die abfrage ??
     
  6. 4. Januar 2006
    man kanns ja probieren, aber dann bekommt man lustige speicherverletzungen
     
  7. 5. Januar 2006
    ok das überzeugt mich ... wie soll diese abfrage denn aussehen ??
     
  8. 5. Januar 2006
    case 4: {
    int div1, div2;
    cout << "Dividend: ";
    cin >> div1;
    cout << "Divisor: ";
    cin >> div2;


    if(div2 == 0)
    {
    cout << "Division durch 0 nicht Definiert" << endl;
    break;
    }


    cout << "Das Ergebnis ist " << div1/div2 << ".\n";
    break;
    }

    endl bezweckt dass gleiche wie '\n'
     
  9. 5. Januar 2006
    ok da hätte man echt selber drauf kommen können ...
    trotzdem danke !
    gruß ra!d
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.