Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. Bernhard Zimmermann

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. Bernhard Zimmermann"—  Präsentation transkript:

1 Prof. Dr. Bernhard Zimmermann
Programmierung Prof. Dr. Sigurd Günther Prof. Dr. Bernhard Zimmermann

2 Teil 1 Eine spielerische Einführung in die Programmierung in Java mit dem Hamster-Modell
Literatur: Dietrich Boles Programmieren spielend gelernt Teubner-Verlag Hamster-Entwicklungsumgebung

3 Programmierung / Terminologie
Informatik Ingenieurswissenschaft Ingenieure entwickeln mit wissenschaftlichen Methoden und Werkzeugen Produkte und Verfahren zur Automatisierung von Prozessen Programmierung Erstellung von Computerprogrammen Algorithmus (benannt nach Al Chwarismi, geb. ca. 780 n. Chr., pers.-arab. Mathematiker und Astronom): Arbeitsanleitung zur Lösung eines Problems

4 Arbeitsanleitungen

5 Programmierung / Algorithmus / Motivation
Arbeitsanleitungen: Kochrezepte Bastelanleitungen Partituren Spielregeln Aufbau: Menge von unterschiedlichen Anweisungen Charakteristika: Anweisungssequenzen bedingte Anweisungen Anweisungsschleifen Zutaten / Voraussetzungen „schwammige“ Formulierungen Beispiel für eine schwammige Formulierung: mit Salz und Pfeffer herzhaft würzen

6 Arbeitsanleitungen Kochrezepte
Zwiebel feinhacken; Brötchen einweichen; aus gemischtem Hack, Eiern, feingehackter Zwiebel und eingeweichtem und gut ausgedrücktem Brötchen einen Fleischteig bereiten; mit Salz und Pfeffer herzhaft würzen; Anleitung für einen Fußballschiedsrichter: ein Spieler von Mannschaft A wird von einem Spieler von Mannschaft B gefoult; wenn das Foul im Strafraum von Mannschaft B erfolgt, dann pfeife Strafstoß, ansonsten pfeife Freistoß Anleitung beim Mensch-Ärgere-Dich-Nicht-Spiel: Solange ein Spieler eine 6 würfelt, darf er nochmal würfeln.

7 Arbeitsanleitungen Zutaten beim Kochen: Jenga-Spiel: 250g Mett
250g gemischtes Hack 2 Eier 1 Zwiebel 1 Brötchen Pfeffer Salz Jenga-Spiel: Zubehör: 1 Spielanleitung 45 Holzklötzchen Spielanleitung: solange die Spieler noch Lust haben zu spielen: Turm aufbauen, dabei jeweils die Klötzchen rechtwinklig zueinander versetzen; solange der Turm noch nicht eingestürzt ist, müssen die Spieler der Reihe nach folgendes tun: ein Klötzchen aus dem Turm entnehmen; das Klötzchen oben auf den Turm legen

8 Sie müssen erst den Nippel durch die Lasche zieh'n
und mit der kleinen Kurbel ganz nach unten dreh'n. Dann erscheint ein kleiner Pfeil und da drücken Sie dann drauf und schon geht die Tube auf.

9 Programmierung / Algorithmus / Definition
Arbeitsanleitung zum Lösen eines Problems bzw. einer Aufgabe, die so präzise formuliert ist, daß sie von einem Computer ausgeführt werden kann Ausführung von Algorithmen: durch einen Prozessor (Mensch / Computer) Computer: schnell zuverlässig hohe Speicherfähigkeit Formulierung von Algorithmen: umgangssprachlich Programmiersprache ...

10 Programmierung / Programmiersprachen / Programme
computerverständliche Notation zur Formulierung von Algorithmen Programm (Programmcode, Quellcode, Sourcecode): ein in einer Programmiersprache formulierter Algorithmus ausführbares Programm: Programm in maschinenverständlicher Form Programmaufruf: Ausführung eines ausführbaren Programms Programmieren: Erstellen von Programmen computerverständliche Notation: das Programm kann in dieser Notation prinziell von jedem Computer ausgeführt werden maschinenverständlicher Form: das Programm kann in dieser Notation von der akuell betrachteten Maschine ausgeführt werden

11 Programmierung „Programmieren im Kleinen“: „Programmieren im Großen“:
Lösen kleiner Probleme „Programmieren im Großen“: Lösen komplexer Probleme Software Engineering computerverständliche Notation: das Programm kann in dieser Notation prinziell von jedem Computer ausgeführt werden maschinenverständlicher Form: das Programm kann in dieser Notation von der akuell betrachteten Maschine ausgeführt werden

12 Programmiersprachen / Klassifikation
Anwender: Anfänger Experten Abstrahierungsgrad: maschinennah sehr effizient, aber abhängig vom speziellen Computertyp problemorientiert für den Menschen verständlicher und leichter handhabbar Für den Anfänger: sehr einfach gehalten, mit geringem Sprachumfang

13 Compiler - Interpreter
Zielprogramm in B Compiler Quellprogramm in J Quellprogramm in B Ergebnis Interpreter Daten

14 Wie verarbeitet ein Computer vorgegebene Programme ?
Interpreter Eingaben: Programm + Daten schrittweise Ausführung der einzelnen Programmteile und Berechnung von Zwischenergebnissen Ausgabe: Endergebnis (Letztes Zwischenergebnis) Compiler Eingabe: Programm formuliert in der Quellsprache Transformation des Eingabeprogramms Ausgabe: Semantisch äquivalentes Programm der Zielsprache 1. Auf dem Computer gibt es ein Programm, genannt Interpreter, das als Eingaben ... 2. Auf dem Computer gibt es keinen Interpreter, der Programme der betrachteten Programmiersprache ausführen kann. Wir benötigen dann einen Compiler, der ...

15 Programmentwicklung / Entwicklungswerkzeuge
Editor: Eingabe und Manipulation des Programmcodes Compiler Interpreter Debugger: Auffinden von Laufzeitfehlern Laufzeitsystem: Hilfsprogramme bei der Programmausführung Programmbibliotheken: Sammlungen fertiggestellter Programme

16 Programmieren mit dem Java-Hamster-Modell

17 Hamster-Modell / Grundlagen Landschaft
Hamster (Blickrichtung Ost) Hamster (Blickrichtung Süd) Hamster (Blickrichtung West) Hamster (Blickrichtung Nord) blockierte Kachel Kachel mit Körnern Auch auf dem „Hamsterfeld“ können beliebig viele Körner liegen.

18 Hamster-Modell / Grundlagen
Hamsteraufgabe: Gegeben sei die folgende Landschaft. Der Hamster soll zwei beliebige Körner fressen. Landschaft: Lösung: ein Hamsterprogramm

19 Hamster-Modell / Anweisungen / Befehle
vier Grundbefehle (Grundanweisungen): vor(); ein Feld nach vorne springen linksUm(); 90 Grad nach links drehen nimm(); ein Korn von der aktuellen Kachel aufnehmen gib(); ein Korn aus dem Maul auf der aktuellen Kachel ablegen vor Befehl vor(); nach Befehl vor(); vor Befehl linksUm(); nach Befehl linksUm();

20 Hamster-Modell / Anweisungen / Befehle
Laufzeitfehler: vor(); ... und Feld vor dem Hamster ist blockiert nimm(); ... und kein Korn auf der aktuellen Kachel vorhanden gib(); ... und kein Korn im Maul des Hamsters  die Programmausführung wird abgebrochen! vor Befehl vor(); nach Befehl vor(); Laufzeitfehler!

21 Hamster-Modell / Anweisungsfolge / Programm
void main() { Anweisungsfolge } Kommentare wirken sich nicht auf die Steuerung des Hamsters aus, d.h. sie haben für die Programmausführung keine Bedeutung dienen dem besseren Verständnis eines Programms 2 Notationsmöglichkeiten Kommentar über mehrere Zeilen /* Der Hamster soll sich einmal im Kreis drehen */ 1-zeiliger Kommentar // Der Kommentar endet am Zeilenende können außer in Namen (fast) überall im Programm auftreten

22 Hamster-Modell / Programm / Beispiel
Aufgabe (Bsp1): Gegeben sei das folgende Hamster-Territorium. Programm void main() { // nehme erstes Korn vor(); vor(); nimm(); /* nehme zweites Korn */ linksUm(); vor(); vor(); nimm(); // Korn ablegen vor(); vor(); gib(); // ein Feld nach vorn springen vor(); } Der Hamster soll zwei Körner einsammeln, eins an der Stelle ablegen und ein Feld nach vorn springen.

23 Die Hamster-Entwicklungsumgebung
Editor für Programme Landschaften Compiler Interpreter Aktivierung über den Explorer: In das Verzeichnis „D:\Daten\HamsterV2“ wechseln hamstersimulator.bat starten

24 Die Hamster-Entwicklungsumgebung - Simulator
Interpreter- Steuerung Landschaftseditor Aktivitätsprotokoll ?: Info-Fenster, das u. a. die aktuelle Körneranzahl im Maul anzeigt +1/-1: inkrementieren bzw. dekrementieren der Körneranzahl im Maul

25 Die Hamster-Entwicklungsumgebung - Editor
Compiler- Aktivierung Programm- Editor Compiler- Meldungen

26 Programmerstellung mit der Hamster-Entwicklungsumgebung
neue Programm-Datei (Typ „imperatives Programm“) über den Programm-Editor erzeugen und in einer Datei mit dem Dateityp „Programm“ (Datei-Erweiterung .ham nicht angeben) speichern, z. B. in bsp1 Programm compilieren ggf. Syntaxfehler mit dem Programm-Editor entfernen Landschaft mit dem Landschafts-Editor konstruieren und speichern z.B. bsp1 (Datei-Erweiterung .ter nicht angeben) Hamster-Programm vom Interpreter ausführen lassen (Programmtest) Es wird automatisch die zur Programm-Datei passende .class-Datei benutzt. ggf. Fehler mit dem Programm-Editor entfernen

27 Programmerstellung mit der Hamster-Entwicklungsumgebung
Syntax von Namen, z. B. Dateinamen: Folge von Buchstaben, Ziffern und dem Zeichen ‘_‘, die mit einem Buchstaben beginnen muss.  Sonderzeichen und Leerzeichen dürfen in Namen nicht vorkommen!

28 Hamster-Modell / Aufgabe 1
Der Hamster stehe vor einem Berg. Er soll den Berg erklimmen, das Korn einsammeln, eine Stufe auf der anderen Seite des Bergs absteigen, dort das Korn ablegen und eine weitere Stufe absteigen.

29 Hamster-Modell / Prozeduren / Motivation
Beispielaufgabe: Gegeben sei das folgende Hamster-Territorium. Programm void main() { vor(); vor(); nimm(); linksUm(); linksUm(); linksUm(); vor(); vor(); vor(); } Der Hamster soll zwei Körner einsammeln und anschließend ein Feld nach vorn springen. rechtsUm(); rechtsUm();

30 Hamster-Modell / Prozeduren / Deklaration
Prozedurdeklaration: Vereinbarung eines neuen Befehls void Prozedurname() { Anweisungsfolge } Beispiel: void kehrt() { linksUm(); linksUm(); } ! Prozedurnamen haben die gleiche Syntax wie Dateinamen. (Sonderzeichen oder Leerzeichen sind nicht erlaubt) Prozedurkopf Prozedurrumpf

31 Hamster-Modell / Prozeduren / Aufruf - Programm
Prozeduraufruf: Aufruf eines selbstdefinierten Befehls Prozedurname(); Anweisung Grundanweisung (Grundbefehl) Prozeduraufruf Programm mit Prozeduren void main() { Anweisungsfolge } Prozedurdeklaration Prozedurdeklaration Dabei müssen die folgenden Bedingungen gelten: Die Prozedurnamen sind paarweise verschieden. Innerhalb der Prozedurrümpfe werden nur Prozeduren aufgerufen, die auch deklariert sind. Es spielt keine Rolle, ob die aufgerufene Prozedur vor oder nach dem Aufruf deklariert wird! Die Prozedurdeklarationen sind nicht geschachtelt.

32 Hamster-Modell / Prozeduren / Beispiel
Aufgabe: Gegeben sei das folgende Hamster-Territorium. Programm void main() { vor(); vor(); nimm(); rechtsUm(); vor(); vor(); vor(); } Der Hamster soll zwei Körner einsammeln und anschließend ein Feld nach vorn springen. void rechtsUm() { kehrt(); linksUm(); } void kehrt() linksUm(); linksUm();

33 Hamster-Modell / Prozeduren / Vorteile
Vorteile von Prozeduren: Platzeinsparung separate Lösung von Teilproblemen bessere Übersichtlichkeit von Programmen einfachere Fehlerbeseitigung Wiederverwendbarkeit

34 Hamster-Modell / Aufgabe 2
Wie in Aufgabe 1 steht der Hamster vor einem Berg. Er soll den Berg erklimmen, das Korn einsammeln, eine Stufe auf der anderen Seite des Bergs absteigen, dort das Korn ablegen und eine weitere Stufe absteigen.  Strukturieren Sie Ihr Programm mit Hilfe von Prozeduren.

35 Hamster-Modell / Aufgabe 3
Gegeben sei das linke Hamster-Territorium. Der Hamster soll in allen Feldern der beiden Diagonalen jeweils ein Korn ablegen, so daß nach der Beendigung des Programms das rechte Hamster-Territorium vorliegt. Der Hamster habe anfangs genau 9 Körner im Maul.  Strukturieren Sie Ihr Programm mit Hilfe von Prozeduren!

36 Hamster-Modell / Aufgabe 4
Der Hamster hat Schiffbruch erlitten und ist auf einer einsamen Insel gestrandet. Er hat zum Glück noch 100 Körner im Maul. Um Flugzeuge auf sich aufmerksam zu machen, will er aus den Körnern die Buchstaben SOS ablegen. Helfen Sie ihm dabei! Der Hamster steht anfangs in der linken unteren Ecke des Territoriums mit Blickrichtung Ost.  Strukturieren Sie Ihr Programm mit Hilfe von Prozeduren!

37 Hamster-Modell / Ausblick
Auswahlanweisungen Wiederholungsanweisungen Funktionen Hamster, die nicht mehr auf einer fest vorgegebenen Landschaft operieren, sondern auf allen, die bestimmte Voraussetzungen erfüllen Vermeidung von Laufzeitfehlern Hamster mit Gedächtnis (Boolesche Variablen) Hamster mit Gedächtnis (Zahlen) Integer-Funktionen Verallgemeinerungen von Daten und Funktionen Prozeduren und Funktionen mit Parametern


Herunterladen ppt "Prof. Dr. Bernhard Zimmermann"

Ähnliche Präsentationen


Google-Anzeigen