C++-Programmierung/ Einführung in C++/ Ein Taschenrechner wird geboren

Aus Wikibooks
Zur Navigation springen Zur Suche springen


In diesem Kapitel wollen wir einen kleinen Taschenrechner für die Kommandozeile schreiben. Dieser wird in späteren Kapiteln noch verbessert, aber fürs Erste lernt er nur die vier Grundrechenarten und kann auch nur mit je 2 Zahlen rechnen.

Die Eingabe[Bearbeiten]

Eine Aufgabe besteht aus zwei Zahlen, die durch ein Rechenzeichen getrennt sind. Für die Zahlen verwenden wir den Typ double. Das Rechenzeichen lesen wir als char ein. Außerdem brauchen wir noch eine Variable, in der wir das Ergebnis speichern. Diese soll ebenfalls vom Typ double sein.

Nuvola-inspired-terminal.svg
1 double zahl1, zahl2, ergebnis;
2 char rechenzeichen;
3 
4 cin >> zahl1 >> rechenzeichen >> zahl2;

Die 4 Grundrechenarten[Bearbeiten]

Wie sicher jeder weiß, sind die 4 Grundrechenarten Addition (+), Subtraktion (-), Multiplikation (*) und Division (/). Da die Variable rechenzeichen vom Typ char und char ein ganzzahliger Typ ist, bietet es sich an, die switch-Anweisung zu verwenden, um die richtige Rechnung zu ermitteln und durchzuführen. Wenn ein ungültiges Rechenzeichen eingegeben wird, geben wir eine Fehlermeldung aus und beenden das Programm.

Nuvola-inspired-terminal.svg
1 switch(rechenzeichen){
2     case '+': ergebnis = zahl1+zahl2; break;
3     case '-': ergebnis = zahl1-zahl2; break;
4     case '*': ergebnis = zahl1*zahl2; break;
5     case '/': ergebnis = zahl1/zahl2; break;
6     default: cout << "unbekanntes Rechenzeichen...\n"; return 1;
7 }

Der Rückgabewert 1 - ausgelöst von return 1; - beendet das Programm, die 1 (und jeder andere Wert ungleich 0 auch) sagt dabei aus, dass im Programm ein Fehler auftrat.

Das ganze Programm[Bearbeiten]

Hier ist noch einmal eine Zusammenfassung unseres Taschenrechners:

Nuvola-inspired-terminal.svg
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     double zahl1, zahl2, ergebnis;                // Variablen für Zahlen
 7     char rechenzeichen;                           // Variable fürs Rechenzeichen
 8 
 9     cout << "Geben Sie eine Rechenaufgabe ein: "; // Eingabeaufforderung ausgeben
10     cin >> zahl1 >> rechenzeichen >> zahl2;       // Aufgabe einlesen
11 
12     switch(rechenzeichen){                        // Wert von rechenzeichen ermitteln 
13         case '+': ergebnis = zahl1+zahl2; break;  // entsprechend dem
14         case '-': ergebnis = zahl1-zahl2; break;  // Rechenzeichen
15         case '*': ergebnis = zahl1*zahl2; break;  // das Ergebnis
16         case '/': ergebnis = zahl1/zahl2; break;  // berechnen
17         // Fehlerausgabe und Programm beenden, falls falsches Rechenzeichen eingegeben wurde
18         default: cout << "unbekanntes Rechenzeichen...\n"; return 1;
19     }
20 
21     // Aufgabe noch mal komplett ausgeben
22     cout << zahl1 << ' ' << rechenzeichen << ' ' << zahl2 << " = " << ergebnis << '\n';
23 }
Crystal Clear app kscreensaver.svg
Ausgabe:
1 Geben Sie eine Rechenaufgabe ein: <Eingabe>99 / 3</Eingabe>
2 99 / 3 = 33