studyklar
GdI 1 · Übungsblatt 5 · Aufgabe 2

Minimum von vier Zahlen als Java-Programm

In Übungsblatt 3 wurde ein Algorithmus entworfen, der die kleinste von vier ganzen Zahlen findet. Jetzt wird er zu einem Java-Programm. Jede Zeile des Algorithmus wird zu einer Zeile Java. Rechts steht das Programm, die Zeilen zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 5.2

Realisieren Sie den von Ihnen in Aufgabe 3.1 entwickelten Algorithmus als Java-Programm A5_2!

Das Programm liest vier ganze Zahlen a, b, c und d ein und gibt die kleinste davon aus. Wie man sie findet, legt der Algorithmus aus Aufgabe 3.1 fest; hier geht es darum, ihn in Java zu schreiben.

Aus Blatt 3, Aufgabe 1 („Minimum von vier Zahlen“): Gegeben sind vier Ganzzahlen a, b, c und d. Gesucht ist ein Algorithmus, der die kleinste der vier Zahlen bestimmt, dargestellt als Ablaufdiagramm.
  1. Den Algorithmus in Worten wiederholen.
  2. Gerüst schreiben und die vier Zahlen einlesen.
  3. Jeden Schritt des Algorithmus in Java übersetzen.
  4. Mit einem Schreibtischtest und einem echten Lauf prüfen.

Der Algorithmus in Worten

  1. a, b, c, d eingeben.
  2. min ← a.
  3. Falls b < min: min ← b.
  4. Falls c < min: min ← c.
  5. Falls d < min: min ← d.
  6. min ausgeben.

Die Idee: Man geht die Zahlen der Reihe nach durch und merkt sich immer die kleinste, die man bisher gesehen hat. Diese Zahl heißt hier min. Am Anfang kennt man nur a, also ist a das vorläufige Minimum. Jede weitere Zahl wird mit min verglichen. Ist sie kleiner, ersetzt sie min.

So reichen drei Vergleiche für vier Zahlen. Hat man in Aufgabe 3.1 einen anderen richtigen Weg gewählt (etwa erst a mit b und c mit d vergleichen), wird er genauso Zeile für Zeile übersetzt.

Rechts steht der Algorithmus als Ablaufdiagramm: Rauten sind Abfragen mit einem Ja- und einem Nein-Ausgang, Rechtecke sind Anweisungen, auch Ein- und Ausgabe; Start und Stop sind abgerundet. Es ist dasselbe Diagramm wie in Aufgabe 3.1. In den nächsten Schritten wird Kasten für Kasten zu Java.

Gerüst und Einlesen mit In.readInt

public class A5_2 {     public static void main(String[] args) {        Out.print("a = ");        int a = In.readInt();        Out.print("b = ");        int b = In.readInt();        Out.print("c = ");        int c = In.readInt();        Out.print("d = ");        int d = In.readInt();
    }}

Aus Start und Stop wird das Gerüst: Die Klasse heißt wie in der Aufgabe A5_2, die Anweisungen stehen in main. Aus dem Kasten „a, b, c, d eingeben“ werden vier Eingaben. Die Aufgabe 3.1 spricht von Ganzzahlen, darum ist jede Variable vom Typ int und wird mit In.readInt() gelesen. Vor jeder Eingabe sagt Out.print, welche Zahl gerade gefragt ist.

Aus Skript 4, Folien 4-30 und 4-33 („Ein-/Ausgabe“): In.readInt() liest eine ganze Zahl von der Tastatur. Out.print(x) gibt x aus und bleibt in der Zeile, Out.println(x) beginnt danach eine neue Zeile. In und Out sind Hilfsklassen der Vorlesung, keine Java-Standardklassen; wie man sie einbindet, steht in Aufgabe 5.1 („Abstand zweier Punkte mit Math.sqrt“).
Noch 7 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1Der Algorithmus in Java

Kasten für Kasten

JaNeinJaNeinJaNeinStarta, b, c, d eingebenmin ← ab < min?min ← bc < min?min ← cd < min?min ← dmin ausgebenStop
LegendeDas Ablaufdiagramm des Algorithmus.