Objektorientierte Programmierung OOP Programmieren mit Java

Ähnliche Dokumente
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Objektorientierte Programmierung

3. Anweisungen und Kontrollstrukturen

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Einstieg in die Informatik mit Java

Java - Programmierung - Prozedurale Programmierung 1

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Martin Unold INFORMATIK. Geoinformatik und Vermessung

4.4 Imperative Algorithmen Verzweigung und Iteration

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

2 Teil 2: Nassi-Schneiderman

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Java: Eine kurze Einführung an Beispielen

Einstieg in die Informatik mit Java

Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

PROGRAMMIERUNG IN JAVA

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Übungen zu Programmieren - Code-Formatierung -

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Schleifen in C/C++/Java

hue12 January 24, 2017

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Dr. Monika Meiler. Inhalt

Kapitel 5. Programmierkurs. Kontrollstrukturen. Arten von Kontrollstrukturen. Kontrollstrukturen Die if-anweisung Die switch-anweisung

Javakurs für Anfänger

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Schleifen Datenfelder (Arrays) Verzweigungen

Kapitel 3: Anweisungen

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

Programmierung für Mathematik (HS13)

System.out.println("TEXT");

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

Fakultät IV Elektrotechnik/Informatik

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Objektorientierte Programmierung OOP Programmieren mit Java

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben

Thomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)

Prüfung Softwareentwicklung I (IB)

2 Programmieren in Java I noch ohne Nachbearbeitung

Primitive Datentypen

Programmierkurs Java

Erste Java-Programme (Scopes und Rekursion)

Objektorientierte Programmierung OOP Programmieren mit Java

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!

5. Tutorium zu Programmieren

Verzweigungen und Wiederholungen

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java.

Ausdrücke und Anweisungen Übungen

Vorlesung Programmieren

Programmiertechnik Übungen zu Klassen & -methoden

Einführung in C. EDV1-04C-Einführung 1

Anweisungen zur Ablaufsteuerung

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

6. Iteration (Schleifenanweisungen)

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

9 Anweisungen und Kontrollstrukturen

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Softwareentwicklung Sequenz, Verzweigungen, Schleifen

Javakurs für Anfänger

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Transkript:

Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum 5. break-anweisung 6. continue-anweisung Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 2 Aufgabe 1: do-schleife Wie sieht der Output des folgenden Programms DoSchleife aus? Lösung 1: do-schleife Der Output sieht folgendermaßen aus: Erst überlegen, dann programmieren. public class DoSchleife public static void main (String[] args) int Anzahl = 10; int Zaehler = 1; do System.out.println(Zaehler++ + " Dies ist die 1. Schleife"); while (Zaehler > Anzahl); do System.out.println(Zaehler++ + " Dies ist die 2. Schleife"); while (Anzahl >= Zaehler); Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 3 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 4

Aufgabe 2: while-schleife Schreiben Sie das Programm DoSchleife so zum Programm WhileSchleife um, dass die bestehenden Anweisungen nun in einer while-schleife ausgeführt werden. Die Schleifenbedingungen sollen nicht verändert werden. Wie sieht der Output jetzt aus? Warum entsteht ein Unterschied zu DoSchleife? public class WhileSchleife public static void main (String[] args) Lösung 2: while-schleife Der Output sieht folgendermaßen aus: int Anzahl = 10; int Zaehler = 1; while (Zaehler > Anzahl) System.out.println(Zaehler++ + " Dies ist die 1. Schleife"); while (Anzahl >= Zaehler) System.out.println(Zaehler++ + " Dies ist die 2. Schleife"); Der Unterschied liegt darin, dass der 1. Schleifendurchgang bei einer do-schleife auf jeden Fall einmal ausgeführt wird und bei einer while-schleife nicht, wenn die Bedingung schon zu Anfang nicht erfüllt ist. Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 5 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 6 Aufgabe 3a: Verschiedene for-schleifen Schreiben Sie nachfolgende Programme mit ausschließlich for-schleifen, die zu entsprechenden Ausgaben führen: Programm For1, das von 8 bis 18 hoch zählt. Programm For2, das von 18 bis 8 herunter zählt. Programme For3a und For3b, die von 8 bis 18 in Zweierschritten hoch zählen. In For3a wird dazu i um 2 pro Schleifendurchlauf erhöht. In For3b wird dazu i nur um 1 pro Schleifendurchlauf erhöht, aber der doppelte Wert ausgegeben. Lösung 3a: Verschiedene for-schleifen public class For1 public static void main (String[] args) // zählt von 8 bis 18 for (int i = 8; i <= 18; i++) a) For1 b) For2 c) For3a und For3b public class For2 public static void main (String[] args) // zählt von 18 bis 8 for (int i = 18; i >= 8; i--) Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 7 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 8

Lösung 3a: Verschiedene for-schleifen public class For3a public static void main (String[] args) // zählt von 8 bis 18 in Zweierschritten for (int i = 8; i <= 18; i=i+2) Aufgabe 3b: Verschiedene for-schleifen Schreiben Sie nachfolgende Programme mit ausschliesslich for- Schleifen, die zu entsprechenden Ausgaben führen: Programm For4, das ein Dreieck aus lauter 8 erzeugt. Programm For5, das ein Dreieck mit entsprechenden Zahlen erzeugt. Programm For6, das ein Dreieck mit entsprechenden Zahlen erzeugt. public class For3b public static void main (String[] args) // zählt von 4 bis 9 for (int i = 4; i <= 9; i++) // gibt den Wert 2*i aus, also 8 bis 18 System.out.println(2*i); d) For4 e) For5 f) For6 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 9 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 10 Lösung 3b: Verschiedene for-schleifen public class For4 public static void main (String[] args) // schreibt i-mal das Zeichen '8' pro Zeile System.out.print('8'); Lösung 3b: Verschiedene for-schleifen public class For5 public static void main (String[] args) Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 11 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 12

Lösung 3b: Verschiedene for-schleifen Aufgabe 3c: Verschiedene for-schleifen public class For6 public static void main (String[] args) for (int i = imax; i >= 1; i--) Schreiben Sie nachfolgende Programme mit ausschliesslich for- Schleifen, die zu entsprechenden Ausgaben führen: Programm For7, das ein Dreieck mit entsprechenden Zahlen erzeugt. Programm For8, das ein Dreieck mit entsprechenden Zahlen erzeugt. Programm For9, das ein Dreieck mit entsprechenden Zahlen erzeugt. g) For7 h) For8 i) For9 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 13 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 14 Lösung 3c: Verschiedene for-schleifen public class For7 public static void main (String[] args) // schreibt (imax-i)-mal ein Leerzeichen pro Zeile for (int j = 1; j <= (imax-i); j++) System.out.print(' '); Lösung 3c: Verschiedene for-schleifen public class For8 public static void main (String[] args) for (int i = imax; i >= 1; i--) // schreibt (imax-i)-mal ein Leerzeichen pro Zeile for (int j = 1; j <= (imax-i); j++) System.out.print(' '); Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 15 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 16

Lösung 3c: Verschiedene for-schleifen public class For9 public static void main (String[] args) // schreibt (i-1)-mal ein Leerzeichen pro Zeile for (int j = 1; j <= (i-1); j++) System.out.print(' '); // schreibt (imax-i+1)-mal die Zahl i pro Zeile for (int j = 1; j <= (imax-i+1); j++) Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 17 Aufgabe 4: for-schleife: Halber Tannenbaum Schreiben Sie ein Programm, das mittels for-schleifen folgenden Output generiert: Überlegen Sie dazu, wie viele for-schleifen ineinander geschachtelt sein müssen. Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 18 Lösung 4: for-schleife: Halber Tannenbaum Diese Schleife ist für das Erzeugen der 5 Blöcke zuständig. public class ForSchleife public static void main (String[] args) for (int i = 1; i <= 5; i++) for (int j = 1; j <= 3; j++) for (int k = 1; k < j+i; k++) System.out.print("*"); Aufgabe 5: break-anweisung Setzen sie im Programm BreakTest die break-anweisung (evtl. mit Label) so, damit die folgenden Darstellungen herausgegeben werden: public class BreakTest public static void main (String[] args) Erzeugt in jedem Block 3 Zeilen. Erzeugt die entsprechende Anzahl * pro Zeile. Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 19 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 20

Lösung 5: break-anweisung public class BreakTest1 public static void main (String[] args) Label1: break Label1; public class BreakTest2 public static void main (String[] args) Label2: break Label2; Lösung 5: break-anweisung public class BreakTest3 public static void main (String[] args) break; Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 21 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 22 Aufgabe 6: continue-anweisung Schreiben Sie das Programm Primzahlberechnung so zum Programm Primzahlberechnung2 um, dass keine continue-anweisung mehr vorkommt. Ändern Sie dabei so wenig wie möglich! Warum ist die continue-anweisung in diesem Fall eine elegante Lösung? public class Primzahlberechnung public static void main (String[] args) long Untergrenze = 2L; long Obergrenze = 100L; Label1: //Label, zu dem die continue-anweisung springt //zum Label gehörige for-schleife for (long i = Untergrenze; i <= Obergrenze; i++) for (long j = 2; j <= i/2; j++) if ((i%j) == 0) //springt zum Label und setzt for-schleife mit i+1 fort continue Label1; Lösung 6: continue-anweisung Die continue-anweisung erspart das vollständige Durchlaufen der for- Schleifen, sobald feststeht, dass die Zahl i keine Primzahl ist. (Zeitersparnis beim Ausführen des Programms!) public class Primzahlberechnung2 public static void main (String[] args) long Untergrenze = 2L; long Obergrenze = 100L; boolean IstPrimzahl; for (long i = Untergrenze; i <= Obergrenze; i++) IstPrimzahl = true; // Zahl vielleicht Primzahl for (long j = 2; j <= i/2; j++) if ((i%j) == 0) IstPrimzahl = false; // Zahl doch keine Primzahl if (IstPrimzahl) // Zahl nur ausgeben, wenn Primzahl Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 23 Prof. Dr. Rolf Dornberger OOP: 6 Schleifen 22.09.2010 24