For-Schleife soll warten
-
padreigh schrieb:
Mir pers. gefallen unnötig lange Blöcke nicht. Dein
for (;;) { /* ... */ }
enthält Zeug das IMMER ausgeführt wird - warum nuss das dann mit in den Block? Dann lieber eine kurze Schleife mit dem nötigstens.Das AUslagern der frage() war offensichtlich ein Fehler. Bleiben wir bei der Ur-Version.
-
Wie gesagt.
int main() { srand(time(0)); int punkte=0; while(punkte<100){ int basis=rand()%10; int exponent=rand()%10; if(basis!=0 || exponent!=0) { int potenz=pow(basis,exponent); if(potenz<=500) { cout<<basis<<'^'<<exponent<<'='; int tip; cin>>tip; if(tip==potenz){ cout<<"richtig!\n"; ++punkte; } else{ cout<<"falsch!\n"; punkte/=2; } cout<<"Punkte: "<<punkte<<'\n'; cout<<"\n\n\n\n\n"; } } } cout<<"Gewonnen!\n"; return 0; }
-
volkard schrieb:
Solche Tricks sind doch nichts wert. Warum nicht einfach hinschreiben, was man macht?
Hinschreiben, man würde für immer schleifen drehen oder die punkte-schleife für was anderes nehmen ist auch nicht hinschreiben was man macht.
-
Funktioniert aber immer noch, wenn ich alle Potenzen größer als 1000 ausschließen will :p
Edit: Zu deinem Code: Pack das mal noch in ne Klasse in nen Namespace in nen Namespace...
-
Schwierigkeiten beim Refactoring weisen nicht auf guten Code hin.
-
Michael E. schrieb:
Funktioniert aber immer noch, wenn ich alle Potenzen größer als 1000 ausschließen will :p
Edit: Zu deinem Code: Pack das mal noch in ne Klasse in nen Namespace in nen Namespace...
Rückst du die ein? Sieht doch dumm aus, wenn eine Funktion schon zweimal eingerückt ist.
-
Mis2com.. schrieb:
Michael E. schrieb:
Funktioniert aber immer noch, wenn ich alle Potenzen größer als 1000 ausschließen will :p
Wenn du die Grenze 500 ändern willst, musst du das nun an zwei Stellen im Code tun.
Edit: Zu deinem Code: Pack das mal noch in ne Klasse in nen Namespace in nen Namespace...
Rückst du die ein? Sieht doch dumm aus, wenn eine Funktion schon zweimal eingerückt ist.
...
-
Michael E. schrieb:
Mis2com.. schrieb:
Michael E. schrieb:
Funktioniert aber immer noch, wenn ich alle Potenzen größer als 1000 ausschließen will :p
Wenn du die Grenze 500 ändern willst, musst du das nun an zwei Stellen im Code tun.
Also ich hab nur volkards Code umgestellt und bin nicht padreigh.
-
Ich habe bemerkt, daß ich die Zweierpotenzen auswendig kann, und ich sie nicht mehr gefragt werden möchte, außer wenn der Exponent durch 2 oder 3 teilbar ist, denn das festigt die Vierer- und Achterpotenzen.
Weitere Wünsche werden folgen, die gemeinerweise je nach Schüler an- oder ausgeschaltet werden können.
Und die Obergrenze soll wandern. Ich denke an 500 solange punkte<25, an 5000 wenn punkte>75 und dazwischen geradlinig steigend. Aber das muß ausprobiert werden. Kann auch sein, daß die flexible Obergrenze störend ist.
Die Ur-Version ist gut wartbar, alles schon ausprobiert.
-
Ich habe bemert, dass Schüler lieber eine grafische GUI wollen und keine Konsole.
-
Mis2com.. schrieb:
Ich habe bemert, dass Schüler lieber eine grafische GUI wollen und keine Konsole.
Kann ich nicht bestätigen.
-
Die Bedingungen für eine gültige Aufgabe sollen beim Programmstart zusammengestellt werden können. :p