grundrechentrainer
-
Hallo Leute

ich schreibe grade an meinem Rechentrainer, komme aber nicht weiter
nachdem ich die erste lösung von einer aufgabe eingebe gibt der die nächste automatisch ein und jetzt weiß ich nicht was ich machen soll! und ich kenn mich damit nicht so gut aus... kann mir da jemand weiter helfen ?//--------------------------------------------------------------------------- #include <iostream> //cleanscreen #include <conio.h> //Zufallszahlen #include <ctime> //Schriftfarbe #include <windows.h> #pragma argsused using namespace std; //--------------------------------------------------------------------------- //Variablen für die Funktionen int i_rechenart, a_zahl, b_zahl, i_anzahl, int_i; //Variablen für die Zufallszahlen int zufallszahl, limit; //Variable dowhile Schleife char char_v; // Umlaute // ö char oe=char(148); // ä char ae=char(132); // Funktion 1 int rechenart() { cout <<"Welche Rechenart m" <<oe<< "chtest du benutzen?" <<endl; cout <<" " <<endl; cout <<"[1] Addieren +"<<endl; cout <<"[2] Subtrahieren -"<<endl; cout <<"[3] Multiplizieren *"<<endl; cout <<"[4] Dividieren :"<<endl; cout <<" "<<endl; // Eingabe cin >> i_rechenart; return i_rechenart; } // Funktion 2 int Zahlenraum() { cout <<"Jetzt kannst du den Zahlenraum aussuchen."<< endl; cout <<" "<<endl; cout <<"Von: "; cin >> a_zahl; cout <<"bis "; cin >> b_zahl; zufallszahl = (double)rand() / (b_zahl + 1) * limit + a_zahl; return a_zahl, b_zahl; } // Funktion 3 int Aufgabenzahl() { cout <<"und wie viel Aufgaben m" <<oe<< "chtest du rechnen?"<< endl; cin >> i_anzahl; return i_anzahl; } //Start des Hauptprogramms int main() { do { //Schriftfarbe ändern system("COLOR 0C"); // Begrüßung cout <<"================================" <<endl; cout <<"= =" <<endl; cout <<"= Hallo! =" <<endl; cout <<"= =" <<endl; cout <<"= =" <<endl; cout <<"= Willkommen im Rechentrainer! =" <<endl; cout <<"= =" <<endl; cout <<"= =" <<endl; cout <<"================================" <<endl; cout <<" " <<endl; cout <<" " <<endl; cout <<" " <<endl; cout <<" " <<endl; //Funktionen werden gestartet cout <<"Bevor du anf"<<ae<<"ngst, musst du noch ein paar Fragen beantworten."<< endl; cout <<" " <<endl; cout <<" " <<endl; // erste Funktion wird aufgerufen rechenart(); clrscr (); //zweite Funktion wird aufgerufen Zahlenraum(); clrscr (); //dritte Funktion wird aufgerufen Aufgabenzahl(); clrscr (); //Variablen für die Rechnung und For-Schleife float f_sum, f_prod, f_dif, f_quot, ergebnis; int z, x; //Rechnung mit For-Schleife for(z=1; z <= i_anzahl; z++) { if (i_rechenart = 1) f_sum = zufallszahl + limit; //Ausgabe cout<< limit << "+" <<zufallszahl<< "=" ; cin >> ergebnis; if (i_rechenart = 2) f_dif = zufallszahl - limit; //Ausgabe cout<< limit<< "-" <<zufallszahl<< "=" << f_dif <<endl; if (i_rechenart = 3) f_prod = zufallszahl * limit; //Ausgabe cout<< limit<< "*" <<zufallszahl<< "=" << f_prod <<endl; if (i_rechenart = 4) f_quot = zufallszahl / limit; //Ausgabe cout<< limit<< "/" <<zufallszahl<< "=" << f_quot <<endl; } //Eingabe Variable cin >> char_v; //Pruefung der Bedingung if (char_v != 'J' && char_v != 'j' && char_v != 'N' && char_v != 'n') //Ausgabe falls falsche Eingabe cout << "Falsche Eingabe!" << "\n"; } //Bedingung um zu Wiederholen while (char_v != 'J' && char_v != 'j'); //Ausgabe falls schleife beendet cout << "Bis zum nächsten mal! " << endl; system ("PAUSE"); return 0; } //---------------------------------------------------------------------------Dankeschön schon mal im vorraus

-
Hallo tuli,
Willkommen im C++-Forum.
tausche die Zeilen 128 bis 154 gegen diese hier aus:
//Rechnung mit For-Schleife for(z=1; z <= i_anzahl; z++) { if (i_rechenart == 1) // <=== '=' ist Zuweisung und '==' Vergleich { f_sum = zufallszahl + limit; //Ausgabe cout<< limit << "+" <<zufallszahl<< "=" ; cin >> ergebnis; } // <=== if() geht bis zur geschlossenen Klammer if (i_rechenart == 2) { f_dif = zufallszahl - limit; //Ausgabe cout<< limit<< "-" <<zufallszahl<< "=" << f_dif <<endl; } if (i_rechenart == 3) { f_prod = zufallszahl * limit; //Ausgabe cout<< limit<< "*" <<zufallszahl<< "=" << f_prod <<endl; } if (i_rechenart == 4) { f_quot = zufallszahl / limit; //Ausgabe cout<< limit<< "/" <<zufallszahl<< "=" << f_quot <<endl; } }.. dann geht's schon besser, aber noch nicht gut.
Die Variable 'limit' wird nicht initialisiert und die Berechnung der Zufallszahl in Zeile 64 macht auch nicht das, was Du denkst, was es machen sollte.Gruß
Werner
-
Dankeschön

Hab voll die doofen Fehler im Quelltext gemacht!Aber jetzt läuft es endlich wie ich das haben wollte
-
Um solche Fehler zum vermeiden (auch bei Flüchtigkeitsfehlern) kann man sich überlegen, den konstanten Ausdruck immer nach links zu stellen. Da beschwert sich der Compiler schon bei der Zuweisung. Sieht manchmal aber etwas gewöhnungsbedürftig aus.
// kompiliert, ist aber wohl nicht das Gewünschte if( a = 1 ) // kompiliert nicht if( 1 = a )