Übungsblatt „Berechnungen“ Speichern Sie die Programme jeweils in einer eigenen Klasse ab. Kommentieren Sie jeweils die Klasse und (main-)Methoden mit einem sinnvollen Javadoc Kommentar. Erzeugen Sie die Java Dokumentation für Ihre Programme. Aufgabe 1 (Temperaturumrechnung) Erstellen Sie eine Klasse Temperatur mit einer main-Methode, um eine Temperatur gegeben in Grad Celsius in Grad Fahrenheit umzurechnen. Die Umrechungsformel ist: Fahrenheit = 9/5 * Celsius + 32. Die beiden Temperaturen sollen jeweils in lokale Variablen celsius und fahrenheit vom Typ double gespeichert werden. Das Ergebnis der Berechnung – für irgendeinen Temperaturwert celsius – soll in der Form „10.0 Grad Celsius sind 50.0 Grad Fahrenheit.“ auf dem Bildschirm ausgegeben werden Aufgabe 2 (Zamonisches Zahlensystem, if-else) „Da die meisten Zamonier an jeder Hand vier Finger haben, basiert die zamonische Urmathematik auf der Zahl Vier. Es gibt die Zahlen Eins, Zwei, Drei, Vier und Doppelvier, die eigentlich Acht bedeutet. Die dazwischenliegenden Zahlen Fünf, Sechs und Sieben werden von der zamonischen Urmathematik als ‚Unzahlen’ verachtet, sie streiten die Existenz dieser Zahlen schlichtweg ab. Auf die Doppelvier (8) folgt die Doppeldoppelvier (16), darauf die Doppeldoppeldoppelvier (32), darauf die Doppeldoppeldoppeldoppelvier (64) – und so weiter bis ins Unendliche“ [Hildegunst von Mythenmetz] Schreiben Sie ein Java-Programm, dass für eine beliebige ganze positive Zahl (int, nicht Zamonische Mathematik) entscheidet, ob es eine Unzahl ist oder nicht. Die zu überprüfende Zahl kann fest im Programm codiert werden (z.B. bei Deklaration der Zahl). Es soll jeweils ein Text „7 ist eine Unzahl“ resp. „8 ist keine Unzahl“ ausgegeben werden. Erweitern Sie Ihr Programm, so dass bei der Ausgabe statt 8 „Doppelvier“, 16 „Doppeldoppelvier“ usw. bis 128 ausgegeben wird. Verwenden Sie nur if-else als Kontrolanweisung. Aufgabe 3 (Arithmetische Ausdrücke) Gegeben Sei folgende Reihe: 1 1 1 1 3+ 4⋅ − + − + ... 2 ⋅ 3 ⋅ 4 4 ⋅ 5 ⋅ 6 6 ⋅ 7 ⋅ 8 8 ⋅ 9 ⋅ 10 Berechnen Sie den Wert dieser Reihe jeweils mit Hilfe eines arithmetischen Ausdrucks für die ersten drei, fünf und neun Glieder ohne Iterationen, ohne Verwendung von Zwischenergebnissen und geben Sie Ergebnisse auf dem Bildschirm aus. Die Berechnungen sollen möglichst genau werden; welcher Datentyp ist dafür am Besten geeignet? Verwenden Sie nicht mehr als 80 Zeichen pro Zeile. Formatieren Sie den arithmetischen Ausdruck entsprechend den in der Vorlesung vorgestellten Regeln. Welche Zahl wird durch die Reihe berechnet? Damit die 80 Zeichengrenze im Editor sichtbar wird, stellen Sie unter WindowsPreferences->Java->Editor wie folgt „Show print margin“ an: Übungen Informatik I 08.11.05 Übungsblatt „Berechnungen“ Textausgabe in Java mit System.out.print() Um einen Text auf dem Bildschirm auszugeben, kann System.out.print(“Hallo“) bzw. System.out.println(“Hallo“) verwendet werden (System ist eine Klasse, out ein Objekt der Klasse und print/println eine Methode des Objekts). Letztere gibt nach dem Text noch ein Zeilenvorschub aus: alle weiteren Ausgaben erfolgen vom Anfang der nächsten Zeile. Die Methode System.out.print erwartet als Argument eine Zeichenkette (String) oder eine Wert eines elementaren Typs (etwa System.out.println(7)). Die Zeichenkette kann direkt in doppelten Hochkommata angegeben werden. System.out.print(“Hallo“); Mit „+“ können mehrere Zeichenketten und/oder Werte zu einer Zeichenkette verbunden werden. Folgendes ergibt jeweils die gleiche Ausgabe: System.out.println(“Beachte “ + 7 + “ ist die Zahl Sieben“) System.out.println(“Beachte 7 ist die Zahl Sieben“); Vergleichen von Werten Werte können mit == auf Gleichheit und != auf Ungleichheit überprüft werden. Der Wert eines solchen Ausdrucks ist entweder wahr (true) oder falsch (false). 5 == 7 ist falsch 6 == 6 ist wahr Es können auch Variablen verwendet werden. a == 7 ist wahr, wenn a den Wert 7 enthält a != a ist immer falsch Zahlen können mit >, >=, <, <= verglichen werden. 7 > 8 ist falsch a <= 9 ist wahr, wenn a kleiner oder gleich 9 ist Programmverzweigungen Mit der if-Anweisung kann die Programmausführung in Abhängigkeit eines Wahrheitswertes (oder Vergleich oder komplexer Ausdruck) geändert werden. Der Wahrheitswert (…) wird in runden Klammern hinter dem Schlüsselwort if geschrieben. Die Anweisungen in geschweiften Klammern dahinter. if ( a == 7 ) { System.out.println(“a hat den Wert 7“); } Mit else können alternative Programmanweisungen angegeben werden, die genau dann ausgeführt werden, wenn der Ausdruck hinter if nicht wahr (also falsch) ist. if ( a == 7 ) { System.out.println(“a hat den Wert 7“); } else { System.out.println(“a hat einen anderen Wert als 7“); } Operatoren Zum Rechnen stehen für die Datentypen double, float, byte, short, int, long unter anderem folgende Operatoren zur Verfügung: +, -, *, / (Addition, Subtraktion, Multiplikation, Division) Bei ganzen Zahlen ist / die Division ohne Rest, zusätzlich gibt es noch % für die Division mit Rest: 7 % 3 ist 1. Übungen Informatik I 08.11.05