37
Programmierung Seite 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

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

Embed Size (px)

Citation preview

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

ProgrammierungSeite 1

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmierung

Prof. Dr. Sigurd Günther

Prof. Dr. Bernhard Zimmermann

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

ProgrammierungSeite 2

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Teil 1Eine spielerische Einführung in die

Programmierung in Javamit dem Hamster-Modell

Literatur:

Dietrich BolesProgrammieren spielend gelerntTeubner-Verlag

Hamster-Entwicklungsumgebung– http://www.java-hamster-modell.de/

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

ProgrammierungSeite 3

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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

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

ProgrammierungSeite 4

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Arbeitsanleitungen

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

ProgrammierungSeite 5

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmierung / Algorithmus / Motivation

Arbeitsanleitungen: – Kochrezepte

– Bastelanleitungen

– Partituren

– Spielregeln Aufbau:

– Menge von unterschiedlichen Anweisungen Charakteristika:

– Anweisungssequenzen

– bedingte Anweisungen

– Anweisungsschleifen

– Zutaten / Voraussetzungen

– „schwammige“ Formulierungen

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

ProgrammierungSeite 6

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Arbeitsanleitungen

KochrezepteZwiebel 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.

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

ProgrammierungSeite 7

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Arbeitsanleitungen

Zutaten beim Kochen:250g Mett250g gemischtes Hack2 Eier1 Zwiebel1 BrötchenPfefferSalz

Jenga-Spiel:Zubehör:

1 Spielanleitung45 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

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

ProgrammierungSeite 8

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich 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.

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

ProgrammierungSeite 9

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmierung / Algorithmus / Definition

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

– ...

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

ProgrammierungSeite 10

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmierung / Programmiersprachen / Programme

Programmiersprache: – 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

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

ProgrammierungSeite 11

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmierung

„Programmieren im Kleinen“: – Lösen kleiner Probleme

„Programmieren im Großen“: – Lösen komplexer Probleme

– Software Engineering

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

ProgrammierungSeite 12

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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

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

ProgrammierungSeite 13

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Quellprogramm

in B

ErgebnisInterpreter

Daten

Quellprogramm

in J

Zielprogramm

in BCompiler

Compiler - Interpreter

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

ProgrammierungSeite 14

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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

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

ProgrammierungSeite 15

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmentwicklung / Entwicklungswerkzeuge

Editor: – Eingabe und Manipulation des Programmcodes

Compiler Interpreter Debugger:

– Auffinden von Laufzeitfehlern Laufzeitsystem:

– Hilfsprogramme bei der Programmausführung Programmbibliotheken:

– Sammlungen fertiggestellter Programme

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

ProgrammierungSeite 16

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Programmieren mit dem Java-Hamster-Modell

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

ProgrammierungSeite 17

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / GrundlagenLandschaft

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.

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

ProgrammierungSeite 18

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Grundlagen

Hamsteraufgabe:– Gegeben sei die folgende Landschaft. Der Hamster soll zwei

beliebige Körner fressen. Landschaft:

Lösung:– ein Hamsterprogramm

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

ProgrammierungSeite 19

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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 linksUm();

vor Befehl vor(); nach Befehl vor();

nach Befehl linksUm();

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

ProgrammierungSeite 20

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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!

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

ProgrammierungSeite 21

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Anweisungsfolge / Programm

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

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

ProgrammierungSeite 22

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Programm / Beispiel Aufgabe (Bsp1):

– Gegeben sei das folgende Hamster-Territorium.

Programmvoid 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.

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

ProgrammierungSeite 23

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Die Hamster-Entwicklungsumgebung

Editor für– Programme

– Landschaften Compiler Interpreter

Aktivierung über den Explorer:– In das Verzeichnis „D:\Daten\HamsterV2“ wechseln– hamstersimulator.bat starten

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

ProgrammierungSeite 24

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Die Hamster-Entwicklungsumgebung - Simulator

LandschaftseditorInterpreter-

Steuerung

Aktivitätsprotokoll

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

ProgrammierungSeite 25

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Die Hamster-Entwicklungsumgebung - Editor

Compiler-

Aktivierung

Programm-

Editor

Compiler-

Meldungen

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

ProgrammierungSeite 26

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich 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

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

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

ProgrammierungSeite 27

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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!

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

ProgrammierungSeite 28

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Aufgabe 1 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.

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

ProgrammierungSeite 29

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Prozeduren / Motivation Beispielaufgabe:

– Gegeben sei das folgende Hamster-Territorium.

Programmvoid 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();

rechtsUm();

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

ProgrammierungSeite 30

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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

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

ProgrammierungSeite 31

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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.

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

ProgrammierungSeite 32

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Prozeduren / Beispiel Aufgabe:

– Gegeben sei das folgende Hamster-Territorium.

Programmvoid 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();}

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

ProgrammierungSeite 33

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Prozeduren / Vorteile

Vorteile von Prozeduren:– Platzeinsparung

– separate Lösung von Teilproblemen

– bessere Übersichtlichkeit von Programmen

– einfachere Fehlerbeseitigung

– Wiederverwendbarkeit

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

ProgrammierungSeite 34

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Aufgabe 2 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.

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

ProgrammierungSeite 35

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Aufgabe 3 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!

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

ProgrammierungSeite 36

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

Hamster-Modell / Aufgabe 4 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!

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

ProgrammierungSeite 37

Hochschule Harz © Prof. Dr. Sigurd GüntherFachbereich Automatisierung und Informatik © Prof. Dr. Bernhard Zimmermann

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