Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ProgrammierungSeite 1 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung.

Ähnliche Präsentationen


Präsentation zum Thema: "ProgrammierungSeite 1 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung."—  Präsentation transkript:

1 ProgrammierungSeite 1 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung Prof. Dr. Sigurd Günther Prof. Dr. Bernhard Zimmermann

2 ProgrammierungSeite 2 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Teil 1 Eine spielerische Einführung in die Programmierung in Java mit dem Hamster-Modell n Literatur: Dietrich Boles Programmieren spielend gelernt Teubner-Verlag n Hamster-Entwicklungsumgebung –http://www.java-hamster-modell.de/

3 ProgrammierungSeite 3 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung / Terminologie n Informatik –Ingenieurswissenschaft Ingenieure entwickeln mit wissenschaftlichen Methoden und Werkzeugen »Produkte und »Verfahren zur Automatisierung von Prozessen n Programmierung –Erstellung von Computerprogrammen n Algorithmus (benannt nach Al Chwarismi, geb. ca. 780 n. Chr., pers.-arab. Mathematiker und Astronom): –Arbeitsanleitung zur Lösung eines Problems

4 ProgrammierungSeite 4 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Arbeitsanleitungen

5 ProgrammierungSeite 5 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung / Algorithmus / Motivation n Arbeitsanleitungen: –Kochrezepte –Bastelanleitungen –Partituren –Spielregeln n Aufbau: –Menge von unterschiedlichen Anweisungen n Charakteristika: –Anweisungssequenzen –bedingte Anweisungen –Anweisungsschleifen –Zutaten / Voraussetzungen –schwammige Formulierungen

6 ProgrammierungSeite 6 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann 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; n 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ß n Anleitung beim Mensch-Ärgere-Dich-Nicht-Spiel: Solange ein Spieler eine 6 würfelt, darf er nochmal würfeln.

7 ProgrammierungSeite 7 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Arbeitsanleitungen n Zutaten beim Kochen: 250g Mett 250g gemischtes Hack 2 Eier 1 Zwiebel 1 Brötchen Pfeffer Salz n 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 ProgrammierungSeite 8 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann 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 ProgrammierungSeite 9 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung / Algorithmus / Definition n 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 n Ausführung von Algorithmen: –durch einen Prozessor (Mensch / Computer) –Computer: »schnell »zuverlässig »hohe Speicherfähigkeit n Formulierung von Algorithmen: –umgangssprachlich –Programmiersprache –...

10 ProgrammierungSeite 10 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung / Programmiersprachen / Programme n Programmiersprache: –computerverständliche Notation zur Formulierung von Algorithmen n Programm (Programmcode, Quellcode, Sourcecode): –ein in einer Programmiersprache formulierter Algorithmus n ausführbares Programm: –Programm in maschinenverständlicher Form n Programmaufruf: –Ausführung eines ausführbaren Programms n Programmieren: –Erstellen von Programmen

11 ProgrammierungSeite 11 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung n Programmieren im Kleinen: –Lösen kleiner Probleme Programmieren im Großen: –Lösen komplexer Probleme –Software Engineering

12 ProgrammierungSeite 12 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmiersprachen / Klassifikation n Anwender: –Anfänger –Experten n Abstrahierungsgrad: –maschinennah »sehr effizient, aber abhängig vom speziellen Computertyp –problemorientiert »für den Menschen verständlicher und leichter handhabbar

13 ProgrammierungSeite 13 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Quellprogramm in B ErgebnisInterpreter Daten Quellprogramm in J Zielprogramm in B Compiler Compiler - Interpreter

14 ProgrammierungSeite 14 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Wie verarbeitet ein Computer vorgegebene Programme ? n Interpreter –Eingaben: Programm + Daten –schrittweise Ausführung der einzelnen Programmteile und Berechnung von Zwischenergebnissen –Ausgabe: Endergebnis (Letztes Zwischenergebnis) n Compiler –Eingabe: Programm formuliert in der Quellsprache –Transformation des Eingabeprogramms –Ausgabe: Semantisch äquivalentes Programm der Zielsprache

15 ProgrammierungSeite 15 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmentwicklung / Entwicklungswerkzeuge n Editor: –Eingabe und Manipulation des Programmcodes n Compiler n Interpreter n Debugger: –Auffinden von Laufzeitfehlern n Laufzeitsystem: –Hilfsprogramme bei der Programmausführung n Programmbibliotheken: –Sammlungen fertiggestellter Programme

16 ProgrammierungSeite 16 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmieren mit dem Java-Hamster-Modell

17 ProgrammierungSeite 17 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann 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 ProgrammierungSeite 18 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Grundlagen n Hamsteraufgabe: –Gegeben sei die folgende Landschaft. Der Hamster soll zwei beliebige Körner fressen. n Landschaft: n Lösung: –ein Hamsterprogramm

19 ProgrammierungSeite 19 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Anweisungen / Befehle n 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 linksUm(); vor Befehl vor(); nach Befehl vor(); nach Befehl linksUm();

20 ProgrammierungSeite 20 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Anweisungen / Befehle n 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 ProgrammierungSeite 21 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Anweisungsfolge / Programm n Programm void main() { Anweisungsfolge } n 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 ProgrammierungSeite 22 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Programm / Beispiel n 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 ProgrammierungSeite 23 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Die Hamster-Entwicklungsumgebung n Editor für –Programme –Landschaften n Compiler n Interpreter Aktivierung über den Explorer: –In das Verzeichnis D:\Daten\HamsterV2 wechseln –hamstersimulator.bat starten

24 ProgrammierungSeite 24 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Die Hamster-Entwicklungsumgebung - Simulator Landschaftseditor Interpreter- Steuerung Aktivitätsprotokoll

25 ProgrammierungSeite 25 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Die Hamster-Entwicklungsumgebung - Editor Compiler- Aktivierung Programm- Editor Compiler- Meldungen

26 ProgrammierungSeite 26 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann 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 n Programm compilieren n 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. n ggf. Fehler mit dem Programm-Editor entfernen

27 ProgrammierungSeite 27 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmerstellung mit der Hamster-Entwicklungsumgebung n 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 ProgrammierungSeite 28 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Aufgabe 1 n 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 ProgrammierungSeite 29 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Prozeduren / Motivation n Beispielaufgabe: –Gegeben sei das folgende Hamster-Territorium. Programm void main() { vor(); vor(); nimm(); linksUm(); linksUm(); linksUm(); vor(); vor(); linksUm(); linksUm(); linksUm(); vor(); vor(); nimm(); vor(); } Der Hamster soll –zwei Körner einsammeln –und anschließend ein Feld nach vorn springen. rechtsUm();

30 ProgrammierungSeite 30 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Prozeduren / Deklaration n 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) ProzedurkopfProzedurrumpf

31 ProgrammierungSeite 31 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Prozeduren / Aufruf - Programm n Prozeduraufruf: –Aufruf eines selbstdefinierten Befehls Prozedurname (); n Anweisung –Grundanweisung (Grundbefehl) – Prozeduraufruf n 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 ProgrammierungSeite 32 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Prozeduren / Beispiel n Aufgabe: –Gegeben sei das folgende Hamster-Territorium. Programm void main() { vor(); vor(); nimm(); rechtsUm(); vor(); vor(); rechtsUm(); vor(); vor(); nimm(); 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 ProgrammierungSeite 33 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Prozeduren / Vorteile n Vorteile von Prozeduren: –Platzeinsparung –separate Lösung von Teilproblemen –bessere Übersichtlichkeit von Programmen –einfachere Fehlerbeseitigung –Wiederverwendbarkeit

34 ProgrammierungSeite 34 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Aufgabe 2 n 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 ProgrammierungSeite 35 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Aufgabe 3 n Aufgabe: –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 ProgrammierungSeite 36 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Aufgabe 4 n Aufgabe: –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 ProgrammierungSeite 37 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Hamster-Modell / Ausblick n Auswahlanweisungen n Wiederholungsanweisungen n Funktionen n Hamster, die nicht mehr auf einer fest vorgegebenen Landschaft operieren, sondern auf allen, die bestimmte Voraussetzungen erfüllen n Vermeidung von Laufzeitfehlern n Hamster mit Gedächtnis (Boolesche Variablen) n Hamster mit Gedächtnis (Zahlen) n Integer-Funktionen n Verallgemeinerungen von Daten und Funktionen n Prozeduren und Funktionen mit Parametern


Herunterladen ppt "ProgrammierungSeite 1 Hochschule Harz © Prof. Dr. Sigurd Günther Fachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann Programmierung."

Ähnliche Präsentationen


Google-Anzeigen