Funktion ändern, nur wie?
-
Hi,
ich habe diese Funktion in der ich eine bestimmte Anzahl (durch User angeben) von Rechnungen durchführe.[cpp] //Funktion zum Addieren, dann wird testen aufgerufen void Add() { unsigned short int anzahl; //Variable die, die Menge der Aufgaben angibt cout << "Wie viele Aufgaben moechtest du rechnen? "; cin >> anzahl; //Schleife for wird so oft durchlaufen wie der User vorgibt for(int i = 0; i <= anzahl; i++) { if(i < anzahl) { cout << "\n" << i+1 << ".Aufgabe: "; unsigned int x,y; Zahlen(x,y); unsigned short int z = x+y; //Variable die an Test() übergeben wird unsigned short int ergebnis; //Variable die Das Ergebnis erhält cout << x << " + " << y << " = "; cin >> ergebnis; Test(z,ergebnis); //Funktion Test wird aufgerufen } else if(i == anzahl) { cout << "Du hast " << anzahl << " Aufgaben bearbeitet! Was moechtest du jetzt machen?\n"; cout << "\n"; } } } [/cpp]In der Funktion Test() wird das ergebnise getestet
[cpp] //Funktion die ein Ergebnis testet, dann gehts zurück in Rechen Funktion void Test(unsigned short int z, unsigned short int ergebnis) { if(z == ergebnis) { cout << "Richtig!\n" << endl; } else { cout << "Falsch!\n" << endl; } } [/cpp]Nun möchte ich immer, wenn das Ergebnis richtig ist eine Zahl oder eine true Wert zurück an Fukntion Add() liefer und diese dann Zählen und später ausgeben. Die Ausgabe sollte dann ca. so aussehen:
[cpp] cout << "Du hast von " << anzahl << " Aufgaben " << richtige << "richtig beantwortet."; [/cpp]Die Variable anzahl hab ich schon muss jetzt nur noch richtig erzeugen und zählen, weiß nur nicht wo die hingehört und wie.
Hoffe ihr könnt mir helfen!
Danke!
-
Wenn ich dich richtig verstanden habe, möchtest du zählen, wieviele Aufgaben der User richtig brechnet hat!?
Dann in etwa so:
//Funktion zum Addieren, dann wird testen aufgerufen void Add() { int richtige_aufgaben = 0; unsigned short int anzahl; //Variable die, die Menge der Aufgaben angibt cout << "Wie viele Aufgaben moechtest du rechnen? "; cin >> anzahl; //Schleife for wird so oft durchlaufen wie der User vorgibt for(int i = 0; i <= anzahl; i++) { if(i < anzahl) { cout << "\n" << i+1 << ".Aufgabe: "; unsigned int x,y; Zahlen(x,y); unsigned short int z = x+y; //Variable die an Test() übergeben wird unsigned short int ergebnis; //Variable die Das Ergebnis erhält cout << x << " + " << y << " = "; cin >> ergebnis; if(Test(z,ergebnis) == true) //Funktion Test wird aufgerufen richtige_aufgaben++; } else if(i == anzahl) { cout << "Du hast " << anzahl << " Aufgaben bearbeitet! Davon waren " << richtige_aufgaben << "korrekt. Was moechtest du jetzt machen?\n"; cout << "\n"; } } } //Funktion die ein Ergebnis testet, dann gehts zurück in Rechen Funktion bool Test(unsigned short int z, unsigned short int ergebnis) { if(z == ergebnis) { return true; } else { return false; } }
-
Yes, danke. Genau das hab ich gesucht. So ähnlich hatte ich es auch schon, aber ich habe immer ein Sysntax Fehler gemacht.
[cpp] //Funktion zum Addieren, dann wird testen aufgerufen void Add() { int richtige = 0; //Variable die die richtigen Ergebnisse zählt unsigned short int anzahl; //Variable die, die Menge der Aufgaben angibt cout << "Wie viele Aufgaben moechtest du rechnen? "; cin >> anzahl; //Schleife for wird so oft durchlaufen wie der User vorgibt for(int i = 0; i <= anzahl; i++) { if(i < anzahl) { cout << "\n" << i+1 << ".Aufgabe: "; unsigned int x,y; Zahlen(x,y); unsigned short int z = x+y; //Variable die an Test() übergeben wird unsigned short int ergebnis; //Variable die Das Ergebnis erhält cout << x << " + " << y << " = "; cin >> ergebnis; if(Test(z,ergebnis) == true) //Funktion Test wird aufgerufen richtige++; } else if(i == anzahl) { cout << "Du hast von " << anzahl << " Aufgaben " << richtige << " richtig beantwortet.\n"; cout << "\n"; } } } [/cpp]Nun habe ich ja diese Funktion. Jetzt habe ich aber noch 2 andere die genau wie diese aussehen, nur wird hier eine andere Rechenart gewählt.
Die Funktion zum Zahlen erstellen, habe ich ja schon extra, könnte ich die for-Schleife die die Aufgaben, die der User rechnen will auch getrennt schreiben, so dass alle 3 Funktionen diese nutzen können, ich aber nur einmal die Fukntions chreiben muss?
Der Funktion müsste ich dann eine Variable übergeben, die sagt welche weitere Funktion dann Zb 3 mal aufgerufen werden soll.Danke für eure Hilfe!