4.10.3 Ein Beispiele ohne Turtle |
|
In diesem und dem nächsten Unterkapitel zeigen wir Beispiele für Verzweigungen, ohne eine Turtle zu benutzen. Wir legen hier also mehr um den algorithmischen Aspekt. | |
Math.abs() | In der Klasse Math gibt es eine Klassenmethode abs(), mit Hilfe derer man den Betrag einer Zahl bestimmen kann. . Können wir selbst ein Programm schreiben, das den Betrag einer eingegebenen Zahl berechnet? |
Struktogramm zu abs |
Der Algorithmus der den Betrag einer
ganzen Zahl berechnet ist so definiert:
Diese Definition lässt sich leicht in ein Struktogramm mit einer einfachen Verzweigung übersetzen: Schließlich übersetzen wir die dargestellte Struktur in Javacode:
Die Ausgabe in den beiden Zweigen ist einfach zu lesen. Wir erinnern uns, System.out.println(...) gibt das aus, was in den Klammern steht (später werden wir dazu noch genaueres erfahren). Das hier rot innerhalb der "-Zeichen geschriebene Text wird so ausgegeben, wie er geschrieben ist. Die x bzw. -x sind Variabel mit einem bestimmten Wert. Sie sind nicht in Anführungsstrichen geschrieben, es wird also nicht x bzw. -x sondern die Werte von x und -x auf den Bildschirm ausgegeben. Die Teilausgaben werden mit dem +-Zeichen zusammengehängt, oder wie wir im Fachjargon gerne sagen, konkateniert. Fehlt noch das Einlesen des Wertes von x. Wir benutzen dazu die Methode Console.in.readInt(). Sie stoppt das Programm, wartet bis der Bediener über die Tatstur Zeichen eingibt (Abschluss der Eingabe durch Drücken der Enter-Taste), liest diese Zeichen und gibt sie als int-Zahlen an das Programm. Dort kann man sie in eine entsprechende Variable vom Typ int speichern: int x = Console.in.readIn(); Damit der Bediener weiß, was das Programm von ihm erwartet, stellt man dieser Eingabezeile eine Anweisung voran, die die erwatrtete Eingabe kommentiert. System.out.print("Geben
Sie eine ganze Zahl ein: "); |
Download: DemoAbs.java |
Das ganze Programm:
|
Downlaod: info1.zip
Installtions-hinweise:
(hier) |
Die Methode Console.in.readInt(); liegt im sog. Paket info1, das man deshalb mit import einbinden muss. Da dieses Paket nicht zu Standard-Java gehört, muss man diese Paket selbst einbinden. Dazu entpackt man die Datei info1.zip in ein Verzeichnis info1, das selbst in dem Verzeichnis EigeneDateien liegt (dort liegt auch das Verzeichnis turtle). |
Math.max(a,b) |
![]()
|
Downlaod: DemoMax.java |
|
In der Struktur ist diese Programm dem
vorausgehenden sehr ähnlich. Es hat eine kleine Variante. In den
Verzweigungen wir nichts mehr ausgegeben, sondern der Wert von
max
bestimmt. Die Ausgabe des Wertes von max erfolgt jetzt nach der
Verzweigung, wenn also die beiden alternativen Programmstränge wieder
zusammengelaufen sind.
Nach der Eingabe von drei Zahlen
a,
b
und c,
hier im Struktogramm nicht dargestellt, wird zunächst die größere der
ersten beiden bestimmt und in max
gespeichert. Danach wird geprüft ob die dritte Zahl vielleicht noch größer
ist als max
und gegebenenfalls wird max
mit dem Wert von c
überschritten. Ist c
dagegen kleiner als das zuerst berechnete Maximum, muss nichts mehr
berechnet werden. Der Zweig bleibt leer. |
|
Download: DemoMax3.java |
|
zu | 4.10.4 Übungen |
zur Startseite | www.pohlig.de (C) MPohlig 2004 |