Schönen guten Tag,
studiere Informatik und bin absoluter Neuling in C.
Habe die Aufgabe bekommen einen kleinen Rechner zu programmieren. Meiner ersten Meinung nach nicht schwer nur habe ich ein kleines Problem.
Schreiben Sie ein Programm calculator.cpp, welches folgender Spezifikation entspricht:
1.1 Nach einer Eingabehilfe soll am Beginn der nächsten Zeile eine 0 (Null) ausgegeben werden.
1.2 Anschließend sollen paarweise Operator und Operand mit abschließendem <ret> eingelesen werden und
das Ergebnis berechnet und am Beginn der nächsten Zeile ausgegeben werden. (siehe Beispiel unten)
1.3 Eingabe und Berechnung sollen solange wiederholt werden, bis als Operator ein e eingegeben wird;
anschließend soll das Programm ohne weitere Aktivitäten (also auch ohne weitere Eingabe) terminieren.
1.4 Gültige Operatoren sind +, -, * und /. Die Division durch Null soll ignoriert werden. (In diesem Fall
soll eine Fehlermeldung ausgegeben und das Programm fortgesetzt werden.)
Bei Eingabe von c (für clear) soll das Ergebnis auf 0 zurückgesetzt und ausgegeben werden.
Achtung: die clear-Operation enthält keinen Operanden, also keine weitere Eingabe.
1.5 Bei Eingabe ungültiger Operatoren soll eine Fehlermeldung ausgegeben und das Programm fortgesetzt
werden.
Beachten Sie, daß bei Eingabe eines falschen Operators nach der Fehlerausgabe das "alte" Ergebnis
ausgegeben werden muß und daß der auf den falschen Operator (siehe unten %) folgende Operand
(siehe unten 3) gegebenenfalls auch als Operator zu interpretieren versucht wird.
1.6 Beachten Sie, daß hier eine typische Mehrfachentscheidung vorliegt; verwenden Sie die geeignete
Anweisung.
Beispiel: Ausgaben Eingaben
Bitte ... (e = ende)
0+3
3*5
15%3
->%: falsche Operation
15 ->3: falsche Operation
15-16
-1e
Mit dem Programm habe ich keine Probleme, nur würde ich die Eingabe verteilen, also erst Operator dann Operant, was laut Aufgabenstellung jedoch nicht gewünscht ist. Meine Frage wie löse ich das Problem am elegantesten? Dachte schon über einen String nach, finde es aber unschön gelöst.
Vielen Dank
studiere Informatik und bin absoluter Neuling in C.
Habe die Aufgabe bekommen einen kleinen Rechner zu programmieren. Meiner ersten Meinung nach nicht schwer nur habe ich ein kleines Problem.
Schreiben Sie ein Programm calculator.cpp, welches folgender Spezifikation entspricht:
1.1 Nach einer Eingabehilfe soll am Beginn der nächsten Zeile eine 0 (Null) ausgegeben werden.
1.2 Anschließend sollen paarweise Operator und Operand mit abschließendem <ret> eingelesen werden und
das Ergebnis berechnet und am Beginn der nächsten Zeile ausgegeben werden. (siehe Beispiel unten)
1.3 Eingabe und Berechnung sollen solange wiederholt werden, bis als Operator ein e eingegeben wird;
anschließend soll das Programm ohne weitere Aktivitäten (also auch ohne weitere Eingabe) terminieren.
1.4 Gültige Operatoren sind +, -, * und /. Die Division durch Null soll ignoriert werden. (In diesem Fall
soll eine Fehlermeldung ausgegeben und das Programm fortgesetzt werden.)
Bei Eingabe von c (für clear) soll das Ergebnis auf 0 zurückgesetzt und ausgegeben werden.
Achtung: die clear-Operation enthält keinen Operanden, also keine weitere Eingabe.
1.5 Bei Eingabe ungültiger Operatoren soll eine Fehlermeldung ausgegeben und das Programm fortgesetzt
werden.
Beachten Sie, daß bei Eingabe eines falschen Operators nach der Fehlerausgabe das "alte" Ergebnis
ausgegeben werden muß und daß der auf den falschen Operator (siehe unten %) folgende Operand
(siehe unten 3) gegebenenfalls auch als Operator zu interpretieren versucht wird.
1.6 Beachten Sie, daß hier eine typische Mehrfachentscheidung vorliegt; verwenden Sie die geeignete
Anweisung.
Beispiel: Ausgaben Eingaben
Bitte ... (e = ende)
0+3
3*5
15%3
->%: falsche Operation
15 ->3: falsche Operation
15-16
-1e
Mit dem Programm habe ich keine Probleme, nur würde ich die Eingabe verteilen, also erst Operator dann Operant, was laut Aufgabenstellung jedoch nicht gewünscht ist. Meine Frage wie löse ich das Problem am elegantesten? Dachte schon über einen String nach, finde es aber unschön gelöst.
Vielen Dank