Programmiervorkurs WS 2014/15 Schleifen

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Einführung in die Programmierung Ausführbare Klassen
Imperative Programmierung -Entwicklungswerkzeuge
3 Sprachelemente und Anweisungen JavaHS Merseburg (FH) WS 06/07 Strings (Zeichenketten)
Java: Grundlagen der Sprache
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
SWITCH - Anweisung.
IF-ELSE-IF-Ketten Weiter mit PP..
Java- Syntax.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Imperative Programmierung Funktionen und Parameter
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Einführung in C EDV1 - 03C-Einführung.
DVG Ablaufsteuerung
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
Einführung in die Programmierung Anweisungen und Datentypen
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Rekursive Funktionen (Fakultät)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
2.4 Rekursion Klassifikation und Beispiele
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Unterprogramme in JAVA
Optimale Ursprungsgerade
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Natürliches Programmieren
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übersicht Nachtrag zu Ausdrücken
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Grundkurs Informatik mit Java
Schleifen mit der Turtle
 Präsentation transkript:

Programmiervorkurs WS 2014/15 Schleifen Termin 3

Teile des Programms mehrfach ausführen Ein Befehl soll mehrfach ausgeführt werden, z.B.: public class MyCounter { public static void main(String[] args) { System.out.println(1); }

Teile des Programms mehrfach ausführen Ein Befehl soll mehrfach ausgeführt werden, z.B.: public class MyCounter { public static void main(String[] args) { System.out.println(1); System.out.println(2); System.out.println(3); System.out.println(4); System.out.println(5); System.out.println(6); System.out.println(7); System.out.println(8); } Copy & Paste ist eine schlechte Idee! (Code wird lang und unübersichtlich.)

Teile des Programms mehrfach ausführen while-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

Teile des Programms mehrfach ausführen while-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus i++; // und erhoehe i um 1 } Abbruch wenn false

Teile des Programms mehrfach ausführen while-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus i++; // und erhoehe i um 1 } geschweifte Klammern begrenzen die Schleife

Teile des Programms mehrfach ausführen while-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus }

Teile des Programms mehrfach ausführen while-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus } Achtung vor Endlosschleife! Bist Du sicher, dass der Ausdruck in () irgendwann false wird?

Teile des Programms mehrfach ausführen for-Schleife (ermöglicht kompaktere Notation) public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { int i = 0; while (i < 10) { // solange i < 10 ... System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 }

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 } Initialisierung Ausdruck Update

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 } Initialisierung (wird vor dem ersten Schleifendurchlauf ausgeführt) Ausdruck Update

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 } Initialisierung Ausdruck (wird vor jedem Schleifendurchlauf ausgewertet) Update

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 } Initialisierung Ausdruck Update (wird nach jedem Schleifendurchlauf ausgeführt)

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // solange i < 10 System.out.println(i); // gib i aus // und erhoehe i um 1 } Nur eine Anweisung in Schleifenblock? → Klammern können entfallen. (auch bei while-Schleife)

Teile des Programms mehrfach ausführen for-Schleife public class MyCounter { public static void main(String[] args) { for (int i = 0; i < 10; i++) System.out.println(i); }

Teile des Programms mehrfach ausführen Beispiel: Berechnung der Fakultät einer Zahl n n! = 1 · 2 · ... · n

Teile des Programms mehrfach ausführen public class Fakultaet { public static void main(String[] args) { //Berechne die Fakultaet f von n: int n = 5; int f = 1; for (int i = 1; i <= n; i++) { f *= i; } System.out.println( "Die Fakultaet von " + n + " ist " + f); Beispiel: Berechnung der Fakultät einer Zahl n

Teile des Programms mehrfach ausführen public class Fakultaet { public static void main(String[] args) { //Berechne die Fakultaet f von n: int n = 5; int f = 1; for (int i = 1; i <= n; i++) { f *= i; System.out.println(i + " " + f); //Test } System.out.println( "Die Fakultaet von " + n + " ist " + f); Beispiel: Berechnung der Fakultät einer Zahl n

Teile des Programms mehrfach ausführen public class Fakultaet { public static void main(String[] args) { //Berechne die Fakultaet f von n: int n = 5; int f = 1; for (int i = 1; i <= n; i++) { f *= i; System.out.println(i + " " + f); //Test } System.out.println( "Die Fakultaet von " + n + " ist " + f); Beispiel: Berechnung der Fakultät einer Zahl n Ausgabe: 1 1 2 2 3 6 4 24 5 120

Teile des Programms mehrfach ausführen Beispiel: Berechnung der Fakultät einer Zahl n import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //Berechne die Fakultaet f von n: int f = 1; for (int i = 1; i <= n; i++) f *= i; System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Teile des Programms mehrfach ausführen Beispiel: Berechnung der Fakultät einer Zahl n import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //Berechne die Fakultaet f von n: int f = 1; for (int i = 1; i <= n; i++) f *= i; System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Teile des Programms mehrfach ausführen Beispiel: Berechnung der Fakultät einer Zahl n import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //Berechne die Fakultaet f von n: long f = 1; //die Fakultaet waechst schnell! for (int i = 1; i <= n; i++) f *= i; System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 7 · 8 = ?

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 7 · 8 = 56

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins public class Einmaleins { public static void main(String[] args) { for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins public class Einmaleins { public static void main(String[] args) { //Aeussere Schleife: Iteriere ueber Zeilen for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins public class Einmaleins { public static void main(String[] args) { for (int zeile = 1; zeile <= 10; zeile++) { //Innere Schleife: Iteriere ueber Spalten for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins public class Einmaleins { public static void main(String[] args) { //Aeussere Schleife: Iteriere ueber Zeilen for (int zeile = 1; zeile <= 10; zeile++) { //Innere Schleife: Iteriere ueber Spalten for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); //Tabulator } System.out.print("\n"); //Zeilenumbruch

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 2 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Teile des Programms mehrfach ausführen Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 1 2 3 4 5 6 7 8 9 10 2 4 for (int zeile = 1; zeile <= 10; zeile++) { for (int spalte = 1; spalte <= 10; spalte++) { int produkt = zeile * spalte; System.out.print(produkt + "\t"); } System.out.print("\n");

Aufgabe Erstellt ein Programm, das die Kreiszahl p nach der Reihenentwicklung von Leibniz berechnet: Erstellt ein Programm, das die Kreiszahl p durch das zufällige Streuen von Punkten in ein Quadrat ermittelt. Verwendet als Zufallsgenerator die Methode Math.random(). Hinweise zu dieser Variante findet Ihr im Internet unter dem Schlagwort „Monte-Carlo-Methode“.

Aufgabe Erstellt ein Programm, dass vom Nutzer ein beliebiges Zeichen einliest sowie eine Ganzzahl n. Das Zeichen soll n Zeilen oft n-mal ausgegeben werden. Erstellt ein Programm, das (mit Hilfe von for-Schleifen) symmetrische Tannenbäume (variabler Höhe) generiert. Der Stamm hat immer eine Höhe von zwei Zeilen und die Krone mindes- tens drei. * *** * ***** *** ******* ***** ********* * * Höhe 3 Höhe 5

Aufgabe ZUSATZ: Ändert Euer Programm so, dass es auch Wälder mit konstanter Baumhöhe generieren kann. * * * * * *** *** *** *** *** ***** ***** ***** ***** ***** Wald mit Bäumen der Höhe 3.