Rechnen
Ein Rechner heißt Rechner, weil er rechnet. Java kennt die vier Grundrechenarten – mit einer Besonderheit, die dich am Anfang garantiert einmal stolpern lässt.
Ganze Zahlen
Sage zuerst ohne Rechner voraus, was die fünf Zeilen ausgeben. Notiere deine Vorhersage. Führe das Programm erst danach aus.
Bei welcher Zeile lagst du daneben? Erkläre, was dort passiert.
Auflösung
10
4
21
2
1
Die vierte Zeile ist die interessante: 7 / 3 ergibt 2, nicht 2,333…
Wenn Java zwei ganze Zahlen dividiert, rechnet es eine Ganzzahldivision: Das Ergebnis ist wieder eine ganze Zahl, der Rest fällt einfach weg.
Der weggefallene Rest ist nicht verloren – den liefert %, die Modulo-Operation. 7 % 3 ist 1, denn 7 = 2 · 3 + 1.
| Operator | Bedeutung | Beispiel |
|---|---|---|
+ - * |
Addition, Subtraktion, Multiplikation | 7 * 3 ergibt 21 |
/ |
Division. Bei zwei ganzen Zahlen: Ganzzahldivision | 7 / 3 ergibt 2 |
% |
Rest der Ganzzahldivision (Modulo) | 7 % 3 ergibt 1 |
Es gilt Punkt vor Strich. Mit runden Klammern erzwingst du eine andere Reihenfolge.
Kommazahlen
Sobald eine der beiden Zahlen eine Kommazahl ist, rechnet Java normal weiter.
In Java wird das Dezimaltrennzeichen als Punkt geschrieben: 3.5, nicht 3,5.
Modulo ist nützlicher, als es aussieht
Der Modulo-Operator beantwortet überraschend viele Fragen. Überlege jeweils, welches Ergebnis herauskommt und was die Rechnung bedeutet:
a) zahl % 2 – was verrät das Ergebnis über zahl?
b) sekunden % 60 – wofür könnte das gut sein?
c) zahl % 10 – welche Ziffer bekommst du damit?
Auflösung
a) Das Ergebnis ist 0 oder 1. Bei 0 ist die Zahl gerade, bei 1 ungerade. Das ist der Standardtest auf gerade Zahlen.
b) Die restlichen Sekunden nach Abzug aller vollen Minuten. Zusammen mit sekunden / 60 (Ganzzahldivision, ergibt die vollen Minuten) kannst du eine Sekundenzahl in Minuten und Sekunden umrechnen.
c) Die letzte Ziffer der Zahl. 1234 % 10 ergibt 4.
Aufgabe 1: Rechnungen nachbauen
Ergänze das Programm so, dass es die Ergebnisse der folgenden Rechnungen ausgibt. Sage bei jeder Zeile zuerst voraus, was herauskommt.
Diese Rechnungen sollen vorkommen:
| Rechnung | Ergebnis |
|---|---|
1 + 7 - 9 + 43 |
42 |
4 * 3 + 1 |
13 |
9 * (2 + 1) |
27 |
12345 / 10 |
1234 |
3 / 4 |
0 |
3.0 / 4.0 |
0.75 |
4 / 3 + 1 * 7 |
8 |
1234 % 10 |
4 |
42 / 7 / 3 |
2 |
(3 - 7) * (7 + 4) |
-44 |
Tipp: Warum ist 4 / 3 + 1 * 7 gleich 8?
Punkt vor Strich gilt auch hier. Also wird zuerst 4 / 3 gerechnet – als Ganzzahldivision ergibt das 1, nicht 1,333. Dann 1 * 7 ergibt 7. Zusammen 1 + 7 = 8.
Aufgabe 2: Sekunden umrechnen
Schreibe ein Programm, das eine Anzahl von Sekunden in Stunden, Minuten und Sekunden umrechnet und so ausgibt:
7385 Sekunden sind 2 h 3 min 5 s
Verwende dafür nur Ganzzahldivision und Modulo.
Tipp 1: Womit fange ich an?
Die Stunden bekommst du zuerst: Wie viele volle Stunden stecken in 7385 Sekunden? Eine Stunde hat 3600 Sekunden.
Tipp 2: Und der Rest?
Nachdem du die Stunden abgezogen hast, bleibt ein Rest in Sekunden: gesamt % 3600. Mit diesem Rest machst du dasselbe noch einmal für Minuten – diesmal mit 60.
Zusatzaufgabe
Schreibe ein Programm, das die Quersumme einer dreistelligen Zahl berechnet – also die Summe ihrer Ziffern. Aus 472 wird 4 + 7 + 2 = 13.
Du brauchst dafür nur / und %.
Tipp
Die letzte Ziffer bekommst du mit % 10. Und wie wirst du diese letzte Ziffer wieder los, damit du an die vorletzte kommst? Mit / 10.