JavaKara programmieren: Methoden

Slides:



Advertisements
Ähnliche Präsentationen
Definition von Klassen in Java
Advertisements

Einführung in die Programmierung Zusammenfassung
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Polymorphie (Vielgestaltigkeit)
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Aufbau und Funktionsweise von Prozessoren
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
Modularisierungstechniken
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Batch-Programmierung Grundlagen
Command Pattern Karola Schäuble,
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Einführung in die Programmierung Anweisungen und Datentypen
Schleifen mit der Turtle
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Java programmieren mit JavaKara
Wieder und wieder und wieder …. Nicht vor Pilz? ja Schritt vorwärts.
Kapitel 1 – Erste Schritte
Wenn Programme Entscheidungen fällen müssen, dann …
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Guten Nachmittag!.
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmierung
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Einführung in JavaKara
Unterprogramme in JAVA
Optimale Ursprungsgerade
Gnade hat ein Ziel. Gnade hat ein Ziel Gnade hat ein Ziel 11 Jesus kam in die Welt, die ihm gehört, und sein eigenes Volk nahm ihn nicht auf. 12 All.
Objectives Verstehen was unterDelegate verstanden wird
Programmieren - wie einsteigen ?
Gestern: Kara Steuerung: Endliche Automaten.
Parallelisierung für Multiprozessor-Maschinen Teil 2.
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Schleifen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
Gaming-Computer-Aufbau
1 VeranstaltungThemaVortragende AINF-Lehrgang 2003 Titel: Grundlagen der Objektorientierten Programmierung Name: Gruppe Programmierung.
Unterprogramme / Methoden
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Algorithmisches Problemlösen mit Kara
1 VE 11 Kruskal-Realisierung Listen. 2 Auf dem Weg zur Kruskal-Realisierung Vorüberlegungen: Der Graph könnte dargestellt werden als Menge von Knoten,
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.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
Tutorium Software-Engineering SS14 Florian Manghofer.
JavaKara programmieren: Verzweigungen
Nksainf.ch/oinf.
Eigene Methoden zum Steuern einer Turtle
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
Implementieren von Klassen
 Präsentation transkript:

JavaKara programmieren: Methoden Eine Einführung in den Kontrollfluss durch ein JavaKara-Programm: - Aufruf von Methoden (ohne Parameter, ohne Rückgabewerte) - Programmausführung mit Call Stack JavaKara programmieren: Methoden

Ein ganz einfaches Programm: Kara dreht sich um public void myProgram() { kara.turnRight(); }

Ein ganz einfaches Programm: Einen neuen «Befehl» einführen public void myProgram() { umdrehen(); } void umdrehen() { kara.turnRight();

Ein ganz einfaches Programm: Methoden definieren und aufrufen Methode definieren public void myProgram() { umdrehen(); } void umdrehen() { kara.turnRight(); Methode aufrufen Methode definieren Methode aufrufen Methode aufrufen

Programmausführung in Zeitlupe: Ein einfaches Programm Der Prozessor Der Arbeitsknecht, der das Programm zum Leben erweckt. Er weiss, welche Programmzeile er als nächstes ausführen muss. Bei JavaKara ist der Start immer in myProgram(). Das Programm Der Programmtext, der ausgeführt werden soll. Die Welt («Daten») Die Welt, in der das Programm ausgeführt werden soll. Sie enthält den Käfer, den der Prozessor steuert.

Programmausführung in Zeitlupe: Anleitung für ein Rollenspiel Der Prozessor Eine Schülerin spielt den Prozessor. Sie hat die Hauptrolle in dieser Aufführung. Das Programm Ein Schüler erhält das auszuführende Programm. Die Welt («Daten») Eine Schülerin steuert zB an einem Computer mit Beamer den Marienkäfer.

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Der Prozessor Bei JavaKara ist der Start immer in myProgram(). Wenn diese Methode abgearbeitet ist, hat der Prozessor seine Arbeit erledigt. Das Programm Der Programmtext, der ausgeführt werden soll. Die Welt («Daten») Die Welt, in der das Programm ausgeführt werden soll. Sie enthält den Käfer, den der Prozessor steuert.

Programmausführung in Zeitlupe: Ein komplizierteres Programm Der Prozessor Er weiss, welche Programmzeile er als nächstes ausführen muss. Er muss neu beim Aufruf einer Methode merken, von welcher Programmzeile aus er eine Methode aufgerufen hat. Das Programm Es enthält jetzt eigene Methoden, die eigene Methoden aufrufen. Die Notizen des Prozessors («Call Stack») Mit einem Stapel von Notizkarten kann sich der Prozessor merken, von welcher Programmzeile aus er eine Methode aufgerufen hat. Alternativ als Tabelle dargestellt.

Programmausführung in Zeitlupe: Anleitung für ein Rollenspiel Der Prozessor Eine Schülerin spielt den Prozessor. Sie hat die Hauptrolle in dieser Aufführung. Das Programm Je ein Schüler erhält eine Methode des auszu-führenden Programms. Damit muss der Prozessor rumlaufen, das soll den Methodenaufruf verdeutlichen. Die Notizen des Prozessors («Call Stack») Die Schülerin, welche den Prozesser spielt , erhält einen Stapel Notizzettel. Bei jedem Methodenaufruf schreibt sie auf einen neuen Zettel, aus welcher Methode und Zeile der Aufruf kommt.

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 28 halbeDrehung: 28 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 28 halbeDrehung: 28 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 28 halbeDrehung: 28 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 28 halbeDrehung: 28 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 28 halbeDrehung: 28 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 Methode halbe Drehung Zeile 29 halbeDrehung: 29 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 15 dreiViertelDrehung: 15 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 Methode dreiViertel Drehung Zeile 16 dreiViertelDrehung: 16 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 10 ganzeDrehung: 10 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 Methode ganze Drehung Zeile 11 ganzeDrehung: 11 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Methode myProgram Zeile 6 myProgramm: 6

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile

Programmausführung in Zeitlupe: Zeile für Zeile für Zeile Der Kontrollfluss bei der Ausführung eines Programms (noch ohne Daten; Methoden haben weder Input noch Output): Der Prozessor führt ein Programm Zeile für Zeile für Zeile aus. Ein Programm kann viele Methoden haben. Der Prozessor merkt sich mit Hilfe eines Stapel Notizkarten, woher ein Methodenaufruf kommt, damit er dorthin zurückkehren kann. Der Stapel kann gross werden, aber nicht unendlich wachsen (was passiert sonst?).

Programmlesbarkeit: Kara soll Pilz auf Blatt schieben public void myProgram() { while (!kara.onLeaf()) { kara.move(); } kara.turnLeft(); kara.turnRight(); // Fortsetzung kara.turnRight(); kara.move(); kara.turnLeft(); } Das Hauptprogramm ist unübersichtlich: Es ist unklar, welche Befehle inhaltlich zusammengehören und welche nicht. Und es hat viel doppelten Code!

Programmlesbarkeit: Kara soll Pilz auf Blatt schieben public void myProgram() { suchePilz(); umPilzHerum(); kara.move(); } void suchePilz() { while (!kara.onLeaf()) { void umPilzHerum() { kara.turnLeft(); kara.move(); kara.turnRight(); } Das Hauptprogramm ist so schon fast natürlich-sprachig formuliert. Die Absicht der einzelnen Methoden wird durch deren Namen klar ausgedrückt.

Java: Keine Methoden in Methoden public void myProgram() { umdrehen(); void umdrehen() { kara.turnRight(); }

Java: Keine Methoden in Methoden public void myProgram() { umdrehen(); } void umdrehen() { kara.turnRight();