Wieder und wieder und wieder …. Nicht vor Pilz? ja Schritt vorwärts.

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in die Informatik: Programmierung und Software-Entwicklung
Advertisements

Lösung 5.1Schleifen 1.while (x < 5)if (x < 5) thenwhile Bif B then { do {{do { x = x + 1; x = x + 1; A A }}}} while (x < 5) while B do {x = x + 1;do {A.
Verteilte Software - Java - Prozedurale Programmierung 1
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Programmierkurs für absolute Anfänger Listen und Arrays Caren Brinckmann Sommersemester 2005.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Zusammenfassung Vorwoche
Algorithmisches Problemlösen mit Kara
Modulare Programmierung
DVG Ablaufsteuerung
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
Einführung in die Programmierung Datensammlung
Einführung in die Programmierung Anweisungen und Datentypen
Eigene Metoden (Turtle-Paket (C) Taulien 2003)
Schleifen mit der Turtle
Informatik Grundkurse mit Java
Struktogramme IF-ELSE FOR – Schleife
Grundkonzepte Java - Klassendefinition
Java programmieren mit JavaKara
Kapitel 1 – Erste Schritte
Wenn Programme Entscheidungen fällen müssen, dann …
Algorithmisches Problemlösen mit Kara
Die Woche im Überblick Grosse Projekte in Java Java 1x1 JavaKara Kara.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Programmieren - wie einsteigen ?
Programmieren Kapitel 3 – Variablen.
Java Performance Tuning Performance Tuning is similar to playing a strategy game but happily you usually get paid for it.
Guten Nachmittag!.
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Didaktische Programminterpreter
Die Zählschleife int s = 0 for (int k=1; k
Informatik 1 Übung 4.
Abteilung für Telekooperation Übung Softwareentwicklung 2 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
2. Zustandsorientiertes Modellieren 2.1 Einfachauswahl
Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen
Einführung in JavaKara
Purga - Scriptengine Ein Einblick.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Programmieren - wie einsteigen ?
PHP: Operatoren und Kontrollstrukturen
Gestern: Kara Steuerung: Endliche Automaten.
Programmiervorkurs WS 2014/15 Schleifen
early binding (frühe Bindung) late binding (späte Bindung)
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
JavaKara programmieren: Methoden
Das Fach Informatik am SMG.  wird als Wahlfach in Klasse 9/10 angeboten,  wird als Grundfach in der MSS angeboten,  wird als Leistungsfach in der MSS.
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
Die allgemeine Liste.
JavaKara programmieren: Verzweigungen
JAVA lernen: Methoden.
Aufgaben zu Rückgabewerten
Bewegung des Pacman.
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Unterschiedliche Kontrollstrukturen
SS 04 Christiane Rauh Christian Hellinger
Schleifen mit der Turtle
Schleifen mit der Turtle
Kara: act()-Methode.
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Wieder und wieder und wieder …

Nicht vor Pilz? ja Schritt vorwärts

Nicht vor Pilz? ja Schritt vorwärts

public void myProgram() { while (! kara.mushroomFront()) { kara.move(); } kara.move(); } Die allgemeine Beschreibung einer Schleife mit Abbruchsbedingung: while (Boolescher Ausdruck) { // solange der Ausdruck zu wahr ausgewertet wird, // werden alle Anweisungen in diesem Block wiederholt }

public void myProgram() { while (! kara.mushroomFront()) { kara.move(); } kara.move(); } Die allgemeine Beschreibung einer Schleife mit Abbruchsbedingung: while (Boolescher Ausdruck) { // solange der Ausdruck zu wahr ausgewertet wird, // werden alle Anweisungen in diesem Block wiederholt }

Und unterwegs alle Blätter essen.

Nicht (auf Blatt und zwischen Bäumen)? ja nein Blatt fressen Auf Blatt? Schritt vorwärts ja Blatt fressen

public void myProgram() { while (! (kara.treeLeft() && kara.treeRight() && kara.onLeaf())) { if (kara.onLeaf()) { kara.removeLeaf(); } kara.move(); } kara.removeLeaf(); } Und unterwegs alle Blätter essen.

public void myProgram() { int i = 0; while (i < 5) { kara.putLeaf(); kara.move(); i++; }

Zähler erhöhen Abbruchbedingung Zähler initialisieren public void myProgram() { int i = 0; while (i < 5) { kara.putLeaf(); kara.move(); i++; }

public void myProgram() { for (int i = 0; i < 5; i++) { kara.putLeaf(); kara.move(); } Zähler erhöhen: Beliebige Anweisungen Abbruchbedingung: Boolescher Ausdruck Zähler initialisieren: Beliebige Anweisungen

Alles gleichwertige For-Schleifen: for (int i = 0; i < 5; i++) for (int i = 1; i <= 5; i++) for (int i = 10; i < 20; i = i+2) for (int i = 32; i > 1; i = i / 2)... Der Phantasie sind keine Grenzen gesetzt. Aber ein Programm soll seine Absicht immer so klar wie möglich kommunizieren. Üblicherweise wird daher die erste Schreibweise verwendet.

y x Objekt «world» bietet Methoden für direkte Manipulation der Welt (siehe auch Hilfe in JavaKara): world.setLeaf(x, y, true); // plaziert Kleeblatt an (x,y), // falls noch keines vorhanden world.setLeaf(x, y, false); // löscht Kleeblatt an (x,y), // falls eines vorhanden

y x Objekt «world» bietet Methoden für direkte Manipulation der Welt (siehe auch Hilfe in JavaKara): int breite = world.getSizeX(); // Breite der Welt abfragen int hoehe = world.getSizeY(); // Höhe der Welt abfragen world.getSizeY() world.getSizeX()

y x Betrachten wir zuerst nur die einzelne Zeile 0: for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, 0, true); } x nimmt die Werte 0, 2, …, world.getSizeX()-1 an. Im konkreten Beispiel links: 0, 2, 4, 6, 8.

y x Betrachten wir zuerst nur die einzelne Zeile y=3: int y = 3; for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } x nimmt die Werte 0, 2, …, world.getSizeX()-1 an. Im konkreten Beispiel links: 0, 2, 4, 6, 8.

y x Betrachten wir nun alle Zeilen y: for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } y nimmt die Werte 0, 1, 2, …, world.getSizeY()-1 an. Im konkreten Beispiel links: 0, 1, 2, 3, 4, 5, 6, 7, 8. Für jeden Wert von y: x nimmt die Werte 0, 2, …, world.getSizeX()-1 an. Im konkreten Beispiel links: 0, 2, 4, 6, 8.

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } Methode myProgram

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int y=0 Methode myProgram y=0

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=0 int y=0 Methode myProgram y=0 x=0

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=0 int y=0 Methode myProgram y=0 x=0

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=2 int y=0 Methode myProgram y=0 x=2

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=2 int y=0 Methode myProgram y=0 x=2

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=8 int y=0 Methode myProgram y=0 x=8

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int y=1 Methode myProgram y=1

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=0 int y=1 Methode myProgram y=1 x=0

public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); } int x=0 int y=1 Methode myProgram y=1 x=0

@Override public void myMainProgram() { for (int y = 0; y < world.getSizeY(); y++) { eineZeile(y); } void eineZeile(int y) { for (int x = 0; x < world.getSizeX(); x = x + 2) { world.setLeaf(x, y, true); }

@Override public void myMainProgram() { for (int x = 0; x < world.getSizeX(); x = x + 2) { for (int y = 0; y < world.getSizeY(); y++) { world.setLeaf(x, y, true); }

if (...) { while (...) { if (...) { for (...) { } else if { while (...) { } if (...) { while (...) { if (...) { for (...) { } else if { while (...) { }

if (...) { while (...) { methode1(); } void methode1() { if (...) { methode2(); } else if { methode3(); } void methode2() { for (...) { } void methode3() { while (...) { }