verzweigung oder bedingte anweisung. aufgabe: ein autofahrer tankt sein auto voll und schreibt den...
TRANSCRIPT
![Page 1: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/1.jpg)
Verzweigung oder
bedingte Anweisung
![Page 2: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/2.jpg)
Aufgabe:Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei-stelliger Tagestachometer).Wenn er das nächste Mal tankt, macht er das gleiche und notiert sich zusätzlich noch die getankten Liter.Wie groß ist der Benzinverbrauch pro 100 km ?Flussdiagramm + Java-Programm !
![Page 3: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/3.jpg)
d = zneu – zalt
Ausgabe (bv100)
Eingabe(zalt)
Eingabe(zneu)
Eingabe(bv)
bv100 = bv / d * 100
![Page 4: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/4.jpg)
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
public class MainBenzinrechner1 { throws IOException{ public static void main() throws IOException{ double zalt, zneu, d, bv, bv100; String str;
![Page 5: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/5.jpg)
System.out.println("Kilometerstand alt eingeben"); BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); str = myinput.readLine(); zalt=Double.parseDouble(str);
System.out.println("Kilometerstand neu eingeben"); str = myinput.readLine(); zneu=Double.parseDouble(str);
![Page 6: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/6.jpg)
System.out.println("Benzinverbrauch eingeben"); str = myinput.readLine(); bv=Double.parseDouble(str); d = zneu - zalt; bv100 = bv/d * 100; System.out.println("L/100 km: " +bv100); }} Differenz kann negativ werden
Wann berechnet das Java-Programm ein falsches Ergebnis?
![Page 7: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/7.jpg)
Zählerstand beim 1. Tankvorgang: 900 km
Beispiel für negative Differenz
Zählerstand beim 2. Tankvorgang: 100 km
Differenz = 100 – 900 = - 800km
Es werden nun 200 km bis zum nächsten Tankvorgang gefahren.Welcher Kilometerstand steht dann auf dem Tacho?
Welcher neue Kilometerstand müsste in Wirklichkeit aber auf dem Tacho stehen?
1000 km + 100 km
Welche Differenz berechnet das Programm?
![Page 8: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/8.jpg)
Aufgabe:Verändern Sie das Flussdiagramm so, dass dieser Fall (Tachoüberlauf) berücksichtigt wird.
![Page 9: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/9.jpg)
d = zneu – zalt
Ausgabe (bv100)
Eingabe(zalt)
Eingabe(zneu)
Eingabe(bv)
bv100 = bv / d * 100
![Page 10: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/10.jpg)
zneu zaltf
w
Eingabe(zalt)
Eingabe(zneu)
Eingabe(bv)
zneu = zneu + 1000
![Page 11: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/11.jpg)
zneu zaltf
w
Eingabe(zalt)
Eingabe(zneu)
Eingabe(bv)
zneu = zneu + 1000
d = zneu – zalt
Ausgabe(bv100)
bv100 = bv / d * 100
![Page 12: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/12.jpg)
Java-Syntax für die Einseitige
Verzweigung
![Page 13: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/13.jpg)
if (Ausdruck) Anweisung;
Bedingung Nächste auszuführende Anweisung, wenn Bedingung wahr.
Wahr bedeutet:
Wert des Ausdrucks: true
Nächste auszuführende (d.h. die diesem roten Rahmen folgende) Anweisung,
wenn Bedingung falsch.Falsch bedeutet:
Wert des Ausdrucks: false
![Page 14: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/14.jpg)
Aufgabe:Verändern Sie das Java-Programm so, dass dieser Fall (Tachoüberlauf) berücksichtigt wird.
![Page 15: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/15.jpg)
... if(zneu <= zalt){ zneu = zneu + 1000; } d = zneu - zalt; bv100 = bv/d * 100; System.out.println("L/100 km:" +bv100);
}
bei einer Anweisung sind Klammern nicht nötig.
Trotzdem:Immer Klammern machen.
![Page 16: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/16.jpg)
Struktogrammeals Alternative zu Flussdiagrammen
![Page 17: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/17.jpg)
Eingaben, Ausgaben, einfache
Anweisungen.Beispiele:
Fläche = Länge * Breite
Umfang = 2*(Länge + Breite)
![Page 18: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/18.jpg)
Flussdiagramm für eine
Einseitige Verzweigung
![Page 19: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/19.jpg)
zneu <= zaltf
w
zneu = zneu + 1000
![Page 20: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/20.jpg)
Struktogramm für eine Einseitige Verzweigung
![Page 21: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/21.jpg)
zneu <= zalt
w
zneu = zneu + 1000
f
Bei einer zweiseitigen Verzweigung würde hier mindestens eine Anweisung stehen!
![Page 22: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/22.jpg)
Beispiel:
![Page 23: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/23.jpg)
//Eingabeteil (wurde weg-// gelassen)
if (zneu <= zalt) zneu = zneu+1000; System.out.println("Tacho- überlauf");}d = zneu–zalt;erg = b/d*100;System.out.println("L/100 km:" +erg);
Block (Verbundanweisung): fasst mehrere Anweisungen zusammen
{
Übrigens: Welchem Prinzip widerspricht dieses Programm ?
Dem EVA-Prinzip !
![Page 24: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/24.jpg)
Eingabe(bv)
Eingabe(zneu)
Eingabe(zalt)
Bitte Struktogramm zum vorigen Java-
Programm vervollständigen !
![Page 25: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/25.jpg)
d = zneu–zalt
Ausgabe(bv100)
bv100 = bv/d*100
zneu <= zaltw f
Eingabe(bv)
Eingabe(zneu)
Eingabe(zalt)
zneu = zneu+1000
Ausgabe("Tachoüberlauf")
![Page 26: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/26.jpg)
Aufgabe:Bestimmung des Maximums zweier ganzer Zahlen, also:
Struktogramm + Flussdiagramm +C-Programm !
Achtung: Bis jetzt können wir nur die einseitige Verzweigung in C umsetzen !!!
![Page 27: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/27.jpg)
max = b
Ausgabe(max)
a < bw f
Eingabe(b)
Eingabe(a)
max = a
a >= bw f
Ist es möglich, dass das Programm alle zwei false-Teile durchläuft?
![Page 28: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/28.jpg)
max = b
Ausgabe(max)
a < bw f
Eingabe(b)
Eingabe(a)
max = a
a >= bw f
Nein, denn wenn eine Bedingung false ist, muss die andere Bedingung true sein!
![Page 29: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/29.jpg)
a < bf
w
Eingabe(a)
Eingabe(b)
max = b
Ausgabe(max)
a >= bf
w
max = a
![Page 30: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/30.jpg)
import java.io.*;
public class MainMaximum1 { public static void main() throws IOException{ int a,b,max; String str;
Möglich: Trennen von Variablennamen mit Komma
![Page 31: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/31.jpg)
System.out.println("erste Zahl eingeben"); BufferedReader myinput = new BufferedReader(new InputStreamReader( System.in));
![Page 32: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/32.jpg)
str = myinput.readLine(); a=Integer.parseInt(str);
System.out.println("zweite Zahl eingeben"); str = myinput.readLine(); b=Integer.parseInt(str); // Wie geht es weiter ?
Kommentar
![Page 33: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/33.jpg)
if (a<b){ max = b; }
System.out.println(
"Max= "+max);
if (a>=b){ max = a; }
Logisch gleichwertig:!(a<b)
![Page 34: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/34.jpg)
}}
![Page 35: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/35.jpg)
Wir machen ein paar Tests, denn die Wahrheit ist konkret
!
Um Platz zu sparen schreiben wir statt System.out.println
abgekürzt: sout
![Page 36: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/36.jpg)
if (a<b){ max = b;}
sout("Max=%d", max);
if (a>=b){ max = a;}
12 Für a werde 2 eingegeben
Für b werde 1 eingegeben
2 1
2
2
![Page 37: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/37.jpg)
if (a<b){ max = b;}
sout("Max=%d", max);
if (a>=b){ max = a;}
53 Für a werde 3 eingegeben
Für b werde 5 eingegeben
3 5
5
5
![Page 38: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/38.jpg)
if (a<b){ max = b;}
sout("Max=%d", max);
if (a>=b){ max = a;}
77 Für a werde 7 eingegeben
Für b werde 7 eingegeben
7 7
7
7
![Page 39: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/39.jpg)
Andere Lösung mit einseitiger
Verzweigung:
![Page 40: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/40.jpg)
max = b
Ausgabe(max)
a < bw f
Eingabe(b)
Eingabe(a)
max = a
a > bw f
max = a
a == bw f
![Page 41: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/41.jpg)
Andere Lösung mit einseitiger
Verzweigung:
![Page 42: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/42.jpg)
max = b
Ausgabe(max)
a < bw f
Eingabe(b)
Eingabe(a)
max = a;
Das vorläufige Maximum wird auf den Wert der Variablen a gesetzt.
Ist das vorläufige Maximum kleiner als die 2. Zahl, dann ist das endgültige Maximum gleich der 2. Zahl
![Page 43: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/43.jpg)
oder als eine elegantere Alternative:
![Page 44: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/44.jpg)
Aufgabe:
Bestimmen des Maximums zweier ganzer Zahlen.
Flussdiagramm mit zweiseitiger Verzweigung !
![Page 45: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/45.jpg)
a < bf
w
Eingabe(a)
Eingabe(b)
max = b
Ausgabe(max)
max = a
Ende
Anfang
![Page 46: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/46.jpg)
Und hier das zugehörige
Struktogramm für diese zweiseitige
Verzweigung
![Page 47: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/47.jpg)
a<bw
max = b
f
max = a
![Page 48: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/48.jpg)
Java - Syntax für die zweiseitige
Verzweigung
![Page 49: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/49.jpg)
if (Ausdruck) Anweisung1;else Anweisung2;
Nächste Anweisung, wenn Bedingung wahr
Bedingung
Nächste Anweisung, wenn Bedingung falsch
wahr bedeutet:Wert des Ausdrucks: true
falsch bedeutet:Wert des Ausdrucks: false
![Page 50: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/50.jpg)
Wie kann man also ganz allgemein die folgende
zweiseitige Verzweigung durch zwei einseitige
Verzweigungen darstellen ?
![Page 51: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/51.jpg)
if (B){ A1;}else{ A2;}
if(B){ A1;}if(!B){ A2;}
A1, A2 und B sind alles Ausdrücke
![Page 52: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/52.jpg)
Aufgabe:
Bestimmung des Maximums zweier ganzer
Zahlen.Java-Programm
![Page 53: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/53.jpg)
if (a<b){ max = b;}else{ max = a;}
System.out.println("Maximum= " +max);
Bedingung
Nächste Anweisung, wenn Bedingung wahr
Nächste Anweisung, wenn Bedingung falsch
bei einer Anweisung sind Klammern nicht nötig.
Trotzdem:Immer Klammern machen.
![Page 54: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/54.jpg)
}
![Page 55: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/55.jpg)
Programmverlauf
![Page 56: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/56.jpg)
Annahme:
Bedingung wahr
![Page 57: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/57.jpg)
if (a<b){ max = b;}else{ max = a;}
sout("Maximum =%d", max);
1 22
2
Zum Beispiel ...
![Page 58: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/58.jpg)
Annahme:
Bedingung falsch
![Page 59: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/59.jpg)
if (a<b){ max = b;}else{ max = a;}
sout("Maximum =%d", max);
2 1
2
2
Zum Beispiel ...
![Page 60: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/60.jpg)
Warum ist folgende Lösung falsch ?
Frage:
![Page 61: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/61.jpg)
if (a<b){ max = b;}sout("Maximum =%d", max);
}
![Page 62: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/62.jpg)
Programmverlauf
![Page 63: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/63.jpg)
Annahme:
Bedingung wahr
![Page 64: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/64.jpg)
if (a<b){ max = b;}sout("Maximum = %d ", max);
1 2
Zum Beispiel ...2
2
![Page 65: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/65.jpg)
Annahme:
Bedingung falsch
![Page 66: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/66.jpg)
if (a<b){ max = b;}
Wert von max ist unbekannt und deshalb mit hoher Wahrscheinlichkeit nicht gleich dem Wert von a
sout("Maximum = %d ", max);
2 1Zum Beispiel ...
?
![Page 67: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/67.jpg)
Aufgabe:
Bestimmen des Maximums und Minimums zweier
ganzer Zahlen.Struktogramm +Java-Programm
![Page 68: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/68.jpg)
a<bw
max = b
f
max = a
min = a min = b
Eingabe(a,b)
Ausgabe (max,min)
![Page 69: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/69.jpg)
import java.io.*;
public class MainMaximum1 { public static void main() throws IOException{ int a,b,min,max; String str; // Eingabeteil wie immer // Dann weiter mit ...
![Page 70: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/70.jpg)
if (a<b){ max = b; min = a; }else{ max = a; min = b;}
Anweisungen in einem Block zusammenfassen
Blockbeginn
Blockende
kein Semikolon
![Page 71: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/71.jpg)
System.out.println("Max= "
+max+" Min= "+min); }}
![Page 72: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/72.jpg)
Block: Fasst mehrere Anweisungen zusammen.
![Page 73: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/73.jpg)
Vorschlag: In "nicht
einfachen" Anweisungen (wie z.B. if...else, bzw. if) immer Block
benutzen.
![Page 74: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/74.jpg)
WICHTIG: Nach einem Block
kommt keinSemikolon.
![Page 75: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/75.jpg)
Stellen Sie den Algorithmus durch ein Struktogramm dar, der das Maximum dreier in beliebiger Reihenfolge eingegebener Zahlen berechnet.
Aufgabe:
![Page 76: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/76.jpg)
Eingabe(z1,z2,z3)
z1<z2W F
max = z2 max = z1
max<z3W F
max = z3
Ausgabe(max)
![Page 77: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/77.jpg)
Erstellen Sie das zu diesem Struktogramm zugehörige
Java-Programm
![Page 78: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/78.jpg)
import java.io.*;
public class MainMaximum1 { public static void main() throws IOException{ int z1,z2,z3,max; String str; // Eingabeteil wie immer // Dann weiter mit ...
![Page 79: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/79.jpg)
if(z1<z2){ max=z2; } else{ max=z1; } if(max<z3){ max=z3; } System.out.println("Max= " +max);}
![Page 80: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/80.jpg)
Stellen Sie den Algorithmus durch ein Struktogramm dar, der das Maximum und Minimum dreier in beliebiger Reihenfolge eingegebener Zahlen berechnet.
Aufgabe:
![Page 81: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/81.jpg)
Eingabe(z1,z2,z3)
z1<z2W Fmax = z2
Ausgabe(max, min)
min = z1max = z1min = z2
max<z3W F
max = z3
min>z3W F
min= z3
![Page 82: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/82.jpg)
Erstellen Sie das zu diesem Struktogramm zugehörige
Java-Programm
![Page 83: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/83.jpg)
import java.io.*;
public class MainMaximum1 { public static void main() throws IOException{ int z1,z2,z3,max,min; String str; // Eingabeteil wie immer // Dann weiter mit ...
![Page 84: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/84.jpg)
if(z1<z2){ max=z2; min=z1; } else{ max=z1; min=z2; } if(max<z3){ max=z3; } if(min>z3){ min=z3; } sout("Max= "+max+" Min= "+min);}
![Page 85: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/85.jpg)
Erzeugen Sie einen Algorithmus (und stellen Sie diesen durch ein Struktogramm dar), der drei in beliebiger Reihenfolge eingegebene Zahlen ihrer Größe nach sortiert und ausgibt (kleinste, mittlere, grösste).
Aufgabe:
![Page 86: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/86.jpg)
TESTEN Sie mit den gerade angegebenen Zahlenkombinationen dieses Struktogramm.
![Page 87: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/87.jpg)
TESTEN Sie Ihre Lösung (Struktogramm).Machen Sie dazu folgende Überlegungen:
![Page 88: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/88.jpg)
Unter 3 Zahlen gibt es genau 3 verschiedene, genannt a, b und c.Wie viele verschiedene Möglichkeiten (bzgl. der Reihenfolge der Eingabe) gibt es diese 3 Zahlen einzugeben? Bitte notieren Sie diese Möglichkeiten.
![Page 89: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/89.jpg)
3 verschiedene Zahlen:a b ca c bb a cb c ac a bc b a
![Page 90: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/90.jpg)
Unter 3 Zahlen gibt es genau 2 verschiedene, genannt a und b.Wie viele verschiedene Möglichkeiten (bzgl. der Reihenfolge der Eingabe) gibt es diese 3 Zahlen einzugeben? Bitte notieren Sie diese Möglichkeiten.
![Page 91: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/91.jpg)
Genau 2 gleiche Zahlen:a a bb a aa b a b b aa b bb a b
![Page 92: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/92.jpg)
Unter 3 Zahlen gibt es genau 3 gleiche, genannt a, a, und a.Wie viele verschiedene Möglichkeiten (bzgl. der Reihenfolge der Eingabe) gibt es diese 3 Zahlen einzugeben? Bitte notieren Sie diese Möglichkeiten.
![Page 93: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/93.jpg)
Genau 3 gleiche Zahlen:a a a
![Page 94: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/94.jpg)
Zusammengefasst:
a b ca c bb a cb c ac a bc b a
a a bb a aa b a b b aa b bb a b
a a a
![Page 95: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/95.jpg)
Eine mögliche Lösung der vorigen Aufgabe:
![Page 96: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/96.jpg)
Bemerkung:Die Lösung wird in der folgenden Folie durch ein Flußdiagramm dargestellt. Wandeln Sie dieses Flussdiagramm in ein Struktogramm um.
![Page 97: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/97.jpg)
w
k:=z3m:=z1g:=z2
z1 < z2 f
z3 < z1
z3 < z2
k:=z1m:=z3g:=z2
k:=z1m:=z2g:=z3
k:=z3m:=z2g:=z1
z3 < z2
z3 < z1
k:=z2m:=z3g:=z1
k:=z2m:=z1g:=z3
Ausgabe(k,m,g)
w
w
w
w
f f
ff
![Page 98: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/98.jpg)
z1<z2W F
z3<z1W F
k=z3m=z1g=z2
z3<z2W Fk=z1m=z3g=z2
k=z1m=z2g=z3
z3<z2W F
k=z3m=z2g=z1
z3<z1W Fk=z2m=z3g=z1
k=z2m=z1g=z3
Eingabe(z1, z2, z3)
Ausgabe(k, m, g)
![Page 99: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/99.jpg)
z1<z2W F
z3<z1W F
k=z3m=z1g=z2
z3<z2W Fk=z1m=z3g=z2
k=z1m=z2g=z3
z3<z2W F
k=z3m=z2g=z1
z3<z1W Fk=z2m=z3g=z1
k=z2m=z1g=z3
Eingabe(z1, z2, z3)
Ausgabe(k, m, g)
Wieviel if...else Anweisungen kommen in diesem Programm vor?
Genau eine (die rot umrandete)! Diese ist allerdings verschachtelt !!!
![Page 100: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/100.jpg)
TESTEN Sie mit den gerade angegebenen Zahlenkombinationen dieses Struktogramm.
![Page 101: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/101.jpg)
Erstellen Sie das zu diesem Struktogramm zugehörige
Java-Programm
![Page 102: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/102.jpg)
import java.io.*;
public class MainMaximum1 { public static void main() throws IOException{ int z1,z2,z3,m,g,k; String str;
![Page 103: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/103.jpg)
System.out.println("1. Zahl eingeben"); BufferedReader myinput = new BufferedReader(new InputStreamReader( System.in));
str = myinput.readLine(); z1=Integer.parseInt(str);
System.out.println("2. Zahl eingeben"); str = myinput.readLine(); z2=Integer.parseInt(str);
System.out.println("3. Zahl eingeben"); str = myinput.readLine(); z3=Integer.parseInt(str);
![Page 104: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/104.jpg)
if (z1<z2){ if(z3<z1){ k=z3; m=z1; g=z2; } else{ if(z3<z2){ k=z1; m=z3; g=z2; } else{ k=z1; m=z2; g=z3; } } } else{ if(z3<z2){ k=z3; m=z2; g=z1; } else{ if(z3<z1){ k=z2; m=z3; g=z1; } else{ k=z2; m=z1; g=z3; } } }
![Page 105: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/105.jpg)
System.out.println("sortierte Reihenfolge=" +" "+k+" "+m+" "+g); }}
![Page 106: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/106.jpg)
Nochmals zum EVA-Prinzip
![Page 107: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/107.jpg)
Das EVA-Prinzip bedeutet:In einer Anweisung dürfen
nicht zwei verschiedene Komponenten von EVA stehen
(wie z.B. V und A)
![Page 108: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/108.jpg)
Eingabe(zaehler , nenner)
nenner != 0W F
erg = zaehler / nenner
Ausgabe(erg)
Ausgabe("unerlaubte Division durch 0")
E
V
A+
Schlechter Programmierstil:
2 Komponenten in 1 Anweisung
![Page 109: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/109.jpg)
Guter Programmierstil:
![Page 110: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/110.jpg)
Eingabe(zaehler , nenner)
zaehler != 0W F
erg = zaehler / nenner
erlaubt = 1
erlaubt = 0
E
V
erlaubt == 1W F
Ausgabe(erg)A
Ausgabe("Division durch 0")
![Page 111: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/111.jpg)
Eingabe(zaehler , nenner)
W F
erg = zaehler / nenner
erlaubt = 1
erlaubt = 0
E
V
erlaubt == 1W F
Ausgabe(erg)A
Ausgabe("Division durch 0")
Wieviel if...else Anweisungen kommen in diesem Programm vor?
Genau 2!
zaehler != 0
![Page 112: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/112.jpg)
Aufgabe:Die Variablen n und t sollen den Datentyp integer haben.
Mit welcher Anweisung kann man nachprüfen, ob t ein Teiler von n ist, wie z.B. 3 ein Teiler
von 18 ist.
![Page 113: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/113.jpg)
... if(n % t == 0){ // t teilt n } else{ // t teilt n nicht } ...
Mit dem Operator % wird der Rest berechnet. Wenn t Teiler von n ist, ist
der Rest gleich 0.
Gibt es eine andere Lösung, die die Operatoren / und * benutzt?
![Page 114: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/114.jpg)
... if(n/t * t == n){ // t teilt n} else{ // t teilt n nicht } ...
Wenn n von t nicht geteilt wird, wird der Rest bei der Division abgeschnitten und
somit das Produkt n/t * t ungleich n
![Page 115: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/115.jpg)
Geben Sie dazu ein paar Beispiele ...
![Page 116: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/116.jpg)
... if(n/t * t == n){ // t teilt n} else{ // ... } ...
Also ist die nächste Anweisung im if-Teil der if ... else Anweisung.
21 7 7 21
3 * 7 21=
![Page 117: Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tagestachometer).Wenn](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6549795902118bac78/html5/thumbnails/117.jpg)
... if(n/t * t == n){ // ...} else{ // t teilt n nicht } ...
Also ist die nächste Anweisung im else-Teil der if ... else Anweisung.
20 7 7 20
2 * 7 20≠