Dr. Ekkart Kindler FG Softwaretechnik Institut für Informatik Technische Informatik für Ingenieure Winter 2005/2006 – Übungsblatt Nr. 4 Übungsgruppenleiter: M.-R. Brojerdi M. Meyer E. Münch H. Selke M.Tichy 22. November 2005 Aufgabe 1: Seite 1 (Alternativen) Schreiben Sie ein Programm, das uns bei der Freizeitplanung unterstützt. Das Programm soll zunächst vom Benutzer abfragen, ob die Sonne scheint, und danach die Temperatur erfragen. Die Temperatur können Sie als Zahl vom Typ integer in der bereits bekannten Weise einlesen. Um den Sonnenschein zu speichern, verwenden Sie am besten eine Variable vom Typ boolean. Um eine solche Variable einzulesen, können Sie die Methode In.readBoolean verwenden, die als Eingabe vom Benutzer die Werte „true“ oder „false“ entgegennimmt. Anschließend soll das Programm zur Kontrolle dann die aktuellen Wetterverhältnisse ausgeben, beispielsweise: „Die Sonne scheint; die Temperatur beträgt 23 Grad.“ bzw. „Die Sonne scheint leider nicht; die Temperatur beträgt 18 Grad.“ Anschließend soll dann der aktuelle Freizeittipp ausgegeben werden: • Wenn die Sonne scheint und es wärmer als 25 °C ist, lautet die Empfehlung „Freibad“. • Wenn die Sonne scheint und die Temperatur zwischen 15 °C und 25 °C beträgt, lautet die Empfehlung „Wandern“. • Wenn die Sonne scheint und es kälter als 15 °C ist, empfehlen wir „Shopping“. • Wenn die Sonne nicht scheint und es wärmer als 20 °C ist, empfehlen wir „Spazierengehen“. • Sonst empfehlen wir „Abhängen“. Aufgabe 2: (Schleifen) Schreiben Sie ein Programm, das überprüft, ob eine vom Benutzer eingegebene Zahl n eine Primzahl ist. Gehen Sie dazu wie folgt vor: Prüfen Sie beginnend mit der Zahl 2 für alle Zahlen, die als Teiler in Frage kommen, ob n durch sie ohne Rest geteilt werden kann. Wie man sich leicht überlegen kann, reicht es dabei aus, alle Zahlen zu betrachten, deren Quadrat kleiner als n ist. Wenn sich n durch eine dieser Zahlen teilen lässt, geben Sie aus, dass n keine Primzahl ist. Wenn n durch keine der Zahlen geteilt werden konnte, geben Sie aus, dass n Primzahl ist. Erstellen Sie zwei Varianten Ihres Programms: a) Verwenden Sie eine while-Schleife, in der Sie prüfen, ob n Teiler besitzt. b) Verwenden Sie eine for-Schleife, um zu prüfen, ob n Teiler besitzt. Beenden Sie die Schleifen in beiden Programmen mit der Anweisung break, sobald Sie einen Teiler gefunden haben. Technische Informatik für Ingenieure – Übungsblatt 1 Seite 2(2) Aufgabe 3: (Ausdrücke) Überprüfen Sie die folgenden Anweisungen, ob sie gemäß der Syntax von Java korrekt sind. Überlegen Sie anschließend, von welchem Typ die Ausdrücke sind und welche Werte die Ausdrücke jeweils haben. Überprüfen Sie Ihre Überlegungen mit Hilfe eines Programms, in dem Sie die einzelnen Anweisungen verwenden: int i = 13.1415; boolean b = false; boolean c = b + true; Out.println(1 + 4 * 1.5 + (4 + 8) / 3.0); Out.println(1 + 3 * 2 + (4 + 8) / 3); Out.println(10.0 * (1 / 10)); Out.println(10 * (1 / 10.0)); Out.println(10 * 1 / 10); Out.println("Germany: " + 10 + 12 + " Points"); Out.println("Points Germany: " + 10 + 12); Out.println(10 + 12 + " points for Germany"); Aufgabe 4*: (Verschachtelte Schleifen) Modifizieren Sie eines der beiden Programme aus Aufgabe 2 dahingehend, dass der Benutzer nacheinander beliebig viele Zahlen daraufhin überprüfen kann, ob sie Primzahlen sind. Erstellen Sie auch hier zwei Varianten: a) Der Benutzer gibt eine zu prüfende Zahl ein. Handelt es sich um eine 0, wird das Programm beendet. Ansonsten wird geprüft, ob die Zahl eine Primzahl ist. Anschließend wird der Benutzer nach der nächsten Zahl gefragt. Dieses Vorgehen wird wiederholt, bis der Benutzer eine 0 eingibt. b) Der Benutzer gibt zunächst ein, wie viele Zahlen überprüft werden sollen, beispielsweise 5. Anschließend wird der Benutzer nacheinander jeweils nach einer Zahl gefragt und diese daraufhin überprüft, ob sie eine Primzahl ist. Dieses Vorgehen wird so oft wiederholt, wie der Benutzer anfangs wünschte, also beispielsweise fünf Mal.