30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis...

31
26.06.22 1 Schleifen Schleifen

Transcript of 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis...

Page 1: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

11.04.23 1

SchleifenSchleifen

Page 2: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

RosetteRosette

11.04.23 2

Ziel

Strategie

gehe zur Mittebewege den Stift um 100zeichne Kreis mit Radius 100

drehe die Blickrichtung um 60

gehe zur Mittebewege den Stift um 100zeichne Kreis mit Radius 100

Page 3: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Programmieren durch Programmieren durch KopierenKopieren

11.04.23 3

Page 4: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Analyse mit dem Analyse mit dem DebuggerDebugger

11.04.23 4

Haltepunkt setzen

Attributwerte des Stifts ausgeben

schrittweise abarbeiten

Page 5: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Wiederholung steuernWiederholung steuern

11.04.23 5

pen.bewegeBis(300, 300); pen.bewegeUm(100); pen.zeichneKreis(100);

pen.dreheUm(60);

Die Befehle müssen wiederholt werden,Bis die Blickrichtung des Stiftes 360 ist.

Page 6: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

do-while-Schleifedo-while-Schleife

11.04.23 6

Page 7: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

VariationenVariationen

11.04.23 7

Wie muss der Quelltext verändert werden,damit die nebenstehende Figur entsteht?

Page 8: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

while-Schleifewhile-Schleife

11.04.23 8

Page 9: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

SchleifenSchleifen

11.04.23 9

Um einen bestimmten Teil des Programms mehrfach auszuführen, werden Schleifen verwendet:•Sie können variabel festlegen, wie oft oder bis zum Eintreffen welcher Bedingung die Schleife durchlaufen werden soll.•Durch Verwendung von Schleifen wird Programmcode gespart.

Page 10: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Aufbau einer SchleifeAufbau einer Schleife

11.04.23 10

Eine Schleife besteht aus einer Schleifensteuerung und dem Schleifenrumpf.

SchleifensteuerungEntscheidet, ob oder wie oft die Anweisungen im Schleifenrumpf wiederholt werden sollen.

Schleifenrumpf:Er umfasst die Anweisungen, die wiederholt werden sollen.

Page 11: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

SteuerungsartenSteuerungsarten

11.04.23 11

Schleifensteuerung

Schleifenrumpf

Schleifensteuerung

Schleifenrumpf

kopfgesteuerte Schleife u. fußgesteuerte Schleife

Page 12: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Kopfgesteuerte SchleifeKopfgesteuerte Schleife

11.04.23 12

Schleifensteuerung

Schleifenrumpf

• Die Prüfung, ob die Anweisungen im Schleifenrumpf ausgeführt werden, erfolgt gleich zu Beginn.

• Ist das Kriterium erfüllt, wird der Schleifenrumpf durchlaufen und anschließend erfolgt erneut eine Prüfung.

• Falls das Kriterium bereits zu Beginn nicht erfüllt ist, wird der Schleifenrumpf gar nicht ausgeführt.

Page 13: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Fußgesteuerte SchleifeFußgesteuerte Schleife

11.04.23 13

Schleifensteuerung

Schleifenrumpf

• Zuerst werden die Anweisungen des Schleifenrumpfs ausgeführt.

• Dann erfolgt die Prüfung, ob ein weiterer Durchlauf erfolgen soll.

• Der Schleifenrumpf wird also immer mindestens einmal ausgeführt.

Page 14: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

while-Schleifewhile-Schleife

11.04.23 14

while (Bedingung) { // Anweisungen}

In den runden Klammern steht eine Bedingung, die den Wert true (wahr) oder false (falsch) liefern muss.Der Schleifenrumpf wird durch geschweifte Klammern festgelegt.

Ist die Bedingung erfüllt (true), werden die Anweisungen im Schleifenblock ausgeführt und anschließend wird erneut die Bedingung geprüft.

Ist die Bedingung nicht erfüllt (false), wird der Schleifenkörper übersprungen und das Programm nach der while-Anweisung fortgesetzt.

Die Schleife ist kopfgesteuert.

Page 15: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

VergleichsoperatorenVergleichsoperatoren

11.04.23 15

==überprüft zwei Ausdrücke auf Gleichheit!=überprüft zwei Ausdrücke auf Ungleichheit>liefert true, wenn der erste Ausdruck größer als der zweite ist<liefert true, wenn der erste Ausdruck kleiner als der zweite ist>=liefert true, wenn de erste Ausdruck größer als der zweite ist oder gleich dem zweiten ist<=liefert true, wenn der erste Ausdruck kleiner als der zweite ist oder gleich dem zweiten ist

Page 16: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

do-while-Schleifedo-while-Schleife

11.04.23 16

do {// Anweisungen} while (Bedingung)

Hinter dem Schlüsselwort do steht der Schleifenrumpf in geschweiften Klammern. Hinter dem Schleifenrumpf steht das Schlüsselwort while und in runden Klammern, die Bedingung, die die Schleife steuert.

Der Schleifenrumpf wird mindestens einmal ausgeführt.

Ist die Bedingung true, wird der Schleifenkörper erneut ausgeführt.

Ist die Bedingung nicht erfüllt (false), wird die do-while-Anweisung beendet und das Programm fortgesetzt.

Page 17: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

PolygonPolygon

11.04.23 17

1. int maximalLaenge = 400;2. int ablenkWinkel = 90; 3. int zuwachs = 9;

Bei der nebenstehenden Figur sind folgende Werte gewählt worden:

Testen Sie auch folgende Werte:

400 400 200 400

90 154 60 165

9 2 1 1

Page 18: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

SternStern

11.04.23 18

Page 19: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

AnalyseAnalyse

11.04.23 19

Durch die Befehle in den Zeilen 23 bis 29 wird eine Raute gezeichnet.

Der Befehl in Zeile sorgt für die passende Startposition für die nächste Raute.

Die Schleife wird durch die Zählung der Rauten gesteuert.i gibt die Nummer der Raute an, die gerade gezeichnet wird.

Page 20: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

for-Schleifefor-Schleife

11.04.23 20

Page 21: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

for-Anweisungfor-Anweisung

11.04.23 21

Die for-Anweisung zeichnet sich durch eine kompakte Schreibweise aus und wird häufig verwendet, wenn die Anzahl der Schleifendurchläufe zuvor bereits bekannt ist.

Die for-Schleife ist eine kopfgesteuerte Schleife.

Jede for-Schleife lässt sich auch durch eine while-Schleife formulieren.

Page 22: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

Aufbau einer Aufbau einer for-Anweisungfor-Anweisung

11.04.23 22

for (Initialisierungsteil; Bedingungsteil; Aktualisierungsteil) { // Anweisungen}

InitialisierungsteilEine Variable, die als Zähler dienen soll, wird definiert und initialisiert.

BedingungsteilEs wird eine Bedingung wie bei einer while-Anweisung formuliert.

AktualisierungsteilHier kann angegeben werden, wie sich der Wert der Zählvariablen nach jedem Schleifendurchlauf verändert.

Page 23: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

DeckchenDeckchen

11.04.23 23

Page 24: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

TeilfigurenTeilfiguren

11.04.23 24

Bei jeder Teilfigur werden sieben Kreise gezeichnet.

Der Radius wird von innen nach außen größer.

Zwei benachbarte Kreise durchdringen sich.

Implementieren Sie den Zeichner mit Hilfe zweier ineinander geschachtelter Schleifen. Untersuchen Sie mit Hilfe des Debuggers den Gültigkeitsbereich der lokalen Variablen.

Page 25: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

DebuggerDebugger

11.04.23 25

Ein Debugger ist ein Softwarewerkzeug , mit dem man eine kontrollierte Ausführung eines Quelltextes durchführen kann.

Haltepunkt setzen

schrittweise durchlaufen

Wertekontrollieren

Page 26: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

SchachbrettSchachbrett

11.04.23 26

Jede Zeile besteht aus acht Quadraten.

Insgesamt gibt es acht Zeilen.

Es werden abwechselnd schwarze und weiße Quadrate gezeichnet.

Page 27: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

KontrollstrukturenKontrollstrukturen

11.04.23 27

Page 28: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

if-Anweisungenif-Anweisungen

11.04.23 28

Bei vielen Problemstellungen ist die Verarbeitung von Anweisungen von Bedingungen abhängig.

Nur wenn die Bedingung erfüllt ist, wird die betreffende Anweisung (oder der Anweisungsblock) ausgeführt. Andernfalls wird die Anweisung übersprungen.

Für die Steuerung eines solchen Programmablaufs stellt Java die einseitige if-Anweisung zur Verfügung.

if (Bedingung) { // Anweisungen}

Page 29: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

if-else-Anweisungenif-else-Anweisungen

11.04.23 29

Bei if-else-Anweisung werden bestimmte Anweisungen durchgeführt, falls die Bedingung erfüllt ist.

Falls die Bedingung nicht erfüllt ist, werden andere Bedingungen durchgeführt.

Da hier bei beiden Fällen alternative Anwendungen ausgeführt werden, wird die if-else-Anweisung auch als zweiseitige if-Anweisung bezeichnet.

if (Bedingung) { // Anweisungen} else { // Anweisungen}

Page 30: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

if-Anweisungif-Anweisung

11.04.23 30

Die Bedingung steht in runden Klammern hinter dem Schlüsselwort if.Falls die Bedingung erfüllt ist, wird der erste Anweisungsblock abgearbeitet, andernfalls wird der zweite Anweisungsblock abgearbeitet.

Page 31: 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis mit Radius 100 drehe die Blickrichtung um 60 gehe.

KontrollstrukturenKontrollstrukturen

11.04.23 31

Der Oberbegriff für Schleifen und Verzweigungen ist Kontrollstruktur.