Problem mit'n Taschenrechner



  • Warum läuft das so nicht?

    //--------------Moduldatein, Headerdatein oder Programmbiblotheken--------------
    #include<iostream.h>			//enthält Programme für cin und cout
    #include<conio.h>          //enthält Programme wie getch oder clrscr
    #include<math.h>           //für mathematische Berechnungen nötig
    #include<stdio.h>          //für standart Ein- und Ausgaben
    #include<iomanip.h>
    
    //----------------------------Globale Deklarationen-----------------------------
    char op;
    float zahl1,zahl2,summe;
    
    //--------------------------------Hauptprogramm---------------------------------
    void main()
    
    	{
       clrscr();
       cout<<"Geben sie ein welche Rechenart sie benutzen wollen: "<<endl<<endl;
       cout<<"(g)rundrechenarten"<<endl<<"(t)rigonomische ";
       cout<<"Funktion"<<endl<<"(p)otenzrechnung"<<endl;
       cout<<"(w)urzel"<<endl<<"(n)-te wurzel"<<endl<<"(k)ehrwert"<<endl;
       cout<<"(p)otenzrechnung"<<endl<<"(f)akultaet"<<endl;
       cout<<"(s)chaltjahrberechnung"<<endl<<endl;
       cout<<"Tippen Sie den Buchstaben fuer die Rechenart ein,"<<endl;
       cout<<"die sie benutzen wollen und bestaetigen Sie mit Enter: ";
       cin>>op;
       //Ist das Hauptmenü durch welches man in die Rechenmenüs kommt.
       switch(op)
       	{
          case 'g': clrscr();
       	cout<<"Hier kannst du mit den Grundrechenarten rechnen."<<endl<<endl;
          cout<<"Du kannst: "<<endl<<endl;
          cout<<"addieren"<<endl<<"subtrahieren"<<endl<<"multiplizieren"<<endl;
          cout<<"dividieren"<<endl<<endl;
          cout<<"Gib die Rechenaufgabe ein: ";
          cin>>zahl1>>op>>zahl2;
          //Ist das Rechenmenü für die Grundrechenarten.
       	switch(op)
          	{
       		case'+': cout<<endl<<zahl1+zahl2;break;
          	case'-': cout<<endl<<zahl1-zahl2;break;
          	case'*': cout<<endl<<zahl1*zahl2;break;
          	case'/': if (zahl2==0)
             	{
                cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                cout<<"geben sie eine neue Zahl ein";
                cin>>zahl2;
                }
                     cout<<endl<<zahl1/zahl2;break;
             case':': if (zahl2==0)
             	{
                cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                cout<<"bitte geben sie eine neue Zahl ein";
                cin>>zahl2;
                }
             	       cout<<endl<<zahl1/zahl2;break;
    		break;
          }
             //Hier sind die Rechnungen für die Grundrechenarten
          {
          case't': clrscr();
          cout<<"Hier kannst du mit Trigonomischen Funktionen rechnen."<<endl<<endl;
          cout<<"Du kannst folgende Funktionen benutzen: "<<endl<<endl;
          cout<<"sin(s)"<<endl<<"cos(c)"<<endl<<"tan(t)"<<endl<<"ctg(g)"<<endl;
          cout<<endl<<"Tipp erst den Buchstaben der Funktion ein,"<<endl;
          cout<<"die du benutzen willst, dann die Zahl die berechnet"<<endl;
          cout<<"werden soll und bestätige dann mit Enter";
          cin>>op>>zahl1
          //Ist das Rechenmenü für Trigonomischen Funktionen.
          switch(op)
          	{
             case's': cout<<endl<<sin(zahl1);break;
             case'c': cout<<endl<<cos(zahl1);break;
             case't': cout<<endl<<tan(zahl1);break;
             }
          break;
             //Hier sind die Rechnungen der Trigonomischen Funktionen
          }
    
    	getch();
       }
    

    Hier kann man die cpp auch nochmal Downloaden



  • "Läuft nicht" ist keine ausreichende Problembeschreibung.



  • Also er findet beim Kompilieren folgende Fehler:

    "Ambiguous operators need parenthese"
    "Ambiguous operators need parenthese"
    "Unreachable code"
    "Statement missing ;"
    "Compound statement missing }"

    Könnt euch ja mal die 3kb große cpp saugen und selber Kompilieren lassen.

    Danke schonmal für die hilfe



  • Vielleicht bequemst du dich ja mal selbst noch ein bischen, der Sache auf den Grund zu gehen.
    Sieh dir an, in welcher Zeile die Fehler auftreten und wie der Code in der unmittelbaren Umgebung aussieht (auch davor!). Und dann halt noch die üblichen Prüfungen, z.B. ob jede (geschweifte) Klammer ihr Gegenstück hat usw.



  • Hab ich gemacht, wenn ich was gefunden hätte, hät ich euch ja nicht um Hilfe geboten. 😞



  • Mach's nochmal, aber gründlich, und beachte meine o.g. Hinweise.
    Und wenn du bei einer Fehlermeldung nicht weiterkommst dann kümmere dich erstmal um die nächste.



  • so geht's bei mir:

    //--------------Moduldatein, Headerdatein oder Programmbiblotheken--------------
    #include<iostream.h>            //enthält Programme für cin und cout
    #include<conio.h>          //enthält Programme wie getch oder clrscr
    #include<math.h>           //für mathematische Berechnungen nötig
    #include<stdio.h>          //für stan**** Ein- und Ausgaben
    #include<iomanip.h>
    
    //----------------------------Globale Deklarationen-----------------------------
    char op;
    float zahl1,zahl2,summe;
    
    //--------------------------------Hauptprogramm---------------------------------
    void main()
    {
       clrscr();
       cout<<"Geben sie ein welche Rechenart sie benutzen wollen: "<<endl<<endl;
       cout<<"(g)rundrechenarten"<<endl<<"(t)rigonomische ";
       cout<<"Funktion"<<endl<<"(p)otenzrechnung"<<endl;
       cout<<"(w)urzel"<<endl<<"(n)-te wurzel"<<endl<<"(k)ehrwert"<<endl; 
       cout<<"(p)otenzrechnung"<<endl<<"(f)akultaet"<<endl; 
       cout<<"(s)chaltjahrberechnung"<<endl<<endl; 
       cout<<"Tippen Sie den Buchstaben fuer die Rechenart ein,"<<endl; 
       cout<<"die sie benutzen wollen und bestaetigen Sie mit Enter: ";
       cin>>op; 
       //Ist das Hauptmenü durch welches man in die Rechenmenüs kommt. 
       switch(op)
           {
            case 'g': clrscr();
            {
             cout<<"Hier kannst du mit den Grundrechenarten rechnen."<<endl<<endl;
             cout<<"Du kannst: "<<endl<<endl;
             cout<<"addieren"<<endl<<"subtrahieren"<<endl<<"multiplizieren"<<endl;
             cout<<"dividieren"<<endl<<endl;
             cout<<"Gib die Rechenaufgabe ein: ";
             cin>>zahl1>>op>>zahl2;
             //Ist das Rechenmenü für die Grundrechenarten.
             switch(op)
             {
               case'+': cout<<endl<<zahl1+zahl2;break;
               case'-': cout<<endl<<zahl1-zahl2;break;
               case'*': cout<<endl<<zahl1*zahl2;break;
               case'/': if (zahl2==0)
               {
                cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                cout<<"geben sie eine neue Zahl ein";
                cin>>zahl2;
                cout<<endl<<zahl1/zahl2;break;
               }
               case':': if (zahl2==0)
               {
                cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                cout<<"bitte geben sie eine neue Zahl ein";
                cin>>zahl2;
                cout<<endl<<zahl1/zahl2;break;
               }
             }
             break;
            }
             //Hier sind die Rechnungen für die Grundrechenarten
            case't': clrscr();
            {
             cout<<"Hier kannst du mit Trigonomischen Funktionen rechnen."<<endl<<endl;
             cout<<"Du kannst folgende Funktionen benutzen: "<<endl<<endl;
             cout<<"sin(s)"<<endl<<"cos(c)"<<endl<<"tan(t)"<<endl<<"ctg(g)"<<endl;
             cout<<endl<<"Tipp erst den Buchstaben der Funktion ein,"<<endl;
             cout<<"die du benutzen willst, dann die Zahl die berechnet"<<endl;
             cout<<"werden soll und bestätige dann mit Enter";
             cin>>op>>zahl1;
             //Ist das Rechenmenü für Trigonomischen Funktionen.
             switch(op)
             {
              case's': cout<<endl<<sin(zahl1);break;
              case'c': cout<<endl<<cos(zahl1);break;
              case't': cout<<endl<<tan(zahl1);break;
             }
             break;
            }
             //Hier sind die Rechnungen der Trigonomischen Funktionen
           }
        getch();
       }
    

    Aber der Benutzer wird abwechselnd gesiezt und geduzt...

    -kaljinka-



  • Dank dir. Ich bin jetzt eigentlich fertig und es hatte auch soweit alles funktioniert dann hab ich ein wenig den code aufgeräumt und jetzt hat der nen Problem bei den Grundrechenarten, der zeigt das Ergebnis nicht mehr an. 😞

    Und bei den anderen Rechenfunktionen klappt die Schleife nicht mehr.
    Ich hab schon geschaut aber nix gefunden.

    Ihr könnt euch die cpp hier runterladen Download

    hier ist der code:

    //--------------Moduldatein, Headerdatein oder Programmbiblotheken--------------
    #include<iostream>            //enthält Programme für cin und cout
    #include<conio.h>          //enthält Programme wie getch oder clrscr
    #include<math.h>           //für mathematische Berechnungen nötig
    #include<iomanip>
    #include <stdio.h>
    //using namespace std;
    //void clrscr(){}
    
    //----------------------------Globale Deklarationen-----------------------------
    float zahl1,zahl2,summe,ergebnis;
    int Jahr,faku,zahl,i, op;
    bool neg;
    
    //--------------------------------Hauptprogramm---------------------------------
    int main()
    {
        while(1){ //Hauptmenü durch welches man in die Rechenmenüs kommt
            clrscr();
            cout<<"Geben sie ein welche Rechenart sie benutzen wollen: "<<endl;
            cout<<endl<<"(1)Grundrechenarten"<<endl<<"(2)Trigonomische ";
            cout<<"Funktion"<<endl<<"(3)Prozentrechnung"<<endl;
            cout<<"(4)Wurzel"<<endl<<"(5)n-te wurzel"<<endl<<"(6)Kehrwert"<<endl;
            cout<<"(7)Potenzrechnung"<<endl<<"(8)Fakultaet"<<endl;
            cout<<"(9)Schaltjahrberechnung"<<endl<<"(10)Quadrieren"<<endl;
            cout<<"(11)natuerlicher Logarithmus (ln)"<<endl;
            cout<<"(12)Zehnerlogarithmus(log)"<<endl<<endl;
            cout<<"Tippen Sie die Zahl fuer die Rechenart ein,"<<endl;
            cout<<"die sie benutzen wollen und bestaetigen Sie mit Enter: ";
            cin>>op;
    
            switch(op)
            {
                case 1: //Grundrechenarten
                clrscr();
                cout<<"Hier kannst du mit den Grundrechenarten rechnen."<<endl;
                cout<<endl<<"Du kannst: "<<endl<<endl;
                cout<<"addieren"<<endl<<"subtrahieren"<<endl<<"multiplizieren";
                cout<<endl<<"dividieren"<<endl<<endl;
                cout<<"Gib die Rechenaufgabe ein: ";
                cin>>zahl1>>op>>zahl2;
    
                switch(op)
                {
                    case'+':
                    cout<<endl<<zahl1+zahl2;
                    break;
                    case'-':
                    cout<<endl<<zahl1-zahl2;
                    break;
                    case'*':
                    cout<<endl<<zahl1*zahl2;
                    break;
                    case'/':
                    if (zahl2==0)
                    {
                        cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                        cout<<"geben sie eine neue Zahl ein";
                        cin>>zahl2;
                    }
                    cout<<endl<<zahl1/zahl2;
                    break;
                    case':':
                    if (zahl2==0)
                    {
                        cout<<endl<<"Die Division durch 0 ist nicht moeglich, ";
                        cout<<"bitte geben sie eine neue Zahl ein";
                        cin>>zahl2;
                    }
                    cout<<endl<<zahl1/zahl2;break;
                    break;
                }
                break;
    
                case 2: //Trigonomische Funktionen
                clrscr();
                cout<<"Hier kannst du mit Trigonomischen Funktionen rechnen."<<endl;
                cout<<endl<<"Du kannst folgende Funktionen benutzen: "<<endl<<endl;
                cout<<"sin(s)"<<endl<<"cos(c)"<<endl<<"tan(t)"<<endl<<"ctg(g)";
                cout<<endl<<endl<<"Tipp erst den Buchstaben der Funktion ein,";
                cout<<endl<<"die du benutzen willst, dann die Zahl die berechnet";
                cout<<endl<<"werden soll und bestätige dann mit Enter: ";
                cin>>op>>zahl1;
                //Ist das Rechenmenü für Trigonomischen Funktionen.
                switch(op)
                {
                    case's': cout<<endl<<sin(zahl1);break;
                    case'c': cout<<endl<<cos(zahl1);break;
                    case't': cout<<endl<<tan(zahl1);break;
                    case'g': cout<<endl<<1/tan(zahl1);break;
                }
                break;
    
                case 7: //Potenzrechnung
                clrscr();
                ergebnis=1;
                cout<<"Rechnung eingeben (x^y; Nur natürliche Zahlen benutzen):";
                cin>>zahl1>>op>>zahl2;
                zahl2=int(zahl2);
                neg=false;
                if(zahl2<0){
                    neg=true;
                    zahl2*=-1;
                }
                while(zahl2){
                    ergebnis*=zahl1;
                    zahl2--;
                }
                if(neg)ergebnis=1/ergebnis;
                cout<<endl<<ergebnis;
                break;
    
                case 9: //SChaltjahrberechnung
                clrscr();
                cout<<"Geben Sie das Jahr ein: ";
       			cin>>Jahr;
       			if(Jahr%400==0)
       			cout<<endl<<"Dies ist ein Schaltjahr!";
       			else if (Jahr%4==0&&Jahr%100!=0)
                cout<<endl<<"Dies ist ein Schaltjahr!";
     				else cout<<endl<<"Das ist kein Schaltjahr!";
                break;
    
                case 6: //Kehrwert
                clrscr();
                cout<<"Gib die Zahl ein von der du den Kehrwert bilden willst: ";
                cin>>zahl1;
                cout<<endl<<"Das Ergebnis ist: "<<1/zahl1;
                break;
    
                case 8: //Fakultät
                clrscr();
                printf("Bitte geben sie die Zahl ein von der sie die Fakultaet");
                printf("berechnen wollen: ");
      				scanf("%d",&zahl);
      				faku =1;
    
     			   for(i=1;i<=zahl;i=i+1)
      				{
     					faku =faku*i;
      					printf("%d \n",faku);
      				}
      				printf("\n Die Fakultaet ist: %d",faku);
                break;
    
                case 4: //Wurzel
                clrscr();
                cout<<"Gib die Zahl ein von der du die Wurzel ziehen möchtest: ";
                cin>>zahl1;
                cout<<endl<<"Das Ergebnis ist: "<<sqrt(zahl1);
                break;
    
                case 10: //Quadrat
                clrscr();
                cout<<"Geben sie die Zahl ein die quadriert werden soll: ";
                cin>>zahl1;
                cout<<endl<<"Das Ergebnis beträgt: "<<pow(zahl1,2);
                break;
    
                case 3: //Prozentrechnung
                clrscr();
                cout<<"Hier kannst du mit Prozent rechnen, tipp zuerst den ";
                cout<<"Prozentsatz ein und dann den Grundwert um den ";
                cout<<"Prozentwert zu erhalten: ";
                cin>>zahl1>>zahl2;
                cout<<"Der Prozentwert beträgt: "<<zahl1*zahl2/100<<"%";
                break;
    
                case 5: //n-te Wurzel
                clrscr();
                cout<<"Berechnung der n-ten Wurzel aus x."<<endl<<"n: ";
    				cin>>zahl1;
    				cout<<endl<<"x: ";
    				cin>>zahl2;
                cout<<pow(zahl2,1/zahl1);
                break;
    
                case 11: //Logarythmus(ln)
                clrscr();
                cout<<"Hier kannst du natürlichen Logarythmus berrechnen "<<endl;
                cout<<"Gib die gewuenschte Zahl ein: ";
                cin>>zahl1;
                cout<<endl<<"Das Ergebnis ist: "<<log(zahl1);
                break;
    
                case 12: //Zehnerlogarythmus(log)
                clrscr();
                cout<<"Hier kannst du den Zehnerlogarythmus berrechnen "<<endl;
            		cout<<"Gib die gewuenschte zahl ein: ";
                cin>>zahl1;
                cout<<endl<<"Das Ergebnis ist: "<<log10(zahl1);
                break;
            }
            cout<<endl<<endl<<"Zurueck zum Hauptmenue? (j)a, (n)ein ";
            cin>>op;
            if(op=='n')break;
    
        }
        return 0;
    }
    

    Danke schonmal für die Hilfe


Anmelden zum Antworten