Rechnen
In der vorigen Lektion hast du mit Zahlen gerechnet. Mit Variablen funktioniert das genauso. Die grundlegenden arithmetischen Operatoren (Symbole für Rechenarten) sind:
+Addition-Subtraktion*Multiplikation (ein Sternchen, weil es auf der Tastatur kein × gibt)/Division (ein Schrägstrich statt ÷), die in der nächsten Übung eine Überraschung für dich bereithält
Das Ergebnis kannst du in einer Variablen speichern oder gleich ausgeben:
int bleistiftpreis = 2;
int bleistifte = 6;
int kosten = bleistiftpreis * bleistifte;
printf("Bleistifte: %d €\n", kosten);
printf("Rückgeld von 20: %d €\n", 20 - kosten);Das gibt Folgendes aus:
Bleistifte: 12 €
Rückgeld von 20: 8 €Wenn das Programm zur Zeile mit kosten kommt, berechnet es 2 * 6 und speichert das Ergebnis, 12. Die Variable enthält die Zahl, nicht die Rechnung: Wenn du bleistifte später änderst, bleibt kosten trotzdem 12.
Wie in der Mathematik werden Multiplikation und Division vor Addition und Subtraktion ausgeführt (Punkt vor Strich). Rechenarten mit derselben Priorität werden von links nach rechts ausgeführt. Wenn du eine andere Reihenfolge willst, verwende Klammern:
printf("%d\n", 2 + 3 * 4);
printf("%d\n", (2 + 3) * 4);Das gibt Folgendes aus:
14
20In der ersten Zeile wird zuerst 3 * 4 berechnet, also 12, und erst dann 2 + 12. In der zweiten Zeile kommen zuerst die Klammern.
Ein typischer Fehler sind vergessene Klammern. So berechnest du nicht den Durchschnitt zweier Testergebnisse:
int erste = 70;
int zweite = 90;
printf("%d\n", erste + zweite / 2);Das Programm gibt 115 aus, weil nur das zweite Ergebnis durch zwei geteilt wird: 70 + 90 / 2 ist 70 + 45. Richtig ist (erste + zweite) / 2, das ergibt 80.
Worauf du sonst noch achten musst:
- Die Multiplikation musst du immer hinschreiben.
2(a + b)endet mit dem Fehlercalled object type 'int' is not a function or function pointer; schreibe2 * (a + b). - Leerzeichen um Operatoren ändern das Ergebnis nicht. Wir schreiben sie, weil sie den Code leichter lesbar machen.
- Ein
inthat eine Grenze: Die größte Zahl, die er enthält, ist 2147483647, etwa zwei Milliarden (und die kleinste ist etwa minus zwei Milliarden). Passt ein Ergebnis nicht hinein, bricht das Programm mitRuntimeError: unreachableab. Die Meldung sagt nicht viel, merke sie dir also: Vorerst bedeutet sie, dass eine Zahl zu groß geworden ist.
So schreibst du es:
Anweisungen
- 1
Ihr seid zu dritt im Kino, und jeder von euch kauft eine Karte und Popcorn. Lege darunter eine Variable
gesamtvom Typintan und speichere darin, wie viel ihr zusammen bezahlt. Berechne es aus den Variablen: der Preis einer Karte und von Popcorn, mal die Zahl der Personen. - 2
Gib
gesamtso aus:Gesamt: 54 €. Wenn das Programm 30 ausgibt, sieh dir die Reihenfolge der Rechenarten noch einmal an. - 3
Du hast einen Gutschein über 10 €. Gib in der nächsten Zeile den Preis nach dem Rabatt aus, berechnet aus
gesamt:Nach Rabatt: 44 €