For-Schleife soll warten



  • 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


Anmelden zum Antworten