Arithmetische Operationen in C++
Was ist das und wozu?
Stell dir vor, du bist Kassierer in einem Geschäft. Kunden kommen zu dir, du addierst die Preise der Waren, subtrahierst Rabatte, multiplizierst die Menge mit dem Preis, teilst den Gesamtbetrag unter Freunden auf. All das sind arithmetische Operationen. In der Programmierung funktionieren sie genauso: Der Computer kann Zahlen addieren, subtrahieren, multiplizieren und dividieren. Ohne das kannst du weder einen Taschenrechner, noch ein Spiel, noch ein Programm zur Gehaltsabrechnung schreiben.
Warum solltest du das wissen? Selbst wenn du ein einfaches Programm schreiben willst, das den Benutzer nach seinem Alter fragt und sagt, wie viele Jahre es bis zur Rente sind – du wirst eine Subtraktion brauchen. Willst du berechnen, wie viele Pizzen du für eine Party brauchst? Du brauchst eine Division. Und wenn du ein Spiel schreibst, in dem sich eine Figur bewegt – da gibt es ständig Addition und Subtraktion von Koordinaten. Kurz gesagt, Arithmetik ist die Grundlage, ohne die es nicht geht.
Syntax und Codebeispiele
In C++ sehen arithmetische Operationen fast wie in der Mathematik aus. Hier sind die grundlegenden Zeichen:
+— Addition-— Subtraktion*— Multiplikation (Sternchen, nicht Kreuz)/— Division (Schrägstrich)%— Modulo (Rest einer Division, z.B. 7 % 3 = 1, weil 7 durch 3 geteilt den Rest 1 ergibt)
Schauen wir uns Beispiele an. Den Code schreiben wir innerhalb von main() und die Ergebnisse geben wir mit cout auf dem Bildschirm aus.
#include <iostream>
using namespace std;
int main() {
// Beispiel 1: Addition
int a = 10;
int b = 5;
int sum = a + b; // addiere a und b, das Ergebnis wird in sum gespeichert
cout << "Summe: " << sum << endl; // gibt aus: Summe: 15
// Beispiel 2: Subtraktion
int diff = a - b; // subtrahiere b von a
cout << "Differenz: " << diff << endl; // gibt aus: Differenz: 5
// Beispiel 3: Multiplikation
int prod = a * b; // multipliziere a mit b
cout << "Produkt: " << prod << endl; // gibt aus: Produkt: 50
// Beispiel 4: Division
int quot = a / b; // dividiere a durch b
cout << "Quotient: " << quot << endl; // gibt aus: Quotient: 2
// Achtung: Wenn beide Zahlen ganzzahlig sind, ist das Ergebnis auch ganzzahlig! 10 / 3 = 3, nicht 3.333
// Beispiel 5: Modulo (Rest der Division)
int rem = 10 % 3; // 10 geteilt durch 3, Rest 1
cout << "Rest: " << rem << endl; // gibt aus: Rest: 1
return 0;
}
Beachte: In Beispiel 4 haben wir 10 durch 5 geteilt und 2 erhalten. Wenn wir 10 durch 3 teilen würden, bekämen wir 3, nicht 3.333. Weil int für ganze Zahlen steht, wird der Nachkommateil abgeschnitten. Um ein Gleitkommaergebnis zu erhalten, musst du double (Zahlen mit Dezimalpunkt) verwenden.
#include <iostream>
using namespace std;
int main() {
// Beispiel mit Gleitkommazahlen
double x = 10.0;
double y = 3.0;
double result = x / y; // jetzt wird die Division genau
cout << "Ergebnis: " << result << endl; // gibt aus: Ergebnis: 3.33333
// Man kann ganze und gebrochene Zahlen mischen
int apples = 7;
double price = 2.5;
double total = apples * price; // 7 * 2.5 = 17.5
cout << "Gesamtkosten: " << total << endl;
return 0;
}
Ein weiterer wichtiger Punkt: Die Reihenfolge der Operationen. Wie in der Mathematik: zuerst Multiplikation und Division, dann Addition und Subtraktion. Wenn du die Reihenfolge ändern willst, verwende Klammern.
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 3;
int c = 4;
// Ohne Klammern: zuerst Multiplikation, dann Addition
int res1 = a + b * c; // 2 + 12 = 14
cout << "Ohne Klammern: " << res1 << endl;
// Mit Klammern: zuerst Addition, dann Multiplikation
int res2 = (a + b) * c; // 5 * 4 = 20
cout << "Mit Klammern: " << res2 << endl;
return 0;
}
Vergleich mit Python
Wenn du schon Python ausprobiert hast, wirst du feststellen, dass die Arithmetik dort sehr ähnlich ist. Aber es gibt ein paar Unterschiede.
In Python:
- Dieselbe Addition
+, Subtraktion-, Multiplikation*, Division/. - Aber die Division in Python liefert immer ein Gleitkommaergebnis!
10 / 3ergibt3.3333, selbst wenn die Zahlen ganzzahlig sind. - Um eine ganzzahlige Division (wie in C++) zu erhalten, musst du
//(zwei Schrägstriche) schreiben. Zum Beispiel ergibt10 // 3den Wert3. - Der Modulo-Operator ist ebenfalls
%, wie in C++.
So sieht derselbe Code in Python aus:
# Python
a = 10
b = 3
# Normale Division - Gleitkomma
print(a / b) # 3.3333333333333335
# Ganzzahlige Division (wie in C++)
print(a // b) # 3
# Modulo
print(a % b) # 1
# Alles andere ist genauso
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
Der Hauptunterschied: In C++ musst du den Typ der Variable vorher deklarieren (int oder double), während in Python die Typen automatisch zugewiesen werden. Aber in C++ entscheidest du selbst, ob du eine ganze oder eine gebrochene Zahl haben willst – das gibt dir mehr Kontrolle.
Typische Anfängerfehler
Hier ist, was bei denen, die gerade erst anfangen, am häufigsten schiefgeht:
- Semikolon vergessen – in C++ endet jeder Befehl mit
;. Fehlt es, beschwert sich der Compiler. =und==verwechseln –=ist die Zuweisung (einen Wert setzen),==ist der Vergleich (ist gleich?). In der Arithmetik verwenden wir nur=.- Ganze Zahlen dividieren und ein Gleitkommaergebnis erwarten – wenn beide Zahlen
intsind, ist auch das Ergebnis einint. Willst du ein Gleitkommaergebnis, mach mindestens eine Zahl zudouble. - Die Reihenfolge der Operationen vergessen –
2 + 3 * 4ergibt 14, nicht 20. Verwende Klammern, wenn du unsicher bist. - Durch Null dividieren – durch Null darf man nicht teilen! Das Programm stürzt mit einem Fehler ab. Überprüfe immer, dass der Divisor nicht Null ist.