Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmiervorkurs WS 2014/15 Schleifen

Ähnliche Präsentationen


Präsentation zum Thema: "Programmiervorkurs WS 2014/15 Schleifen"—  Präsentation transkript:

1 Programmiervorkurs WS 2014/15 Schleifen
Termin 3

2 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); }

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); 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.)

4 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 < System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

5 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 < System.out.println(i); // gib i aus i++; // und erhoehe i um 1 } Abbruch wenn false

6 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 < System.out.println(i); // gib i aus i++; // und erhoehe i um 1 } geschweifte Klammern begrenzen die Schleife

7 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 < System.out.println(i); // gib i aus }

8 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 < System.out.println(i); // gib i aus } Achtung vor Endlosschleife! Bist Du sicher, dass der Ausdruck in () irgendwann false wird?

9 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 < System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

10 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 < System.out.println(i); // gib i aus i++; // und erhoehe i um 1 }

11 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 }

12 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

13 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

14 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

15 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)

16 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)

17 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); }

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

19 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

20 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

21 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

22 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); }

23 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); }

24 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); }

25 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt:

26 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 7 · 8 = ?

27 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 7 · 8 = 56

28 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");

29 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");

30 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");

31 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

32 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");

33 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");

34 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 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");

35 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 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");

36 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 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");

37 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 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");

38 Teile des Programms mehrfach ausführen
Mehrfachschleifen: Das kleine Einmaleins Gesucht ist ein Programm, das folgende Tabelle ausgibt: 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");

39 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“.

40 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 Höhe 5

41 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.


Herunterladen ppt "Programmiervorkurs WS 2014/15 Schleifen"

Ähnliche Präsentationen


Google-Anzeigen