Sprünge im Code



  • Ich möchte es so prgrammieren, dass wenn das Programm also der Nutzer die Rechnung vollzogen hat, dass er gefragt wird ob er eine neue Rechnung berechnen soll also, dass er wieder zur Zeile 12 springt wo der Chat gesäubert wird und wieder die Anzeige erscheint wie er es eingeben muss um ein erfolgreiche Rechnung zu vollziehen

    #import <iostream>
    #import <windows.h>
    
    int Zahl1, Zahl2, Ergebnis;
    char Operation;
    
    int main()
    {	
    	system("cls");
    	std::cout << "Syntax: <Zahl1> + | - | * | / | % <Zahl2> = Ergebnis" << std::endl << std::endl;
    	Sleep(2*1000);
    
    	std::cout << "Geben Sie die erste Zahl ein: ";
    	std::cin >> Zahl1;
    	std::cout << std::endl;
    	std::cout << "Geben Sie die zweite Zahl ein: ";
    	std::cin >> Zahl2;
    	std::cout << std::endl;
    
    	std::cout << "Geben Sie als nächstes die Rechenoperation ein mit der Sie rechnen wollen: ";
    	std::cin >> Operation;
    	std::cout << std::endl;	
    
    	switch(Operation)
    	{
    		case '+':
    			Ergebnis = Zahl1 + Zahl2;
    			std::cout << "Das Ergebnis ist: " << Ergebnis << std::endl;
    			break;
    		case '-':
    			Ergebnis = Zahl1 - Zahl2;
    			std::cout << "Das Ergebnis ist: " << Ergebnis << std::endl;
    			break;
    		case '*':
    			Ergebnis = Zahl1 * Zahl2;
    			std::cout << "Das Ergebnis ist: " << Ergebnis << std::endl;
    			break;
    		case '/':
    			if(Zahl1 || Zahl2 == 0)
    			{
    				std::cout << ("ERROR! Programm beendet vorzeitig um sich nicht zu schaden!") << std::endl << std::endl;
    				Sleep(1000);
    				return 0;
    			}
    			Ergebnis = Zahl1 / Zahl2;
    			std::cout << "Das Ergebnis ist: " << Ergebnis << std::endl;
    			break;
    		case '%':
    			Ergebnis = Zahl1 % Zahl2;
    			std::cout << "Der Rest ist: " << Ergebnis << std::endl;
    			break;
    		default:
    			std::cout << "Falsche eingabe: " << Operation << std::endl;
    			break;		
    
    	}
    
    	system("PAUSE");
    	return 0;
    }
    


  • While oder Do-While Schleife?



  • crazyyzarc schrieb:

    std::cout << ("ERROR! Programm beendet vorzeitig um sich nicht zu schaden!") << std::endl << std::endl;
    

    Ha, ha, hab ich ich heute doch noch was zum Lachen geschenkt bekommen.

    Ich kenne zwar self modifying code, aber self damaging code war mir neu.



  • wie mach ich dass denn? Ich mag eher die while-Schleife die do-whilfe Schleife ist mir bisschen kompliziert obwohl ich genau weiß wie sie funktioniert


  • Mod

    crazyyzarc schrieb:

    wie mach ich dass denn? Ich mag eher die while-Schleife die do-whilfe Schleife ist mir bisschen kompliziert obwohl ich genau weiß wie sie funktioniert

    Wo genau ist das Problem? Vielleicht übst du mal an einem Miniprogramm eine Schleife, um Berührungsängste zu vermeiden:
    1. Übung: Nutze eine while- oder do-while-Schleife, um die Zahlen 1 bis 10 auszugeben
    2. Übung: Schreibe ein Programm, welches Buchstaben einliest. Wird ein 'e' eingelesen, soll das Programm beendet werden. Nutze eine while oder do-while Schleife.



  • Zeile 42: Hier kann es zu einem DivByZero-Fehler kommen oder? Weil wenn Zahl1 ungleich 0 nicht mehr Zahl2 geprüfte wird.

    Sorry falls ich Mist erzähle, bin noch nicht so lange dabei.


  • Mod

    Brabbel schrieb:

    Zeile 42: Hier kann es zu einem DivByZero-Fehler kommen oder? Weil wenn Zahl1 ungleich 0 nicht mehr Zahl2 geprüfte wird.

    Korrekt, diese Abfrage ist Unsinn (denn sie bedeutet nicht, "falls zahl1 gleich 0 oder zahll2 gleich 0"). Weiterhin darf man auch nicht durch 0 modulo'en und andererseits darf man aber gerne 0 durch eine andere Zahl teilen.



  • crazyyzarc schrieb:

    Ich mag eher die while-Schleife die do-whilfe Schleife ist mir bisschen kompliziert obwohl ich genau weiß wie sie funktioniert

    Wenn du verstanden hast wie sie funktionieren solltest du dir mal den Unterschied vor Augen führen, vielleicht hast du dann auch keine Probleme mehr mit der do-while 😉


Log in to reply