Home

Benutzungshandbuch Hamster-Simulator-Light

image

Contents

1. Buttons starten und beobachten Wenn Sie dann den Pause Button dr cken haben Sie anschlie end ebenfalls die M glichkeit der schrittweisen Ausf hrung ab der aktuellen Position Die Ablaufverfolgung kann brigens jederzeit durch erneutes Klicken des Ablaufverfolgung Buttons deaktiviert bzw reaktiviert werden Wenn Sie m chten dass der Programmablauf beim Erreichen einer bestimmten Zeile automatisch in den Pausezustand gelangt k nnen Sie vor oder w hrend des Programmablaufs in der entsprechenden Zeile einen Breakpoint setzen F hren Sie dazu im Editorbereich auf der entsprechenden Zeilennummer einen Doppelklick mit der Maus aus Breakpoints werden durch eine violette Hinterlegung der Zeilennummer kenntlich gemacht Durch erneuten Doppelklick oder ber ein Popup Men das oberhalb der Zeilennummern aktiviert werden kann kann ein Breakpoint oder auch alle Breakpoints wieder gel scht werden Breakpoints nutzt man h ufig dazu dass man ein Programm bis zu einer bestimmten Stelle normal ablaufen l sst und ab dort dann die M glichkeit der zeilenweisen Ausf hrung nutzt 5 7 Zusammenfassung Herzlichen Gl ckwunsch Wenn Sie bis hierhin gekommen sind haben Sie Ihr erstes Hamster Programm erstellt und ausgef hrt Sie sehen die Bedienung des Hamster Simulators ist gar nicht so kompliziert Der Hamster Simulator bietet jedoch noch weitere M glichkeiten Diese k nnen Sie nun durch einfaches Ausprobieren selbst erkun
2. Die objektorientierte Notation kann auch bei selbst definierten Prozeduren bzw Funktionen verwendet werden void rechtsuUm willi kehrt willi linksUm void kehrt willi linksUm willi linksUm H H L sen wir die zweite Beispielaufgabe nun einmal in dieser objektorientierten Variante Aufgabe Der Hamster steht mit Blickrichtung Osten vor einem Berg mit regelm igen jeweils eine Kachel hohen Stufen Er bekommt die Aufgabe den Berg zu erklimmen und auf dem Gipfel stehen zu bleiben Dateiname OOBergErklimmen ham Beispiel Territorien Berg1 ter und Berg ter void main willi laufeZumBerg willi erklimmeGipfel void laufeZumBerg while willi vornFrei 72 willi vor void erklimmecipfel do willi erklimmeEineStufe while willi vornFrei void erklimmeEineStufe willi linksUm willi vor willi rechtsUm willi vor void rechtsUm willi kehrt willi linksUm void kehrt willi linksUm willi linksUm 73 8 Literatur zum Erlernen der Programmierung Der Hamster Simulator Light ist ein Werkzeug das Programmierern beim praktischen Erlernen der imperativen Programmierung hilft Der Simulator basiert dabei auf dem Buch Programmieren spielend gelernt mit dem Java Hamster Modell von Dietrich Boles erschienen im Vieweg Teubner Verlag In diesem Buch werden die grundlegenden Konzepte der
3. rr gt 58 6 4 2 Umplatzieren des Hamsters im Hamster Territorium 59 6 4 3 Setzen der Blickrichtung des Hamsters Herne 59 6 4 4 Abfragen und Festlegen der K rneranzahl im Maul des Hamsters 59 6 4 5 Platzieren von K rnern auf Kacheln des Hamster Territorium 59 6 4 6 Platzieren von Mauern auf Kacheln des Hamster Territorium 60 6 4 7 L schen von Kacheln des Hamster Territorium n gt 60 6 4 8 Abspeichern eines Hamster Tertorums 60 6 4 9 Wiederherstellen eines abgespeicherten Hamster Territoriums 61 6 5 Interaktives Ausf hren von Hamster Befehlen HR gt 61 6 5 1 111 141 221 101211 USPRBRRENRNERERANENERERENEUERERENENERERENEERERERENERERERENEERRIRESTRRDITESRTIRESERRRS 61 6 5 2 E 62 6 5 3 R ckgabewerte von Funktonen eenen 62 6 5 4 Befehls Popup Men a 202er ea 62 6 6 Ausf hren von Hamster Programmen nn n nennen nennen 63 6 6 1 Starten eines Hamsterbrooramms e 63 6 6 2 Stoppen eines Hamsterbrogramms nn 63 6 6 3 Pausieren eines Hamster ProgrammsS nenne nennen 63 6 6 4 W hrend der Ausf hrung eines Hamster Programms o n 63 6 6 5 Einstellen der Geschwindigkeit He44H24RRRRRnenenenennnennn 64 6 6 6 Wiederherstellen eines Hamster Terttonums gt 64 6 7 Debuggen von Hamster Programmen 64 6 7 1 Beobachten der Programmausf hrung ursurr444HHeHnHRnnne nenn 65 6 7 2 Schrittweise Programmausf
4. Bevor im Folgenden anhand dieser Funktionsbereiche der Simulator im Detail vorgestellt wird werden zuvor noch einige Grundfunktionen graphischer Benutzungsoberfl chen erl utert 6 1 Grundfunktionen In diesem Unterabschnitt werden einige wichtige Grundfunktionalit ten graphischer Benutzungsoberfl chen beschrieben Der Abschnitt ist f r diejenigen von Ihnen gedacht die bisher kaum Erfahrungen mit Computern haben Diejenigen von Ihnen die schon l ngere Zeit einen Computer haben und ihn regelm ig benutzen k nnen diesen Abschnitt ruhig berspringen 6 1 1 Anklicken Wenn im Folgenden von Anklicken eines Objektes oder Anklicken eines Objektes mit der Maus gesprochen wird bedeutet das dass Sie den Maus Cursor auf dem Bildschirm durch Verschieben der Maus auf dem Tisch ber das Objekt platzieren und dann die im Allgemeinen linke Maustaste dr cken 6 1 2 Tooltipps Als Tooltipps werden kleine Rechtecke bezeichnet die automatisch auf dem Bildschirm erscheinen wenn man den Maus Cursor auf entsprechende Objekte platziert siehe Abbildung 6 2 In den Tooltipps werden bestimmte Informationen ausgegeben xla ale mlew kemmer A Selektion in Zwischenablage kopieren Abb 6 2 Tooltipp 6 1 3 Button Buttons sind Objekte der Benutzungsoberfl che die man anklicken kann und die daraufhin eine bestimmte Aktion ausl sen siehe Abbildung 6 3 Buttons besitzen 47 eine textuelle Beschreibung z
5. boolesche return Anweisung else linksUm return false boolesche return Anweisung void main while vornFrei amp amp rechtsFrei Aufruf einer booleschen Funktion vor if rechtsFrei Aufruf einer booleschen Funktion rechtsUm vor 27 4 7 Variablen und Ausdr cke Durch die Einf hrung von Variablen und Ausdr cken bekommt der Hamster ein Ged chtnis und lernt rechnen 4 7 1 Datentypen Ein Datentyp repr sentiert Werte eines bestimmten Typs Im Hamster Modell werden die Datentypen boolean und int genutzt Der Datentyp boolean repr sentiert boolesche Werte also true und false Der Datentyp int repr sentiert ganze Zahlen zwischen 2 und 2 1 4 7 2 Variablen Variablen sind Speicherbereiche Beh lter in denen Werte abgespeichert werden k nnen Vor ihrer Benutzung m ssen sie definiert werden Bei der Definition einer Variablen wird ihr ein Name ein beliebiger Bezeichner zugeordnet Au erdem wird durch die Angabe eines Datentyps festgelegt welche Werte die Variable speichern kann Die folgenden Anweisungen definieren eine Variable frei zum Speichern von booleschen Werten sowie eine Variable anzahlKoerner zum Speichern von ganzen Zahlen Der Variablen frei wird der Initialwert false zugewiesen der Variablen anzahlKoerner der Wert 13 boolean frei false int anzahlKoerner 13 4 7 3 Ausdr cke Ausdr cke sind spezielle Programmierkons
6. e der Landschaft d h die Anzahl der Kacheln ist dabei nicht explizit vorgegeben Die Landschaft ist beliebig aber nie unendlich gro Auf einzelnen Kacheln k nnen ein oder mehrere K rner liegen Kacheln auf denen sich K rner befinden sind in den Landschaftsskizzen durch ein spezielles Korn Symbol gekennzeichnet Auf den Kacheln des Hamster Territoriums k nnen weiterhin auch Mauern stehen was bedeutet dass diese Kacheln blockiert sind Der Hamster kann sie nicht betreten Es ist nicht m glich dass sich auf einer Kachel sowohl eine Mauer als auch K rner befinden Der Hamster kann das Territorium nicht verlassen Stellen Sie sich also vor dass das Territorium immer vollst ndig von Mauern umgeben ist 13 Abb 3 1 Komponenten des Hamster Modells 3 2 Hamster Im Hamster Modell existiert immer genau ein Hamster Der Hamster steht dabei auf einer der Kacheln des Hamster Territoriums Diese Kachel darf nicht durch eine Mauer blockiert sein sie kann jedoch K rner enthalten Der Hamster kann in vier unterschiedlichen Blickrichtungen Nord S d West Ost auf den Kacheln stehen Je nach Blickrichtung wird der Hamster durch unterschiedliche Symbole repr sentiert In Abbildung 3 1 schaut der Hamster nach Osten K rner k nnen sich nicht nur auf einzelnen Kacheln sondern auch im Maul des Hamsters befinden 3 3 Befehle Der Hamster kennt vier Befehle und drei Testbefehle durch deren Aufruf ein Programmierer den Hamster
7. linksUm void ernteEineReiheUndLaufeZurueck ernteEineReihe kehrt laufezZurueck void ernteEineReihe sammle while vornFrei vor sammle void laufeZurueck while vornFrei vor 70 void sammle while kornDa nimm void rechtsUm kehrt linksUm void kehrt linksUm linksUm 7 2 Berg erklimmen Die Aufgabe lautet Der Hamster steht mit Blickrichtung Osten vor einem Berg mit regelm igen jeweils eine Kachel hohen Stufen Er bekommt die Aufgabe den Berg zu erklimmen und auf dem Gipfel stehen zu bleiben Dateiname BergErklimmen ham Beispiel Territorien Berg1 ter und Berg ter void main laufeZumBerg erklimmeGipfel void laufeZumBerg while vornFrei vor void erklimmecipfel do erklimmeEineStufe while vornFrei void erklimmeEineStufe linksUm vor rechtsUm vor void rechtsum kehrt linksUm 71 linksUm void kehrt linksUm 7 3 Berg erklimmen objektorientierte Variante Der Hamster hat brigens auch einen Namen n mlich willi Dar ber ist es m glich Befehle an den Hamster auch in einer objektorientierten Notation zu verwenden willi vor willi linksUm willi nimm willi gib if willi vornFrei while willi kornDa while willi maulleer
8. Im linken Teil befindet sich der Editor Bereich im rechten Teil der Simulationsbereich Im Editor Bereich geben Sie Hamster Programme ein und im Simulationsbereich f hren Sie Hamster Programme aus Men leiste Toolbar Progmmen Dine Simmiaiseon Teater ie 20 a bg gt be AA EAR Editor Bereich Meldungsbereich Simulationsbereich Abb 5 1 Hamster Simulator nach dem ffnen Um den Hamster ein wenig n her kennen zu lernen epmpfehle ich Ihnen als erstes zun chst die Hamster Befehle einmal auszuprobieren Wie das geht wird in Abschnitt 5 1 erl utert Anschlie end wird in den darauf folgenden Abschnitten im Detail beschrieben was Sie machen m ssen um Ihr erstes Hamster Programm zu schreiben und auszuf hren Insgesamt m ssen k nnen f nf Stationen durchlaufen werden e Gestaltung eines Hamster Territoriums e Eingeben eines Hamster Programms e Compilieren eines Hamster Programms 37 e Ausf hren eines Hamster Programms e Debuggen eines Hamster Programms 5 1 Ausprobieren der Hamster Befehle Klicken Sie im Men Fenster das Men Item Befehlsfenster an Es ffnet sich ein Fenster mit dem Titel Befehlsfenster In diesem Fenster erscheinen alle Befehle die der Hamster kennt Befeh E DR void gib boolean kornDa boolean maul eer boolean vornFrei Abb 5 2 Befehlsfenster Sie k nnen die jeweiligen Befehle ausf hren indem Sie den Maus Cursor auf den entsprechenden Button v
9. 4 5 1 while Anweisung Die while Anweisung ist eine zusammengesetzte Anweisung Nach dem Schl sselwort while steht in runden Klammern ein boolescher Ausdruck die so genannte Schleifenbedingung Anschlie end folgt die Anweisung die eventuell mehrfach ausgef hrt werden soll Sie wird auch Iterationsanweisung genannt Hierbei handelt es sich im Allgemeinen um eine Blockanweisung Bei der Ausf hrung einer while Anweisung wird zun chst berpr ft ob die Schleifenbedingung erf llt ist d h ob der boolesche Ausdruck den Wert t rue liefert Falls dies nicht der Fall ist ist die while Anweisung unmittelbar beendet Falls die Bedingung erf llt ist wird die Iterationsanweisung einmal ausgef hrt Anschlie end wird die Schleifenbedingung erneut ausgewertet Falls sie immer noch erf llt ist wird die Iterationsanweisung ein weiteres Mal ausgef hrt Dieser Prozess berpr fung der Schleifenbedingung und falls diese erf llt ist Ausf hrung der lterationsanweisung wiederholt sich so lange bis hoffentlich irgendwann einmal die Bedingung nicht mehr erf llt ist 4 5 2 do Anweisung Bei Ausf hrung der while Anweisung kann es vorkommen dass die lterationsanweisung kein einziges Mal ausgef hrt wird n mlich genau dann wenn die Schleifenbedingung direkt beim ersten Test nicht erf llt ist F r solche F lle bei denen die Iterationsanweisung auf jeden Fall mindestens einmal ausgef hrt werden soll existiert die do Anweisung auch do Sch
10. B OK oder eine Graphik die etwas ber die Aktion aussagen Sie erkennen Buttons an der etwas hervorgehobenen Darstellung Graphik Buttons sind in der Regel Tooltipps zugeordnet die die zugeordnete Aktion beschreiben Sbg 3 Abb 6 3 Buttons 6 1 4 Men Men s befinden sich ganz oben in einem Fenster in der so genannten Men leiste siehe Abbildung 6 4 Sie werden durch einen Text beschrieben Programm B hne Simulation Klickt man die Texte an ffnet sich eine Box mit so genannten Men Items Diese bestehen wiederum aus Texten die man anklicken kann Durch Anklicken von Men ltems werden genauso wie bei Buttons Aktionen ausgel st die im Allgemeinen durch die Texte beschrieben werden Speichern Kopieren Nach dem Anklicken eines Men Items wird die Aktion gestartet und die Box schlie t sich automatisch wieder Klickt man irgendwo au erhalb der Box ins Fenster schlie t sich die Box ebenfalls und es wird keine Aktion ausgel st ne Simulation Fenster Hilfe A Start Alt S einen Schritt Zeile weiter Atw j l Komplett zur cksetzen Alt R J Ablaufverfolgung aktiv Alt A IR Abb 6 4 Men leiste und Men H ufig steht hinter den Men Items ein weiterer Text wie z B Strg O oder Alt N Diese Texte kennzeichnen Tastenkombinationen Dr ckt man die entsprechenden Tasten auf der Tastatur wird dieselbe Aktion ausgel st die man auch durch Anklicken des Men It
11. Bei booleschen Variablen muss das ein boolescher Ausdruck sein bei int Variablen ein arithmetischer Ausdruck Bei der Ausf hrung einer Zuweisung wird zun chst der Ausdruck ausgewertet und anschlie end der berechnete Wert der Variablen auf der linken Seite des 29 Zuweisungsoperators zugewiesen Die Zuweisungsanweisung zahl zahl 1 erh ht bspw den Wert einer int Variablen zahl um den Wert 1 4 7 5 Vergleichsausdr cke Vergleichsausdr cke sind boolesche Ausdr cke die zum Vergleichen arithmetischer Ausdr cke dienen Sie liefern boolesche Werte nach folgenden Gesetzm igkeiten Seien x und y zwei arithmetische Ausdr cke dann gilt e x y liefert genau dann den Wert true falls der Wert den x liefert gleich dem Wert ist den y liefert Gleichheitsoperator e x y liefert genau dann den Wert true falls der Wert den x liefert ungleich dem Wert ist den y liefert Ungleichheitsoperator e x lt y liefert genau dann den Wert true falls der Wert den x liefert kleiner ist als der Wert den y liefert Kleineroperator e x lt y liefert genau dann den Wert true falls der Wert den x liefert kleiner oder gleich dem Wert ist den y liefert Kleinergleichoperator e x gt y liefert genau dann den Wert true falls der Wert den x liefert gr er ist als der Wert den y liefert Gr eroperator e x gt y liefert genau dann den Wert true falls der Wert den x liefert gr er oder gleich dem Wert ist den y
12. Symbol Bewegen Sie die Maus nun ber die Kachel auf der ein Korn platziert werden soll und klicken Sie dort die Maus Auf der Kachel erscheint nun ein Korn Symbol Liegen auf der Kachel bereits ein oder mehrere K rner wird deren Anzahl um eins erh ht Aber Achtung Es werden maximal 12 K rner angezeigt auch wenn auf der Kachel mehr als 12 K rner liegen Wenn Sie die Shift Taste Ihrer Tastatur dr cken und gedr ckt halten und anschlie end den Button Korn setzen der Toolbar anklicken haben Sie die M glichkeit mehrere K rner im Territorium zu platzieren ohne vorher jedes Mal erneut den Button anklicken zu m ssen Solange Sie die Shift Taste gedr ckt halten und eine Kachel anklicken wird dort ein Korn hinzugef gt Mauern werden hnlich wie K rner auf Kacheln platziert Nutzen Sie dazu den Mauer setzen Button 13 Button von links Mauern k nnen nat rlich nicht auf 39 Kacheln platziert werden auf denen bereits eine Mauer existiert oder auf der sich der Hamster befindet Wird eine Mauer auf eine Kachel platziert auf der sich K rner befinden werden diese gel scht M chten Sie bestimmte Kacheln im Territorium wieder leeren so dass weder eine Mauer noch K rner auf ihnen platziert sind so aktivieren Sie den Kachel l schen Button 14 Button von links Klicken Sie anschlie end auf die Kacheln die geleert werden sollen Der Button ist so lange aktiviert bis er erneut oder ein anderer Gestaltungsbutt
13. nennen nenn 38 5 3 Eingeben eines Hamster Programme 41 5 4 Compilieren eines Hamster Prooramms nennen nenn 42 5 5 Ausf hren eines Hamster Programmes nennen nennen 43 5 6 Debuggen eines Hamster ProgrammsS nenn nennen 44 E E e NEE e EE 45 6 Bedienung des Hamster Simulators ssnoseeneeennnenneneneeseeeeresrreeerrrrereseersreeeeene 46 6 1 SEITEN eelere eebe 47 6 121 Anklicken Eee 47 ek Tal 47 Bl gt BUTTON EE 47 8 14 MENU een 48 fa Ke le 49 Lag NET ee te E UE 49 0 1 7 Eimgabefeld rererere eetere esete etenee tetee etenee eeto Seetee irets ete SeeSee ES 49 E E EI elei GBR A AAE EE E 49 6 1 9 Dateiauswahl DialogboXx E 50 GL NR Gene BEE 51 6 1 11 se OIII E ae EE 52 6 2 Verwalten und Editieren von Hamster Progorammen 44H gt 52 6 2 1 Schreiben eines neuen Hamster Programme een gt 54 6 2 2 ndern des aktuellen Hamster Programme ssssnsisneiernnsreininneneee 54 6 2 3 L schen des aktuellen Hamster Programm 54 6 2 4 Abspeichern des aktuellen Hamster Programms 44444444 4 gt 54 6 2 5 ffnen eines einmal abgespeicherten Hamster Programms 54 6 2 6 Drucken eines Hamster Programmes 55 6 2 7 Editier Funktionen EE 55 6 3 Compilieren von Hamster Programmen 56 6 3 1 EDmMmpilierenz1 2r44 2 42222 nennen 56 6 3 2 Beseitigen von Fehlern EE 56 DA Verwalten und Gestalten von Hamster Territorien 58 6 4 1 Ver ndern der Gr e des Hamster Territoriums
14. und Wiederherstellen k nnen Sie ber das Men Programm bzw die entsprechenden Buttons in der Toolbar ausf hren vierter bis achter Button von links Weiterhin gibt es im Men Programm zwei Men ltems zum Speichern von Programmen in Dateien und zum wieder Laden von abgespeicherten Programmen Bei ihrer Aktivierung erscheint eine Dateiauswahl Dialogbox in der Sie die entsprechende Auswahl der jeweiligen Datei vornehmen m ssen Achtung Wenn Sie eine abgespeicherte Datei laden geht der Programmtext der sich aktuell im Editorbereich befindet verloren wenn er nicht zuvor in einer Datei abgespeichert wurde Im Men Programm finden Sie dar ber hinaus weitere n tzliche Funktionen Schriftgr e ndern Drucken 41 5 4 Compilieren eines Hamster Programms Nachdem wir unser Hamster Programm geschrieben haben m ssen wir es compilieren Der Compiler berpr ft den Sourcecode auf syntaktische Korrektheit und transformiert ihn wenn er korrekt ist in ein ausf hrbares Programm Zum Compilieren dr cken Sie einfach auf den Compilieren Button erster Toolbar Button von links oder Compilieren Men Item im Programm Men Compiliert wird dann das Programm das gerade im Eingabebereich sichtbar ist Es wird zuvor automatisch in einer tempor ren Datei namens Solist java abgespeichert Wenn das Programm korrekt ist erscheint eine Dialogbox mit der Nachricht Compilierung erfol
15. und Unterordner des aktuellen Ordners Sie sind durch unterschiedliche Symbole repr sentiert Der eigentliche Zweck von Dateiauswahl Dialogboxen ist wie der Name schon sagt die Auswahl einer Datei Klickt man auf eine Datei erscheint der Name automatisch im Eingabefeld Dateiname Dort kann man auch ber die Tastatur einen Dateinamen eingeben Anschlie end wird nach Dr cken des OK Buttons die entsprechende Datei ge ffnet bzw gespeichert Dateiauswahl Dialogboxen stellen jedoch noch zus tzliche Funktionalit ten bereit Durch Doppelklick auf einen Ordner kann man in den entsprechenden Ordner wechseln Es werden dann anschlie end die Dateien und Uhnterordner dieses Ordners im mittleren Bereich angezeigt Um zu einem bergeordneten Ordner zur ck zu gelangen bedient man sich des Men s Suchen in in dem man den entsprechenden Ordner ausw hlen kann Neben dem Suchen in Men sind noch f nf Graphik Buttons angeordnet Durch Anklicken des linken Buttons kommt man im Ordnerbaum eine Ebene h her Durch Anklicken des zweiten Buttons von links gelangt man zur Wurzel des Ordnerbaumes Mit dem mittleren Button kann man im aktuellen Ordner einen neuen Unterordner anlegen Mit den beiden rechten Buttons kann man die Darstellung im mittleren Bereich ver ndern M chte man einen Ordner oder eine Datei umbenennen muss man im mittleren Bereich der Dateiauswahl Dialogbox zweimal mit Pause zwischendurch auf den Namen d
16. Balkens liegen Wenn Sie den Balken mit der Maus anklicken und bei gedr ckter Maustaste nach links oder rechts bzw oben oder unten verschieben vergr ert sich einer der beiden Bereiche und der andere verkleinert sich Durch Klicken auf einen der beiden Pfeile auf dem Balken k nnen Sie einen der beiden Bereiche auch ganz verschwinden lassen void rechtsUm Prozedurdefinition linksUn linksUmi linksUm S III RS BA Si 4 4 4 4 4 4 A 4 s CB eg 4 2 t K void main main Prozedur oO A Oh Dm EB Ob Es friss erstes Korn rechtsUn Prozeduraufruf orl vor 13 ninmi Abbi 6 10 Split Pane 6 2 Verwalten und Editieren von Hamster Programmen Das Schreiben von Programmen bzw genauer gesagt das Schreiben des Sourcecodes von Programmen bezeichnet man als Editieren Im Hamster Simulator dient der Editor Bereich zum Editieren von Hamster Programmen siehe Abbildung 6 11 52 brogramm d Simulation Fenster Hilfe D bp a Sai void main friss er vori vori ninni Z friss zweites Korn linksUmt vori vori ninni iniwelt wurde compiliert Abb 6 11 Editor Bereich des Hamster Simulators Im Editor Bereich k nnen Sie Programme eintippen F r das Verwalten und Editieren von Programmen ist das Men Programm wichtig Unterhalb der Men leiste ist eine s
17. Benutzungshandbuch Hamster Simulator Light Version 1 0 21 09 2009 Dietrich Boles Universit t Oldenburg Inhaltsverzeichnis NR ie rt ee ee nee 9 1 1 Das Hamster Modell HH HH 9 1 2 Ber HamsterSsimulater ne ee degen eegen eg 9 SC WE le e D DE 10 14 Anmerkungen essen seen 10 1 5 Aufbau des Benutzerhandbuch AAA 10 2 UE 12 2 1 Voraussetzungen 12 22 Download Installation und Start ENEE NENNEN 12 3 Das Java Hamster Modell u mem ee 13 Sch ees 13 32 Dateie 14 3 3 BEEN pe 14 4 Imperative Programmierkonzepte der Programmiersprache Java 16 4 1 dee ETC EE 16 4 2 Anweisungen und Programme ursssrs4nnenensnenenennnnnennnnnnnnnnn nenne nennen 16 4 2 4 la GE EE 17 122 ANWEISUNGEN ee ee 17 4 23 Geo EU 18 E E eu EE IC EAE E E E AE AE E AE EE AE AE E EAE EEEE 18 4 2 5 Beispielprogramm DEE 18 a GC ER Ge E 19 4 3 1 Prozedurdefinitions za sss s22202225 2220222 EES 19 4 3 2 Ge TE 20 4 3 3 BeispielprogrammMea usunnnsene 20 4 4 Auswahlanweisungen un rss44nnsensennnennsennnennnennnennnennnennnennnennnennnnnnnennnn 21 44 1 Eelere 21 4 4 2 Boolesche Operatoren und Auscdrucke nnna 22 4 4 3 leger 22 4 4 4 Bedingte Anweisung nenn 23 4 4 3 Meel EE Le EE 23 EE EEN Ela gereent EE ER 4 5 Wiederholungsanweisungen BEE 24 Ee ene EE 24 4 927 AO ANWEISUNG Sec ase see asee este eger este esereneregereneregerestregereseregerestre
18. Priorit t als der Operator besitzt Durch Einschlie en von booleschen Ausdr cken in runde Klammern k nnen Sie die Abarbeitungsfolge der Operatoren beeinflussen 4 4 3 Blockanweisung Mit Hilfe der Blockanweisung lassen sich mehrere Anweisungen zu einer Einheit zusammenfassen Syntaktisch gesehen handelt es sich bei einer Blockanweisung um eine zusammengesetzte Anweisung Innerhalb von geschweiften Klammern steht eine andere Anweisung im Allgemeinen eine Anweisungssequenz Beim Ausf hren einer Blockanweisung werden die innerhalb der geschweiften Klammern stehenden Anweisungen ausgef hrt 22 4 4 4 Bedingte Anweisung Die bedingte Anweisung die auch if Anweisung genannt wird ist eine zusammengesetzte Anweisung Die bedingte Anweisung wird eingeleitet durch das Schl sselwort if Anschlie end folgen innerhalb eines runden Klammernpaares ein boolescher Ausdruck und danach eine Anweisung Bei dieser Anweisung die im Folgenden true Anweisung genannt wird handelt es sich im Allgemeinen um eine Blockanweisung Beim Ausf hren einer bedingten Anweisung wird zun chst der boolesche Ausdruck innerhalb der runden Klammern ausgewertet Falls dieser Ausdruck den Wert true liefert d h die Bedingung erf llt ist wird die true Anweisung daher der Name ausgef hrt Liefert der boolesche Ausdruck den Wert false dann wird die true Anweisung nicht ausgef hrt 4 4 5 Alternativanweisung Die Alternativanweisung ist eine bedingte Anweis
19. Programmierung anhand des Java Hamster Modells vorgestellt Das Buch geht langsam und schrittweise vor Es enth lt viele Beispiele und auch eine Reihe von Aufgaben an denen Sie unmittelbar ausprobieren k nnen ob Sie die vorgestellten Konzeote nicht nur verstanden haben sondern auch selbstst ndig beim L sen von Problemen einsetzen k nnen Das Buch ist insbesondere f r solche Programmieranf nger zu empfehlen die sich beim Erlernen der Programmierung schwer tun Mehr Informationen und auch Links zu Leseproben gibt es auf der Java Hamster Website www java hamster modell de Es gibt heutzutage unz hlige Lehrb cher zu Java und es ist schwer zu sagen f r wen welches Buch das geeignetste ist Viele B cher stehen bei Amazon oder Google Books zumindest auszugsweise online zur Verf gung und ich kann nur empfehlen ber diese Online Angebote selbst einmal in die B cher hineinzuschnuppern Neben dem Java Hamster Buch kann ich die beiden weiteren B cher insbesondere f r Programmieranf nger empfehlen e Ratz D Scheffler J Seese D und Wiesenberger J Grundkurs Programmieren in Java Band 1 Hanser Verlag e Heinisch C M ller F und Goll J Java als erste Programmiersprache Vieweg Teubner Zum Java Hamster Modell gibt es zwei weitere B cher e Boles D und Boles C Objektorientierte Programmierung spielend gelernt mit dem Java Hamster Modell Vieweg Teubner e Boles D Parallele Programmierung spielend ge
20. Um 4 6 Boolesche Funktionen W hrend Prozeduren dazu dienen den Befehlsvorrat des Hamsters zu erweitern dienen boolesche Funktionen dazu neue Testbefehle einzuf hren 4 6 1 Boolesche return Anweisung Boolesche return Anweisungen werden in booleschen Funktionen zum Liefern eines booleschen Wertes ben tigt Die Syntax der booleschen return Anweisung ist sehr einfach Dem Schl sselwort return folgt ein boolescher Ausdruck und ein abschlie endes Semikolon Boolesche return Anweisungen sind spezielle Anweisungen die ausschlie lich im Funktionsrumpf boolescher Funktionen verwendet werden d rfen Die Ausf hrung einer booleschen return Anweisung w hrend der Ausf hrung einer booleschen Funktion f hrt zur unmittelbaren Beendigung der Funktionsausf hrung Dabei wird der Wert des booleschen Ausdrucks als so genannter Funktionswert zur ckgegeben 4 6 2 Definition boolescher Funktionen Die Syntax der Definition einer booleschen Funktion unterscheidet sich nur geringf gig von der Definition einer Prozedur Statt Prozedurkopf name und rumpf spricht man hier von Funktionskopf Funktionsname und Funktionsrumpf Anstelle des Schl sselwortes void bei der Definition einer Prozedur muss bei der Definition einer booleschen Funktion das Schl sselwort boolean am Anfang des Funktionskopfes stehen Ganz wichtig bei der Definition boolescher Funktionen ist jedoch folgende Zusatzbedingung In jedem m glichen Weg durch die Funktion muss
21. Wertes einen Wert vom Typ int liefern m ssen 4 8 2 Funktionsaufruf Der Aufruf von int Funktionen entspricht einem speziellen arithmetischen Ausdruck int Funktionen d rfen also berall dort aufgerufen werden wo arithmetische Ausdr cke stehen d rfen Der Aufruf einer int Funktion erfolgt wie der Aufruf einer booleschen Funktion syntaktisch durch die Angabe des Funktionsnamens gefolgt von einem runden Klammernpaar Beim Aufruf einer int Funktion wird in den Funktionsrumpf verzweigt und die dortigen Anweisungen werden ausgef hrt Als Wert des aritnmetischen Ausdrucks wird in diesem Fall der Wert genommen den die Funktion berechnet und mit Hilfe einer return Anweisung geliefert hat 4 8 3 Verallgemeinerung des Funktionskonzeptes Neben den Datentypen boolean und int gibt es in Java und in anderen Programmiersprachen weitere Datentypen auf deren Einf hrung im Hamster Modell zun chst verzichtet wird f r die das Funktionskonzept aber entsprechend gilt Funktionen k nnen prinzipiell wie Prozeduren auch in Form von Anweisungen aufgerufen werden Der gelieferte Funktionswert wird dann einfach ignoriert Prozeduren werden ab jetzt als Spezialform von Funktionen aufgefasst Sie liefern keinen Wert was durch das Schl sselwort void bei ihrer Definition ausgedr ckt wird Der G ltigkeitsbereich von Funktionen erstreckt sich ber ein gesamtes Programm Insbesondere d rfen Funktionen auch schon vor ihrer Definition aufgerufen werden We
22. alb machen Sie ruhig am Anfang mal absichtlich Fehler und versuchen Sie die Meldungen des Compilers zu verstehen Tipp Arbeiten Sie die Fehler die der Compiler entdeckt hat immer von oben nach unten ab Wenn Sie eine Meldung dann berhaupt nicht verstehen compilieren Sie ruhig erst mal erneut H ufig ist es leider so dass der Compiler f r einen einzelnen Fehler mehrere Fehlermeldungen ausgibt was Anf nger leicht verwirren kann Nachdem Sie die Fehler korrigiert haben m ssen Sie das Programm erneut compilieren Wiederholen Sie dies so lange bis der Compiler die Meldung Compilierung erfolgreich ausgibt Erst dann k nnen Sie das Programm ausf hren 5 5 Ausf hren eines Hamster Programms Nach dem erfolgreichen Compilieren ist es endlich soweit Wir k nnen den Hamster bei der Arbeit beobachten Macht er wirklich das was wir ihm durch unser Programm beigebracht haben Zum Steuern der Programmausf hrung dienen die Buttons rechts in der Toolbar Durch Anklicken des Simulation starten Buttons 15 Button von links starten wir das Programm Wenn Sie bis hierhin alles richtig gemacht haben sollte der Hamster loslaufen und wie im Programm beschrieben zwei K rner einsammeln Herzlichen Gl ckwunsch zu Ihrem ersten Hamster Programm Wollen Sie die Programmausf hrung anhalten k nnen Sie dies durch Anklicken des Simulation pausieren Buttons 17 Button von links erreichen Der Hamster pausiert so lange bis Sie w
23. alten Es ist jedoch auch m glich w hrend der Programmausf hrung noch Umgestaltungen vorzunehmen 6 4 1 Ver ndern der Gr e des Hamster Territoriums Durch Anklicken des Gr e ndern Buttons 9 Toolbar Button von links k nnen Sie die Gr e des Territoriums ver ndern Es ffnet sich eine Dialogbox mit zwei Eingabefelder in denen Sie die gew nschte Reihen und Spaltenanzahl eingeben k nnen Nach Dr cken des OK Buttons schlie t sich die Dialogbox und das Territorium erscheint in der angegebenen Gr e Achtung Wenn Sie das Territorium verkleinern werden Mauern und K rner die sich dann au erhalb des Territoriums befinden w rden gel scht Steht der Hamster beim Verkleinern auf einer Kachel au erhalb der neuen Territoriumsgr e wird er auf die Kachel 0 0 versetzt eine u U sich dort befindende Mauer wird zuvor gel scht 58 6 4 2 Umplatzieren des Hamsters im Hamster Territorium Um den Hamster im Hamster Territorium auf eine andere Kachel zu platzieren klicken Sie ihn mit der Maus an und ziehen ihn bei gedr ckter Maustaste auf die gew nschte Kachel 6 4 3 Setzen der Blickrichtung des Hamsters Um die Blickrichtung des Hamsters zu ndern klicken Sie bitte den Hamster drehen Button 10 Toolbar Button von links an Bei jedem Klick auf diesen Button dreht sich der Hamster um 90 Grad linksum 6 4 4 Abfragen und Festlegen der K rneranzahl im Maul des Hamsters Um die Anzahl an K rnern im Mau
24. amster agiert Requisiten sind Mauern und K rner Wenn Ihnen also beim Umgang mit dem Hamster Simulator der Begriff Solist begegnet kennen Sie nun hiermit den Hintergrund dieser Namenswahl Mehr Informationen zu Solist finden Sie im WWW unter www programmierkurs java de solist 1 5 Aufbau des Benutzerhandbuch Das Benutzungshandbuch ist in 8 Kapitel gegliedert Nach dieser Einleitung wird in Kapitel 2 die Installation des Hamster Simulators beschrieben Kapitel 3 stellt ausf hrlich das Hamster Modell vor Eine bersicht ber die Programmierkonzepte 10 der imperativen Programmierung mit dem Hamster Modell bzw Java gibt Kapitel 4 Wie Sie Ihr erstes Hamster Programm zum Laufen bringen erfahren Sie kurz und knapp in Kapitel 5 Dieses enth lt eine knappe Einf hrung in die Elemente und die Bedienung des Hamster Simulators Sehr viel ausf hrlicher geht dann Kapitel 6 auf die einzelnen Elemente und die Bedienung des Hamster Simulators ein Kapitel 7 demonstriert an einigen Beispielprogrammen die Programmierung mit dem Java Hamster Kapitel 8 enth lt letztendlich Hinweise zu guter Begleitliteratur zum Erlernen der Programmierung mit Java 11 2 Installation 2 1 Voraussetzungen Voraussetzung zum Starten des Hamster Simulators ist ein Java Development Kit SE JDK der Version 6 oder h her Ein Java Runtime Environment SE JRE reicht nicht aus Das jeweils aktuelle JDK kann ber die Website http java sun com javase downl
25. auf der er gerade steht um 90 Grad entgegen dem Uhrzeigersinn e nimm Der Hamster frisst von der Kachel auf der er sich gerade befindet genau ein Korn d h anschlie end hat der Hamster ein Korn mehr im Maul und auf der Kachel liegt ein Korn weniger als vorher e gib Der Hamster legt auf der Kachel auf der er sich gerade befindet genau ein Korn aus seinem Maul ab d h er hat anschlie end ein Korn weniger im Maul und auf der Kachel liegt ein Korn mehr als vorher Wie Sie vielleicht schon festgestellt haben k nnen bei den Befehlen vor nimm und gib Probleme auftreten e Der Hamster bekommt den Befehl vor und die Kachel in Blickrichtung vor ihm ist durch eine Mauer blockiert e Der Hamster bekommt den Befehl nimm und auf der Kachel auf der er sich gerade befindet liegt kein einziges Korn e Der Hamster bekommt den Befehl gib und er hat kein einziges Korn im Maul Bringen Sie den Hamster in diese f r ihn unl sbaren Situationen dann ist der Hamster derart von Ihnen entt uscht dass er im Folgenden nicht mehr bereit ist weitere Befehle auszuf hren Derartige Fehler werden Laufzeitfehler genannt Laufzeitfehler k nnen im Allgemeinen nicht schon durch den Compiler entdeckt werden sondern treten erst w hrend der Ausf hrung eines Programmes auf Programme die zu Laufzeitfehlern f hren k nnen sind nicht korrekt 4 2 2 Anweisungen In imperativen Programmiersprachen werden Verarbeitungsvorschriften durch s
26. chel l schen Button 14 Toolbar Button von links anklicken Dadurch aktivieren Sie die Kachel L schen Funktion Sie erkennen dies daran dass der Hintergrund des Buttons nun dunkler erscheint Solange die Funktion aktiviert ist k nnen Sie nun durch Anklicken einer Kachel diese Kachel l schen Eine Deaktivierung der Kachel L schen Funktion ist durch erneutes Anklicken des Kachel l schen Buttons m glich Eine Deaktivierung erfolgt automatisch wenn ein anderer der Buttons zum Territorium Gestalten gedr ckt wird Eine weitere M glichkeit K rner oder Mauern im Territorium wieder zu l schen besteht darin ber den entsprechenden Elementen mit Hilfe der rechten Maustaste ein Popup Men zu aktivieren und das darin erscheinende Item L schen anzuklicken 6 4 8 Abspeichern eines Hamster Territoriums Sie k nnen einmal gestaltete Hamster Territorien in einer Datei abspeichern und sp ter wieder laden Zum Abspeichern des aktuellen Territoriums aktivieren Sie im Men B hne das Men lItem Speichern unter Es ffnet sich eine Dateiauswahl Dialogbox Hierin k nnen Sie den Ordner ausw hlen und den Namen einer Datei eingeben in die das aktuelle Territorium gespeichert werden soll 60 Weiterhin ist es m glich das aktuell Territorium als Bild gif oder png Datei abzuspeichern Eine entsprechende Funktion findet sich im B hne Men 6 4 9 Wiederherstellen eines abgespeicherten Hamster Territoriu
27. d der im Hauptspeicher Speicherplatz f r eine Variable reserviert ist Es gilt dabei Die Lebensdauer einer globalen Variablen umfasst die gesamte Ausf hrungszeit eines Hamster Programms Die Lebensdauer einer lokalen Variablen beginnt bei ihrer Definition und endet nach der vollst ndigen Abarbeitung des Blocks in dem sie definiert wurde 4 7 8 Beispielprogramm Im folgenden Programm l uft der Hamster bis zur n chsten Wand Anschlie end dreht er sich um und l uft zum Ausgangsfeld zur ck Die Anzahl der gelaufenen Schritte merkt er sich dabei in einer globalen Variablen anzahl int anzahl 0 globale Variable void laufeBisZurWand while vornFrei vor anzahl anzahl 1 Zuweisung void laufeZurueckZumAusgangspunkt while anzahl gt 0 Vergleichsausdruck vor anzahl anzahl 1 void main laufeBisZurWand linksUm linksUm laufeZurueckZumAusgangspunkt 4 8 int Funktionen Boolesche Funktionen liefern einen Wert vom Typ boolean Dementsprechend sind int Funktionen Funktionen die einen Wert vom Typ int also eine ganze Zahl liefern 31 4 8 1 Funktionsdefinition Die Definition einer int Funktion unterscheidet sich nur dadurch von der Definition einer booleschen Funktion dass im Funktionskopf das Schl sselwort boolean gegen das Schl sselwort int ausgetauscht werden muss und die im Funktionsrumpf obligatorischen return Anweisungen anstelle eines booleschen
28. den dort angeboten 55 e Einr ckung Durch Anklicken des Men ltems wird der Einr ck Modus aktiviert bzw deaktiviert Ist der Einr ck Modus aktiviert werden beim Eingeben von Text im Editor Bereich automatisch Einr ckungen an die entsprechende Spalte vorgenommen wenn Sie die Enter Taste dr cken e Schriftgr e Hierber k nnen Sie die Schriftgr e des Editor Bereichs anpassen 6 3 Compilieren von Hamster Programmen Beim Compilieren werden Programme genauer gesagt der Sourcecode auf ihre syntaktische Korrektheit berpr ft und im Erfolgsfall ausf hrbare Programme erzeugt Zum Compilieren von Programmen dient im Hamster Simulator der Compilieren Button erster Button der Toolbar von links bzw das Men Item Compilieren im Programm Men siehe Abbildung 6 13 An der Farbe des Compilier Buttons k nnen Sie erkennen ob Compilieren aktuell notwendig ist oder nicht Immer wenn Sie nderungen im Editor Bereich vorgenommen haben erscheint der Button rot und die nderungen werden erst dann ber cksichtigt wenn Sie erneut compiliert haben Erscheint der Button in einer neutralen Farbe ist kein Compilieren notwendig 6 3 1 Compilieren Wenn Sie den Compilieren Button anklicken wird das Programm das gerade im Editor Bereich sichtbar ist in einer internen Datei mit dem Namen Solist java abgespeichert und kompiliert Wenn Ihr Programm syntaktisch korrekt ist erscheint nach ein paar Sekunde
29. den oder im n chsten Abschnitt im Detail nachlesen 45 6 Bedienung des Hamster Simulators Im letzten Abschnitt haben Sie eine kurze Einf hrung in die Funktionalit t des Hamster Simulators erhalten In diesem Abschnitt werden die einzelnen Funktionen des Simulators nun im Detail vorgestellt Dabei wird sich nat rlich einiges auch wiederholen Wenn Sie den Hamster Simulator starten ffnen sich ein Fenster mit dem Titel Hamster Simulator Light Abbildung 6 1 skizziert die einzelnen Komponenten des Fensters Men leiste Toolbar RK ix gt Editor Bereich Meldungsbereich Simulationsbereich Abb 6 1 Komponenten des Simulator Fensters Die Men leiste oben im Fenster beinhaltet 5 Men s Darunter ist eine Toolbar mit Buttons platziert ber die die wichtigsten Funktionen der Men s durch Anklicken eines Buttons schneller ausgef hrt werden k nnen Ganz unten im Meldungsbereich werden wichtige Meldungen ausgegeben Die Eingabe von Hamster Programmen erfolgt im Editor Bereich links und die Ausf hrung von Hamster Programmen wird im Simulationsbereich auch B hne genannt visualisiert Als Hauptfunktionsbereiche des Hamster Simulators lassen sich identifizieren 46 Verwalten und Editieren von Hamster Programmen Compilieren von Hamster Programmen Verwalten und Gestalten von Hamster Territorien Interaktives Ausf hren von Hamster Befehlen Ausf hren von Hamster Programmen Debuggen von Hamster Programmen
30. des Editor Bereichs in einem Schritt l schen Markieren Sie die zu l schende Passage mit der Maus und klicken Sie dann den Button an Der markierte Text verschwindet e Kopieren Button 5 Toolbar Button von links Hiermit k nnen Sie komplette Passagen des Editor Bereichs in einen Zwischenpuffer kopieren Markieren Sie die zu kopierende Passage mit der Maus und klicken Sie dann den Button an e Einf gen Button 6 Toolbar Button von links Hiermit k nnen Sie den Inhalt des Zwischenpuffers an die aktuelle Cursorposition einf gen W hlen Sie zun chst die entsprechende Position aus und klicken Sie dann den Button an Der Text des Zwischenpuffers wird eingef gt e R ckg ngig Button 7 Toolbar Button von links Wenn Sie durchgef hrte nderungen des Sourcecode aus welchem Grund auch immer wieder r ckg ngig machen wollen k nnen Sie dies durch Anklicken des Buttons bewirken e Wiederherstellen Button 8 Toolbar Button von links R ckg ngig gemachte nderungen k nnen Sie mit Hilfe dieses Buttons wieder herstellen Die Funktionalit ten Kopieren und Einf gen funktionieren brigens auch ber einzelne Programme hinaus Es ist sogar m glich mit Hilfe der Betriebssystem Kopieren Funktion Text aus anderen Programmen bspw Microsoft Word zu kopieren und hier einzuf gen Die gerade aufgelisteten Funktionen finden Sie auch im Programm Men Als zus tzliche Funktionalit ten wer
31. des entsprechenden aktuellen Parameters initialisiert Man spricht in diesem Zusammenhang auch von Parameter bergabe Der Wert eines aktuellen Parameters wird beim Aufruf einer Funktion einem formalen Parameter der Funktion als Initialisierungswert bergeben 4 9 4 berladen von Funktionen Eigentlich m ssen Funktionsnamen in einem Programm eindeutig sein Zwei oder mehrere Funktionen d rfen jedoch denselben Namen besitzen falls sich ihre formalen Parameterlisten durch die Anzahl an Parametern oder die Typen der Parameter unterscheiden Man nennt dieses Prinzip auch berladen von Funktionen Die tats chlich aufgerufene Funktion wird dann beim Funktionsaufruf anhand der Anzahl bzw Typen der aktuellen Parameterliste bestimmt 4 9 5 Beispielprogramm Im folgenden Beispielprogramm wird eine Funktion vor mit einem formalen Parameter anzahl vom Typ int definiert Die Funktion berl dt dabei die Funktion die den Hamster Befehl vor repr sentiert Der Wert von anzahl gibt an um wie viele Kacheln der Hamster nach vorne springen soll Der Wert braucht dabei erst zur Laufzeit beim Aufruf der Funktion angegeben werden In der main Funktion wird die Funktion vor einmal mit dem Wert 4 aufgerufen d h der Hamster soll vier Kacheln nach vorne springen Beim zweiten Aufruf wird als Wert die Anzahl an K rnern die sich im Maul des Hamsters befinden bergeben Entsprechend oft h pft der Hamster nach vorne der Hamster huepft anzahl mal vor ma
32. durch definiert dass dreimal der Befehl 1inksUm aufgerufen wird und wird diese Prozedur rechtsUm im Befehlsfenster aktiviert dreht sich der Hamster tats chlich nur einmal um 90 Grad nach rechts Dauert die Ausf hrung eines Befehls mehr als 5 Sekunden vermutlich enth lt dann die Funktion eine Endlosschleife wird der Befehl abgebrochen und der Hamster Simulator wird komplett auf seinen Startzustand zur ckgesetzt 6 5 2 Parameter Besitzt eine Prozedur oder Funktion Parameter erscheint nach ihrer Aktivierung im Befehlsfenster eine Dialogbox in der die entsprechenden aktuellen Parameterwerte eingegeben werden m ssen Hinweis Aktuell wird nur die Eingabe von Werten der Java Standard Datentypen int boolean float sowie die Eingabe von Zeichenketten Strings unterst tzt 6 5 3 R ckgabewerte von Funktionen Bei der Ausf hrung von Funktionen wird der jeweils gelieferte Wert in einem Dialogfenster dargestellt 6 5 4 Befehls Popup Men Alternativ zur Benutzung des Befehlsfensters ist es auch m glich ber ein Popup Men die Hamster Befehle interaktiv auszuf hren Sie k nnen dieses Popup Men durch Dr cken der rechten Maustaste oberhalb des Hamsters im Territorium aktivieren siehe Abbildung 6 16 Hamster b void main void rechtsUm Abb 6 16 Befehls Popup Men 62 6 6 Ausf hren von Hamster Programmen Ausgef hrt werden k nnen erfolgreich compilierte Hamster Programme mit Hilfe d
33. durch ein gegebenes Hamster Territorium steuern kann Sie k nnen sich den Hamster quasi als einen virtuellen Prozessor vorstellen der im Gegensatz zu realen Computer Prozessoren zun chst keine arithmetischen und logischen Operationen ausf hren kann sondern in der Lage ist mit einem kleinen Grundvorrat an Befehlen ein Hamster Territorium zu erkunden Diese 14 Befehle werden im Folgenden aufgelistet und im kommenden Kapitel genauer vorgestellt void vor Der Hamster h pft eine Kachel in seiner aktuellen Blickrichtung nach vorne void linksUm Der Hamster dreht sich auf der Kachel auf der er gerade steht um 90 Grad entgegen dem Uhrzeigersinn void nimm Der Hamster frisst von der Kachel auf der er sich gerade befindet genau ein Korn d h anschlie end hat der Hamster ein Korn mehr im Maul und auf der Kachel liegt ein Korn weniger als vorher void gib Der Hamster legt auf der Kachel auf der er sich gerade befindet genau ein Korn aus seinem Maul ab d h er hat anschlie end ein Korn weniger im Maul und auf der Kachel liegt ein Korn mehr als vorher boolean vornFrei Liefert den Wert true falls sich auf der Kachel in Blickrichtung vor dem Hamster keine Mauer befindet Ist die Kachel durch eine Mauer blockiert dann wird der Wert false geliefert boolean maulLeer Liefert den Wert false falls der Hamster ein oder mehrere K rner im Maul hat Befinden sich keine K rner im Maul des Hamsters dann wird der Wert tru
34. e geliefert boolean kornDa Liefert den Wert true falls auf der Kachel auf der der Hamster gerade steht ein oder mehrere K rner liegen Befindet sich kein Korn auf der Kachel dann wird der Wert false geliefert 15 4 Imperative Programmierkonzepte der Programmierspra che Java In diesem Kapitel werden die Befehle die der Hamster kennt genauer erl utert Au erdem enth lt dieses Kapitel eine Zusammenfassung der wichtigsten Programmierkonzepte der imperativen Programmierung mit Java Im Detail und sehr ausf hrlich werden diese Konzepte im Buch Programmieren spielend gelernt mit dem Java Hamster Modell erschienen im Vieweg Teubner Verlag vorgestellt Wenn Sie noch berhaupt keine Kenntnisse der Programmierung haben empfehle ich Ihnen sich Informationen zu den allgemeinen Grundlagen der Programmierung auf der folgenden Website durchzulesen Leseprobe des Java Hamster Buches http www is informatik uni oldenburg de dibo hamster leseprobe nodes3 html 4 1 Grundlagen Der Zeichenvorrat die Lexikalik den Sie beim Erstellen von Hamster Programmen verwenden d rfen entspricht dem 16 Bit Zeichensatz Unicode Die Token einer Sprache auch lexikalische Einheiten genannt sind die W rter auf denen sie basiert Wenn Sie Ihr Programm compilieren teilt der Compiler Ihren Quellcode in Token auf und versucht herauszufinden welche Anweisungen Bezeichner und andere Elemente der Quellcode enth lt Token m ssen in Java du
35. efinition auch formale Parameter oder Parametervariablen 4 9 2 Aktuelle Parameter Der Funktionsaufruf wird durch die Angabe einer aktuellen Parameterliste zwischen den runden Klammern erweitert Die durch Kommata getrennten Elemente dieser Liste werden als aktuelle Parameter bezeichnet Hierbei handelt es sich um Ausdr cke 4 9 3 Parameter bergabe Bez glich der Definition von Funktionen mit formalen Parametern und dem Aufruf von Funktionen mit aktuellen Parametern sind folgende zus tzliche Bedingungen zu beachten e Die Anzahl der aktuellen Parameter beim Aufruf einer Funktion muss gleich der Anzahl der formalen Parameter der Funktionsdefinition sein Ausnahme so genannte varargs Parameter e F r alle Parameter in der angegebenen Reihenfolge muss gelten Der Typ eines aktuellen Parameters muss konform sein zum Typ des entsprechenden formalen Parameters boolesche Ausdr cke sind konform zum Typ boolean arithmetische Ausdr cke sind konform zum Typ int 34 Wird eine Funktion mit Parametern aufgerufen so passiert folgendes Die aktuellen Parameter hierbei handelt es sich ja um Ausdr cke werden berechnet und zwar immer von links nach rechts falls es sich um mehr als einen Parameter handelt F r jeden formalen Parameter der formalen Parameterliste wird im Funktionsrumpf eine lokale Variable angelegt Diese Variablen werden anschlie end bei Beachtung der Reihenfolge innerhalb der Parameterlisten mit dem Wert
36. ehlern k nnen ist es mit Hilfe dieses Buttons m glich den Hamster Simulator zu reinitialisieren 6 7 Debuggen von Hamster Programmen Debugger sind Hilfsmittel zum Testen von Programmen Sie erlauben es w hrend der Programmausf hrung den Zustand des Programms zu beobachten und gegebenenfalls sogar interaktiv zu ndern Damit sind Debugger sehr hilfreich wenn es um das Entdecken von Laufzeitfehlern und logischen Programmfehlern geht Der Debugger des Hamster Simulators erm glicht w hrend der Ausf hrung eines Hamster Programms das Beobachten des Programmzustands Sie k nnen sich w h rend der Ausf hrung eines Hamster Programms anzeigen lassen welche Anweisung des Sourcecodes gerade ausgef hrt wird und welche Werte die Variablen aktuell speichern Die interaktive nderung von Variablenwerten wird aktuell nicht unterst tzt Die Funktionen des Debuggerss sind eng mit den Funktionen zur Programmausf hrung verkn pft Sie finden die Funktionen im Men Simulation Es bietet sich jedoch an die entsprechenden Buttons der Toolbar zu verwenden Neben 64 dem Start Fortsetzen dem Pause und dem Stopp Button geh ren die zwei Buttons Schrittweise Ausf hrung und Ablaufverfolgung zu den Debugger Funktionen siehe auch Abbildung 6 18 Ablaufverfolgung _ gt D dd es 4 Schrittweise Ausf hrung Abb 6 18 Debugging Buttons der Toolbar 6 7 1 Beobachten der Programmausf hrung Durch Anklicken de
37. eine boolesche return Anweisung auftreten Boolesche Funktionen k nnen berall dort in einem Hamster Programm definiert werden wo auch Prozeduren definiert werden k nnen 26 4 6 3 Aufruf boolescher Funktionen Eine boolesche Funktion darf berall dort aufgerufen werden wo auch einer der drei vordefinierten Testbefehle aufgerufen werden darf Der Aufruf einer booleschen Funktion gilt also als ein spezieller boolescher Ausdruck Der Funktionsaufruf erfolgt syntaktisch durch die Angabe des Funktionsnamens gefolgt von einem runden Klammernpaar Wird bei der Berechnung eines booleschen Ausdrucks eine boolesche Funktion aufgerufen so wird in deren Funktionsrumpf verzweigt und es werden die dortigen Anweisungen aufgerufen Wird dabei eine boolesche return Anweisung ausgef hrt so wird der Funktionsrumpf unmittelbar verlassen und an die Stelle des Funktionsaufrufs zur ckgesprungen Der von der booleschen return Anweisung gelieferte Wert also der Funktionswert wird dabei zur Berechnung des booleschen Ausdrucks weiterverwendet 4 6 4 Beispielprogramm Im folgenden Programm sucht der Hamster auf der rechten Seite eine Nische Findet er eine begibt er sich hinein Beim Suchen benutzt er eine boolesche Funktion rechtFrei void kehrt linksUm linksUm void rechtsum kehrt linksUm boolean rechtsFrei Definition einer booleschen Funktion rechtsUm if vornFrei linksUm return true
38. eitig verlassen werden 4 3 3 Beispielprogramm Im folgenden Hamster Programm wird eine Prozedur rechtsUm definiert und aufgerufen die bewirkt dass sich der Hamster dreimal nach links dreht was einer Rechtsdrehung um 90 Grad entspricht Der Hamster frisst in dem in Abbildung 4 3 skizzierten Territorium zwei K rner void rechtsUm Prozedurdefinition linksUm linksUm linksUm void main main Prozedur friss erstes Korn rechtsUm Prozeduraufruf vor vor nimm riss zweites Korn rechtsUm Prozeduraufruf vor 20 vor nimm Abb 4 3 Hamster Territorium zum Beispielprogramm 4 4 Auswahlanweisungen Auswahlanweisungen dienen dazu bestimmte Anweisungen nur unter bestimmten Bedingungen ausf hren zu lassen 4 4 1 Testbefehle Um Laufzeitfehler zu vermeiden die ja bspw dadurch entstehen k nnen dass Sie dem Hamster den Befehl vor geben obwohl er vor einer Mauer steht existieren drei so genannte Testbefehle Testbefehle liefern boolesche Werte also wahr true oder falsch false e vornFrei Liefert den Wert true falls sich auf der Kachel in Blickrichtung vor dem Hamster keine Mauer befindet Ist die Kachel durch eine Mauer blockiert dann wird der Wert false geliefert 21 e maulLeer Liefert den Wert false falls der Hamster ein oder mehrere K rner im Maul hat Befinden sich keine K rner im Maul des Hamsters dann wird der Wert true ge
39. ems ausl sen w rde Manchmal erscheinen bestimmte Men ltems etwas heller Man sagt auch sie sind ausgegraut In diesem Fall kann man das Men Item nicht anklicken und die 48 zugeordnete Aktion nicht ausl sen Das Programm befindet sich in einem Zustand in dem die Aktion keinen Sinn machen w rde 6 1 5 Toolbar Direkt unterhalb der Men leiste ist die so genannte Toolbar angeordnet siehe Abbildung 6 5 Sie besteht aus einer Menge an Graphik Buttons die Alternativen zu den am h ufigsten benutzten Men Items der Men s darstellen DI B Xip Abb 6 5 Toolbar 6 1 6 Popup Men Popup Men s sind spezielle Men s die bestimmten Elementen auf dem Bildschirm zugeordnet sind siehe Abbildung 6 6 Man ffnet sie dadurch dass man den Maus Cursor auf das entsprechende Element verschiebt und danach die rechte Maustaste dr ckt Genauso wie bei normalen Men s erscheint dann eine Box mit Men Items Hamster kr void main void rechtsUm Abb 6 6 Popup Men 6 1 7 Eingabefeld Eingabefelder dienen zur Eingabe von Zeichen siehe Abbildung 6 7 Positionieren Sie dazu den Maus Cursor auf das Eingabefeld und klicken Sie die Maus Anschlie end k nnen Sie ber die Tastatur Zeichen eingeben die im Eingabefeld erscheinen 6 1 8 Dialogbox Beim Ausl sen bestimmter Aktionen erscheinen so genannte Dialogboxen auf dem Bildschirm siehe Abbildung 6 7 Sie enthalten in der Regel eine Menge von grap
40. er in Abbildung 6 17 skizzierten Buttons der Toolbar Alle Funktionen sind dar ber hinaus auch ber das Men Simulation aufrufbar Fortsetzen zur cksetzen I d e 4 4 4 Pause R cksetzen Geschwindigkeit Abb 6 17 Simulationsbuttons der Toolbar 6 6 1 Starten eines Hamster Programms Bevor ein Hamster Programm ausgef hrt werden kann muss es erfolgreich compiliert worden sein Gestartet werden kann das aktuelle Hamster Programm dann durch Anklicken des Start Fortsetzen Buttons 15 Toolbar Button von links Nach dem Starten eines Hamster Programms wird der Hamster im Hamster Territorium aktiv und tut das was das Programm ihm vorgibt W hrend des Ausf hrens eines Hamster Programms wird der Editor Bereich ausgegraut d h es k nnen w hrend der Ausf hrung eines Programms keine nderungen am Sourcecode durchgef hrt werden 6 6 2 Stoppen eines Hamster Programms Die Ausf hrung eines Hamster Programms kann durch Anklicken des Stopp Buttons 18 Button der Toolbar von links jederzeit abgebrochen werden 6 6 3 Pausieren eines Hamster Programms M chten Sie ein in Ausf hrung befindliches Programm kurzfristig anhalten k nnen Sie dies durch Anklicken des Pause Buttons 17 Button der Toolbar von links tun Wenn Sie anschlie end auf den Start Fortsetzen Button klicken wird die Programmausf hrung fortgesetzt 6 6 4 W hrend der Ausf hrung eines Hamster Programms Treten bei der Au
41. erschieben und diesen anklicken Klicken Sie bspw auf den Button void vor dann h pft der Hamster in seiner aktuellen Blickrichtung eine Kachel nach vorne oder es erscheint eine Fehlermeldung wenn der Hamster vor einer Mauer steht Wenn Sie Programme mit Prozeduren oder Funktionen schreiben und erfolgreich kompilieren werden die Prozeduren und Funktionen brigens auch im Befehlsfenster angezeigt und k nnen interaktiv ausgef hrt werden Dabei werden keine Zwischenzust nde im Simulationsbeereich ausgegeben sondern immer der jeweilige Endzustand nach Abarbeitung der Funktion 5 2 Gestaltung eines Hamster Territoriums Nun wollen wir ein Hamster Territorium aufbauen in dem unser erstes Programm ablaufen soll Das geschieht im Simulationsbereich Hier wird das Hamster Territorium dargestellt Zur Gestaltung des Territoriums m ssen Sie die Buttons 9 14 von links in der so genannten Toolbar benutzen Diese werden auch als Gestaltungsbuttons bezeichnet Fahren Sie einfach mal mit der Maus ber die 38 einzelnen Buttons der Toolbar dann erscheint jeweils ein Tooltipp der beschreibt wozu dieser Button dient Zun chst werden wir die Gr e des Territoriums anpassen Klicken Sie dazu auf den Button Territoriumsgr e ndern 9 Button von links Es erscheint eine Dialogbox in der Sie die gew nschte Anzahl an Reihen und Spalten eingeben k nnen Um die dort erscheinenden Werte jeweils 10 ndern zu k nnen kl
42. es Ordners oder der Datei klicken Die textuelle Darstellung des Namens wird dann zu einem Eingabefeld in der man ber die Tastatur den Namen ver ndern kann 6 1 10 Elementbaum Ein Elementbaum repr sentiert Elemente und strukturelle Beziehungen zwischen ihnen bspw die Ordner und Dateien des Dateisystems siehe Abbildung 6 9 EI Solist solist o EI intl zahlen gt c3 int 0 CC intg 1 TN int 0 34 Nim pt 47 gt CH int 2 D int bis 101 KR int ergebnis 0 Abbi 6 9 Elementbaum mit Verzeichnissen und Dateien 51 Unterschiedliche Elementtypen werden dabei durch unterschiedliche Symbole dargestellt hinter denen entsprechende Bezeichnungen erscheinen Durch Anklicken der Symbole auf der linken Seite kann man Strukturen ffnen und schlie en d h Unterstrukuren sichtbar bzw unsichtbar machen Den Ordnern und Dateien sind Popup Men s zugeordnet Um diese zu ffnen muss man zun chst den Ordner bzw die Datei mit der Maus anklicken Der Name wird dann durch einen blauen Balken hinterlegt Anschlie end muss man die rechte Maustaste dr cken Dann ffnet sich das Popup Men Die Popup Men s enthalten bspw Men ltems zum L schen und Umbenennen des entsprechenden Ordners bzw der entsprechenden Datei 6 1 11 Split Pane Eine Split Pane ist ein Element das aus zwei Bereichen und einem Balken besteht siehe Abbildung 6 10 Die beiden Bereiche k nnen dabei links und rechts oder oberhalb und unterhalb des
43. eten Abb 6 13 Fehlermeldungen des Compilers Achtung Die Interpretation von Fehlermeldungen die der Compiler ausgibt ist nicht trivial Die Meldungen sind nicht immer besonders pr zise und oft auch irref hrend H ufig gibt der Compiler mehrere Fehlermeldungen aus obwohl es sich nur um einen einzelnen Fehler handelt Deshalb beherzigen Sie gerade am Anfang folgende Hinweise Arbeiten Sie die Fehlermeldungen immer von oben nach unten ab Wenn der Compiler eine gro e Menge von Fehlermeldungen liefert korrigieren Sie zun chst nur eine Teilmenge und kompilieren Sie danach erneut Bauen Sie 57 gerade als Programmieranf nger auch mal absichtlich Fehler in Ihre Programme ein und schauen Sie sich dann die Fehlermeldungen des Compilers an 6 4 Verwalten und Gestalten von Hamster Territorien Das Hamster Territorium umfasst standardm ig 10 Reihen und 10 Spalten Der Hamster steht auf der Kachel ganz oben links also der Kachel mit den Koordinaten 0 0 Er hat O K rner im Maul und schaut nach Osten In der Toolbar dienen die Buttons 9 14 von links zum Gestalten des Hamster Territoriums ber das Men B hne k nnen Hamster Territorien verwaltet werden siehe auch Abbildung 6 14 Gr e K rner im Mauer ndern Maul setzen e GK E E Hamster Korn Kachel drehen setzen l schen Abb 6 14 Territorium Buttons der Toolbar Normalerweise sollten Sie ein Territorium vor der Ausf hrung eines Programms gest
44. ewirken ist eine bessere Lesbarkeit des Programms In Java gibt es zwei Typen von Kommentaren Zeilenkommentare und Bereichskommentare Zeilenkommentare beginnen mit zwei Schr gstrichen und enden am n chsten Zeilenende Den Schr gstrichen k nnen beliebige Zeichen folgen Bereichskommentare beginnen mit der Zeichenkombination und enden mit der Zeichenkombination Dazwischen k nnen beliebige Zeichen stehen Bereichskommentare k nnen sich auch ber mehrere Zeilen erstrecken 4 2 5 Beispielprogramm Das folgende Hamster Programm bewirkt dass der Hamster in dem in Abbildung 4 2 skizzierten Territorium zwei K rner frisst void main friss erstes Korn vor vor nimm friss zweites Korn linksUm 18 vor vor nimm Abb 4 2 Hamster Territorium zum Beispielprogramm 4 3 Prozeduren Prozeduren dienen zur Vereinbarung neuer Befehle Diesbez glich sind zwei Aspekte zu betrachten die Definition von Prozeduren und deren Aufruf d h Ausf hrung 4 3 1 Prozedurdefinition Durch eine Prozedurdefinition wird ein neuer Befehl vereinbart In der Definition muss zum einen angegeben werden wie der Befehl hei t Prozedurname und zum anderen muss festgelegt werden was der Hamster tun soll wenn er den neuen Befehl erh lt Ersteres erfolgt im so genannten Prozedurkopf letzteres im so genannten Prozedurrumpf Im Prozedurkopf muss zun chst das Schl sselwort void angegeben werden An
45. gen und addiert die entsprechenden Koerneranzahlen while drehungen lt 3 linksUm nachbarKoerner nachbarKoerner koernerVorne Aufruf einer int Funktion drehungen drehungen 1 legt entsprechend viele Koerner ab solange er noch welche im Maul hat while nachbarKoerner gt 0 amp amp maulLeer gib nachbarKoerner nachbarKoerner 1 33 4 9 Funktionsparameter Das Parameterkonzept erh ht die Flexibilit t von Prozeduren und Funktionen 4 9 1 Formale Parameter Parameter sind lokale Variablen von Funktionen die dadurch initialisiert werden dass der Funktion bei ihrem Aufruf ein entsprechender Initialisierungswert f r die Variable bergeben wird Parameter werden im Funktionskopf definiert Zwischen die beiden runden Klammern wird eine so genannte formale Parameterliste eingeschoben Die Parameterliste besteht aus keiner einer oder mehreren durch Kommata getrennten Parameterdefinitionen Eine Parameterdefinition hat dabei eine hnliche Gestalt wie die Variablendefinition Was fehlt ist ein expliziter Initialisierungsausdruck In der Tat handelt es sich bei einem Parameter auch um eine ganz normale Variable Sie ist lokal bez glich des Funktionsrumpfes Ihr k nnen im Funktionsrumpf ihrem Typ entsprechend Werte zugewiesen werden und sie kann bei der Bildung von typkonformen Ausdr cken innerhalb des Funktionsrumpfes eingesetzt werden Man nennt die Parameter innerhalb der Funktionsd
46. geresereseren 24 SE NN e ET ee le EE 25 4 6 Boolesche Funktionen E 26 4 6 1 Boolesche return Anweisung AAA 26 4 6 2 Definition boolescher Funktionen unnnnnnnnnnnnnnnnnnnn nn 26 4 6 3 Aufruf boolescher Funktionen 27 4 6 4 Beispielorogramm ssssesessennnnnttrteererrrtttrtrtrnsntrnttrrtteennnnn nnt nn rennene 27 4 7 Variablen und Ausdr cke nn nn nn annnnnene nenn 28 4 7 1 Datentypen ee EE 28 47 24 ELE 28 4 3 Ausdr cken 28 E ZUWEISUNG EE 29 4 7 5 Vergleichsausdr cker 2 22222222 222222222 nn 30 4 7 6 G ltigkeitsbereiche von Vartablen AAA 30 4 7 7 Lebensdauer von Variablen nne 31 4 7 8 Beispielorogramm sssssesssernrrrnttteertrrrrttttttnntrn rtt tttttnnnn rnnt terne nnn nnna 31 4 8 EE ee 31 4 8 1 Funktionsdefinition e2 s2e2rseass eier eur eier 32 4 8 2 Funktionsaultuf Street 32 4 8 3 Verallgemeinerung des Funktionskonzeptes nnnsseeeesennnnneereenenn en 32 4 8 4 Beispielpr gra MM EE 32 4 97 ERREECHEN 34 4 91 Formale Parameter E 34 4 9 2 Aktuelle EN 34 4 9 3 Et e E 34 4 9 4 berladen von Funktionen s s sssenensnenoeneneneieinrnnernrnrnnnnrnrnrnnrsrnrnrnnne 35 4 9 5 Beisptelorogramm REENEN 35 4 10 ees 36 5 Ihr erstes Hamster Programm 22 22224244420040000nH0nnnnnn Hann Hann nnnnnnnn anne 37 5 1 Ausprobieren der Hamster Befehle nenne 38 5 2 Gestaltung eines Hamster Termtoums
47. greich Zur Best tigung m ssen Sie anschlie end noch den OK Button dr cken Das Programm kann nun ausgef hrt werden Merken Sie sich bitte Immer wenn Sie nderungen am Sourcecode Ihres Programms vorgenommen haben m ssen Sie es zun chst neu kompilieren Wenn das Programm syntaktische Fehler enth lt wenn Sie sich bspw bei der Eingabe des obigen Programms vertippt haben werden unter dem Editor Bereich die Fehlermeldungen des Compilers eingeblendet Diese erscheinen in englischer Sprache Weiterhin wird die Zeile angegeben in der der Fehler entdeckt wurde Wenn Sie mit der Maus auf die Fehlermeldung klicken springt der Maus Cursor im Editor Bereich automatisch in die angegebene Zeile siehe Abbildung 5 4 ER man 11 12 void ernteEineReiheUndLaufeZurueck 13 ernteEineReihe 14 kehrt 15 do 16 Es 15 void erntekinebeibei 19 Sammler 20 while vornFrei 2l vori 22 sammle E Problem Solist ja 15 illegal start of expression Solist ja 15 nota statement Solist ja 15 while expected Solist ja 3 illegal start of expression Solist ja 18 expected s sind Compilierfehler aufgetreten Abb 5 4 Fehlermeldungen des Compilers 42 Vorsicht Die Fehlermeldungen sowie die Zeilenangabe eines Compilers sind nicht immer wirklich exakt Das Interpretieren der Meldungen ist f r Programmieranf nger h ufig nicht einfach und bedarf einiger Erfahrungen Desh
48. hischen Objekten wie textuelle Informationen Eingabefelder und Buttons Wenn eine Dialogbox auf dem Bildschirm erscheint sind alle anderen Fenster des 49 Programms f r Texteingaben oder Mausklicks gesperrt Zum Schlie en einer Dialogbox d h um die Dialoxbox wieder vom Bildschirm verschwinden zu lassen dienen in der Regel eine Menge an Buttons die unten in der Dialogbox angeordnet sind Durch Anklicken eines OK Buttons wird dabei die der Dialogbox zugeordnete Aktion ausgel st Durch Anklicken des Abbrechen Buttons wird eine Dialogbox geschlossen ohne dass irgendwelche Aktionen ausgel st werden Territorium Gr e Reihen 10 Spalten 1 0 Ok Abbrechen Abb 6 7 Dialogbox mit Eingabefeldern 6 1 9 Dateiauswahl Dialogbox Dateiauswahl Dialogboxen sind spezielle Dialogboxen die zum Speichern und ffnen von Dateien benutzt werden siehe Abbildung 6 8 Sie spiegeln im Prinzip das Dateisystem wider und enthalten Funktionalit ten zum Verwalten von Dateien und Ordnern ffnen Suchen in C programs k Berg1 ter N Berg2 ter B BergErklimmen ham IR FeldAbgrasen ham IN FeldAbgrasen1 ter N FeldAbgrasen2 ter Dateiname FeldAbgrasen ham Dateityp Alle Dateien Abbrechen Abb 6 8 Dateiauswahl Dialogbox 50 Im mittleren Bereich einer Dateiauswahl Dialogbox erscheinen alle Dateien
49. hrung nennen 66 84 3 vBreakpoinNtS EEN 66 0 4 Debugger EE 67 8 8 e GT 68 T elei EE 70 EN e Ee EE 70 7 2 e KEN an E 71 7 3 Berg erklimmen objektorientierte Variante 72 8 Literatur zum Erlernen der Programmierung non nenn nennen 74 1 Einleitung Programmieranf nger haben h ufig Schwierigkeiten damit dass sie beim Programmieren ihre normale Gedankenwelt verlassen und in eher technisch orientierten Kategorien denken m ssen die ihnen von den Programmiersprachen vorgegeben werden Gerade am Anfang str men oft so viele inhaltliche und methodische Neuigkeiten auf sie ein dass sie das Wesentliche der Programmierung n mlich das L sen von Problemen aus den Augen verlieren 1 1 Das Hamster Modell Das Hamster Modell ist mit dem Ziel entwickelt worden dieses Problem zu l sen Mit dem Hamster Modell wird Programmieranf ngern ein einfaches aber m chtiges Modell zur Verf gung gestellt mit dessen Hilfe Grundkonzepte der imperativen Programmierung auf spielerische Art und Weise erlernt werden k nnen Programmierer entwickeln so genannte Hamster Programme mit denen sie einen virtuellen Hamster durch eine virtuelle Landschaft steuern und bestimmte Aufgaben l sen lassen Die Anzahl der gleichzeitig zu ber cksichtigenden Konzepte wird im Hamster Modell stark eingeschr nkt und nach und nach erweitert Prinzipiell ist das Hamster Modell programmiersprachenunabh ngig Zum praktischen Umgang mit dem Modell wurde jedoch bewu
50. icken Sie mit der Maus auf das entsprechende Eingabefeld Anschlie end k nnen Sie den Wert mit der Tastatur eingeben Nach der Eingabe der Werte klicken Sie bitte auf den OK Button Die Dialogbox schliesst sich und das Territorium erscheint in der angegebenen Gr e Nun werden wir den Hamster der immer im Territorium sitzt umplatzieren Dazu klicken wir den Hamster an und ziehen man spricht auch von draggen ihn mit gedr ckter Maustaste auf die gew nschte Kachel Dann lassen wir die Maustaste los Standardm ig schaut der Hamster nach Osten Mit dem Button linksum drehen 10 Button von links k nnen Sie jedoch seine Blickrichtung ndern Jedes Mal wenn Sie auf den Button klicken dreht er sich um 90 Grad nach links Normalerweise hat der Hamster 0 K rner im Maul Mit Hilfe des Buttons K rner ins Maul legen 11 Button von links l sst sich dies ndern Wenn Sie auf den Button klicken erscheint eine Dialogbox Sie sehen eine Zahl die die aktuelle Anzahl an K rnern im Maul des Hamsters angibt Wenn Sie diese Anzahl ndern wollen tippen Sie einfach ber die Tastatur die gew nschte Zahl ein und klicken Sie anschlie end auf den OK Button in der Dialogbox Die Dialogbox wird anschlie end automatisch wieder geschlossen Nun wollen wir auf einigen Kacheln K rner platzieren Hierzu dient der Button Korn setzen 12 Button von links Wenn Sie ihn mit der Maus anklicken erscheint am Maus Cursor ein Korn
51. ie dortigen K rner bei gedr ckter Maustaste auf die gew nschte Kachel Die K rner aller Kacheln die dabei ber hrt werden werden dabei eingesammelt 59 6 4 6 Platzieren von Mauern auf Kacheln des Hamster Territorium Um auf einer Kachel des Hamster Territoriums eine Mauer zu platzieren klicken Sie in der Toolbar den Mauer setzen Button 13 Toolbar Button von links Klicken Sie anschlie end die entsprechende Kachel an Die Mauer wird dort platziert insofern sich dort nicht der Hamster befindet Achtung Wenn sich auf der Kachel K rner befinden werden diese gel scht Um nicht f r jedes Platzieren einer Mauer erneut den Mauer setzen Button anklicken zu m ssen k nnen Sie auch folgendes tun Dr cken Sie die Shift Taste der Tastatur und Klicken bei gedr ckter Shift Taste den Mauer setzen Button an Solange Sie nun die Shift Taste gedr ckt halten k nnen Sie durch Anklicken einer Kachel des Hamster Territoriums dort eine Mauer platzieren Mauern k nnen auch im Territorium umplaziert werden Klicken Sie dazu die entsprechende Kachel an und ziehen Sie die dortige Mauer bei gedr ckter Maustaste auf die gew nschte Kachel K rner auf Kacheln die dabei ber hrt werden werden dabei gel scht 6 4 7 L schen von Kacheln des Hamster Territorium Um einzelne Kacheln des Hamster Territoriums zu l schen d h gegebenenfalls vorhandene K rner bzw Mauern zu entfernen m ssen Sie zun chst in der Toolbar den Ka
52. ieder den Simulation starten fortsetzen Button 15 Button von links anklicken Dann f hrt der Hamster mit seiner Arbeit fort Das Programm vorzeitig komplett abbrechen k nnen Sie mit Hilfe des Simulation beenden Buttons 18 Button von links Wenn Sie ein Programm mehrmals hintereinander im gleichen Territorium ausf hren wollen k nnen Sie mit dem R cksetzen Button 19 Button von links den Zustand des Territoriums wieder herstellen der vor dem letzten Ausf hren des Programms Bestand hatte Eine komplette Zur cksetzung des Territoriums auf den Zustand beim ffnen des Hamster Simulators ist mit dem Komplett zur cksetzen Button m glich 20 Button von links Der Schieberegler ganz rechts in der Men leiste dient zur Steuerung der Geschwindigkeit der Programmausf hrung Je weiter Sie den Knopf nach links 43 verschieben umso langsamer erledigt der Hamster seine Arbeit Je weiter Sie ihn nach rechts verschieben umso schneller flitzt der Hamster durchs Territorium Die Bedienelemente zum Steuern der Programmausf hrung finden Sie brigens auch im Men Simulation 5 6 Debuggen eines Hamster Programms Debuggen eines Programms eines Programms bedeutet dass Sie bei der Ausf h rung eines Programms zus tzliche M glichkeiten zur Steuerung besitzen und sich den Zustand des Programms welche Zeile des Sourcecodes wird gerade ausgef hrt welche Werte besitzen aktuell die Variablen in bestimmte
53. k nnen Sie im Programm Men das Speichern unter Men ltem anklicken Es ffnet sich eine Dateiauswahl Dialogbox ber die Sie die gew nschte Datei ausw hlen k nnen 6 2 5 ffnen eines einmal abgespeicherten Hamster Programms M chten Sie ein einmal abgespeichertes Hamster Programm wieder in den Editorbereich laden k nnen Sie dies ber das Men ltem Laden des Programm Men s tun Nach dem Anklicken des Items erscheint eine Dateiauswahl Dialogbox ber die Sie die gew nschte Datei ausw hlen k nnen 54 Achtung Beim Laden einer abgespeicherten Datei geht der aktuelle Inhalt des Editor Bereichs verloren Sie m ssen ihn also gegebenenfalls vorher in einer Datei abspeichern 6 2 6 Drucken eines Hamster Programms ber den Drucken Button 3 Toolbar Button von links k nnen Sie das aktuelle Programm des Editor Bereichs drucken Es ffnet sich eine Dialogbox in der Sie die entsprechenden Druckeinstellungen vornehmen und den Druck starten k nnen 6 2 7 Editier Funktionen Im Editor Bereich k nnen Sie wie bei anderen Editoren auch ber die Tastatur Zeichen eingeben bzw wieder l schen Dar ber hinaus stellt der Editor ein paar weitere Funktionalit ten zur Verf gung die ber das Programm Men bzw die entsprechenden Editor Buttons in der Toolbar aktiviert werden k nnen e Ausschneiden Button 4 Toolbar Button von links Hiermit k nnen Sie komplette Passagen
54. k auf die entsprechende Zeilennummer aus Breakpoints werden durch violett hinterlegte Zeilennummern dargestellt siehe Abbildung 6 20 Ein Doppelklick auf einen Breakpoint l scht den Breakpoint wieder ber der Spalte mit den Zeilennummern l sst sich auch durch Klicken der rechten Maustaste ein Popup Men aktivieren das als Funktionen das Setzen bzw Entfernen von Breakpoints bzw das gleichzeitige L schen aller Breakpoints bietet 66 WE LZ void ernteEineReihelndLaufeZurueck 13 ernteEineReihe l4 kehrt 15 laufeZurueck dn 17 zu 15 void ernteEineReihe 19 sanmle 20 while vornFrei 21l vorili 22 Breakpoint in Zeile 21 entfernen 23 alle Breakpoints l schen 24 25 26 void laufeZurueck Abb 6 20 Breakpoints Wenn Sie ein Programm mit Breakpoints ausf hren wird die Ausf hrung jedesmal pausiert wenn eine Zeile mit einem Breakpoint erreicht wird unabh ngig davon ob die Ablaufverfolgung eingeschaltet ist Durch Dr cken des Start Fortsetzen Buttons kann die Ausf hrung des Programms fortgesetzt werden 6 7 4 Debugger Fenster Das Debugger Fenster wird automatisch bei Aktivierung der Ablaufverfolgung sichtbar gemacht ber das Men Fenster l sst es sich jedoch auch explizit sichtbar bzw unsichtbar machen Das Fenster besteht aus einem rechten und einem linken Teil innerhalb einer Split Pane Der Inhalt des Debugger Fensters wird nur dann akt
55. l des Hamsters festzulegen klicken Sie bitte den K rner im Maul Button 11 Toolbar Button von links an Es ffnet sich eine Dialogbox mit einem Eingabefeld In diesem Eingabefeld erscheint die aktuelle Anzahl an K rnern im Maul des Hamsters Sie k nnen nun in das Eingabefeld die gew nschte Anzahl eingeben Klicken Sie anschlie end den OK Button um die Eingabe zu best tigen Die Dialogbox schlie t sich und der Hamster hat die eingegebene Anzahl an K rnern im Maul 6 4 5 Platzieren von K rnern auf Kacheln des Hamster Territorium Um auf einer Kachel des Hamster Territoriums ein Korn zu platzieren klicken Sie in der Toolbar den Korn setzen Button 12 Toolbar Button von links Klicken Sie anschlie end die entsprechende Kachel an Das Korn wird dort platziert insofern sich dort keine Mauer befindet Achtung Auch wenn sich auf einer Kachel mehr als 12 K rner befinden werden maximal 12 K rner auf einer Kachel angezeigt Um nicht f r jedes Platzieren eines Korns erneut den Korn setzen Button anklicken zu m ssen k nnen Sie auch folgendes tun Dr cken Sie die Shift Taste der Tastatur und Klicken bei gedr ckter Shift Taste den Korn setzen Button an Solange Sie nun die Shift Taste gedr ckt halten k nnen Sie durch Anklicken einer Kachel des Hamster Territoriums dort ein weiteres Korn platzieren K rner k nnen auch im Territorium umplaziert werden Klicken Sie dazu die entsprechende Kachel an und ziehen Sie d
56. leife genannt Dem Schl sselwort do von dem die Anweisung ihren Namen hat folgt die lterationsanweisung Hinter der Iterationsanweisung muss das Schl sselwort while stehen Anschlie end folgt in runden Klammern ein boolescher Ausdruck die Schleifenbedingung Abgeschlossen wird die do Anweisung durch ein Semikolon Bei der Ausf hrung einer do Anweisung wird zun chst einmal die Iterationsanweisung ausgef hrt Anschlie end wird die Schleifenbedingung berpr ft Ist sie nicht erf llt d h liefert der boolesche Ausdruck den Wert false 24 dann endet die do Anweisung Ist die Bedingung erf llt wird die Iterationsanweisung ein zweites Mal ausgef hrt und danach erneut die Schleifenbedingung ausgewertet Dieser Prozess wiederholt sich so lange bis irgendwann einmal die Schleifenbedingung nicht mehr erf llt ist 4 5 3 Beispielprogramm Der Hamster steht wie im Beispiel in Abbildung 4 4 skizziert vor einem regelm igen Berg unbekannter H he Er soll den Gipfel erklimmen und dort anhalten Abb 2 4 Hamster Territorien zum Beispielprogramm void main laufeZumBerg erklimmetipfel void laufeZumBerg while vornFrei while Schleife vor void erklimmecipfel do do Schleife erklimmeEineStufe while vornFrei void erklimmeEineStufe linksUm vor rechtsUm 25 vor void rechtsUm linksUm linksUm links
57. lernt mit dem Java Hamster Modell Programmierung mit Java Threads Vieweg Teubner In diesen beiden B chern wird das Hamster Modell erweitert und dazu genutzt mit spielerischen Elementen eine Einf hrung in die objektorientierte und parallele Programmierung mit Java zu geben In diesen B chern gibt es nicht mehr nur einen Hamster Vielmehr k nnen weitere Hamster erzeugt werden die dann versuchen gemeinsam gegebene Probleme zu l sen Das Entwickeln und Ausf hren objektorientierter bzw paralleler Hamster Programme ist mit diesem Hamster Simulator Light nicht m glich Hierf r ben tigen Sie den normalen Hamster Simulator den Sie ber die Website www java hamster modell de laden k nnen 74
58. liefert e kornDa Liefert den Wert true falls auf der Kachel auf der der Hamster gerade steht ein oder mehrere K rner liegen Befindet sich kein Korn auf der Kachel dann wird der Wert false geliefert 4 4 2 Boolesche Operatoren und Ausdr cke Die drei Testbefehle stellen einfache boolesche Ausdr cke dar Ausdr cke sind Verarbeitungsvorschriften die einen Wert berechnen und liefern Boolesche Ausdr cke liefern einen booleschen Wert Durch die Verkn pfung boolescher Ausdr cke mittels boolescher Operatoren lassen sich zusammengesetzte boolesche Ausdr cke bilden Die Programmiersprache Java stellt drei boolesche Operatoren zur Verf gung e Der un re Operator Negation negiert den Wahrheitswert seines Operanden d h er dreht ihn um Liefert ein boolescher Ausdruck Ga den Wert true dann liefert der boolesche Ausdruck ra den Wert false Umgekehrt gilt liefert oa den Wert false dann liefert oa den Wert true e Der bin re Operator amp amp Konjunktion konjugiert die Wahrheitswerte seiner beiden Operanden d h er liefert genau dann den Wahrheitswert true wenn beide Operanden den Wert true liefern e Der bin re Operator Disjunktion disjungiert die Wahrheitswerte seiner beiden Operanden d h er liefert genau dann den Wahrheitswert true wenn einer seiner Operanden oder seine beiden Operanden den Wert true liefern Der Operator hat eine h here Priorit t als der Operator amp amp der wiederum eine h here
59. liefert Gr ergleichoperator Die Vergleichsoperatoren sind linksassoziativ Die Operatoren lt lt gt und gt haben eine h here Priorit t als die Operatoren und Weiterhin ist zu beachten dass die Vergleichsoperatoren eine niedrigere Priorit t besitzen als die aritnmetischen Operatoren und eine h here Priorit t als der Zuweisungsoperator 4 7 6 G ltigkeitsbereiche von Variablen Variablen lassen sich innerhalb von Prozeduren und Funktionen definieren In diesem Fall nennt man sie lokale Variablen Variablen die au erhalb von Prozeduren oder Funktionen definiert werden hei en globale Variablen Als G ltigkeitsbereich einer Variablen wird der Teil eines Programmes bezeichnet in dem eine Variable genutzt werden kann d h in dem der Name einer Variablen verwendet werden darf Der G ltigkeitsbereich einer lokalen Variablen erstreckt sich von der der Variablendefinition folgenden Anweisung bis zum Ende desselben Blockes und umschlie t alle inneren Bl cke Der G ltigkeitsbereich einer globalen Variablen umfasst das gesamte Hamster Programm Im G ltigkeitsbereich einer Variablen darf keine weitere Variable mit demselben Namen definiert werden 30 4 7 7 Lebensdauer von Variablen W hrend der G ltigkeitsbereich einer booleschen Variablen zur Compilierzeit von Bedeutung ist ist die Lebensdauer einer booleschen Variablen eine Gr e die zur Laufzeit Relevanz besitzt Sie ist definiert als die Zeitspanne w hren
60. ms Abgespeicherte Hamster Territorien k nnen mit dem Laden Men ltem des B hne Men s wieder geladen werden Es erscheint eine Dateiauswahl Dialogbox in der Sie die zu ladende Datei ausw hlen k nnen Nach dem Anklicken des OK Buttons schlie t sich die Dialogbox und das entsprechende Hamster Territorium ist wiederhergestellt Achtung Der Zustand des Hamster Territoriums der vor dem Ausf hren der Territo rium Laden Funktion G ltigkeit hatte geht dabei verloren Speichern Sie ihn daher gegebenenfalls vorher ab 6 5 Interaktives Ausf hren von Hamster Befehlen Sie k nnen einzelne Hamster Befehle oder selbst definierte Funktionen und Prozeduren bspw zu Testzwecken auch interaktiv ausf hren Aktivieren Sie dazu im Men Fenster den Eintrag Befehlsfenster Es ffnet sich das so genannte Befehlsfenster siehe Abbildung 6 15 B Befeh DER void gib boolean kornDa boolean maul eer boolean vornFreif Abb 6 15 Befehlsfenster 6 5 1 Befehlsfenster Im Befehlsfenster werden die 7 Hamster Befehle mit gr nlichem Hintergrund sowie die Prozeduren und Funktionen dargestellt die im aktuellen Hamster Programm beim letztmaligen erfolgreichen Compilieren definiert waren mit orangenem Hintergrund 61 Beim Anklicken mit der Maus werden die entsprechenden Befehle jeweils ausgef hrt Die Ausf hrung erfolgt dabei ohne Anzeige von Zwischenzust nden D h wird bspw eine Prozedur rechtsUm da
61. n ActSimulator java 47 Abb 6 20 Konsole Die Konsole ist f r die Java Eingabe mittels System in und die Ausgabe mittels System out und System err zust ndig Wird in Ihrem Programm bspw der Befehl System out printin hallo ausgef hrt wird die Zeichenkette hallo in der Konsole ausgegeben System out und System err unterscheiden sich durch eine schwarze out bzw eine rote err Ausgabe des entsprechenden Textes Auch Fehlermeldungen des Hamster Simulators erscheinen in der Konsole bspw Laufzeitfehler wenn der Hamster gegen eine Mauer rennt Ein Eingabebefehl via System in blockiert das Hamster Programm so lange bis der Nutzer eine entsprechende Eingabe in der Konsole get tigt und im Allgemeinen durch Dr cken der Enter Taste abgeschlossen hat Die folgende Funktion readInt 68 erwartet bspw vom Nutzer die Eingabe einer Zahl in der Konsole und liefert den entsprechenden Wert an das Hamster Programm Wenn der Nutzer in der Konsole den Wert 4 eingibt h pft der Hamster vier Felder nach vorne insofern er nicht gegen eine Mauer rennt void main System out printlin Zahl eingeben int zahl readInt while zahl gt 0 vor zahl zahl 1 Einlesen eines int Wertes int readInt try java io BufferedReader input new java io BufferedReader new java io InputStreamReader System in String eingabe input readLine return new Integer eingabe catch Throwable e
62. n Situationen anzeigen lassen k nnen Das ist ganz n tzlich wenn Ihr Programm nicht das tut was es soll und sie herausfinden wollen woran der Fehler liegt Klicken Sie zum Debuggen zun chst den Ablaufverfolgung aktivieren Button in der Toolbar an 21 Button von links Es wird das so genannte Debugger Fenster mit dem Titel Debugger ge ffnet Im linken Bereich des Debugger Fensters wird der Prozedur Stack angezeigt das ist die aktuelle Prozedur sowie die Prozeduren aus denen die Prozedur heraus aufgerufen wurde Im rechten Bereich werden falls vorhanden die g ltigen Variablen und ihre aktuellen Werte dargestellt siehe Abb Programm Funktion i o EI Solist solist main 7 o EI intgf zahlen zaehlen j a int 0 E3 mn N int 0 34 N int 1 47 oC inti 2 IN int bis 101 D int ergebnis 0 Abb 5 5 Debugger Fenster Jetzt k nnen Sie ber den Schritt Button 16 Toolbar Button von links jeden Befehl einzeln ausf hren und bekommen im Editorbereich durch einen blauen Balken angezeigt welcher Befehl bzw welche Zeile als n chstes ausgef hrt wird Bei einem Prozeduraufruf wird dabei auch automatisch in die entsprechende Prozedur verzweigt Im Debugger Fenster wird zus tzlich der Prodzedur Stack 44 angezeigt d h die aktuelle Prozedur sowie die Prozeduren aus denen die Prozedur heraus aufgerufen wurde Sie k nnen zun chst auch einfach das Programm durch Anklicken des Starten
63. n eine Dialogbox mit einer entsprechenden Meldung Es wurde ein neues ausf hrbares Programm erzeugt 6 3 2 Beseitigen von Fehlern Wenn Ihr Programm Fehler enth lt ffnet sich unterhalb des Editor Bereichs in einer Scroll Pane ein neuer Bereich der die Fehlermeldungen des Compilers anzeigt siehe Abbildung 6 13 Es wurde kein neues ausf hrbares Programm erzeugt Jede Fehlermeldung erscheint in einer eigenen Zeile Jede Zeile enth lt eine Beschreibung des wahrscheinlichen Fehlers sowie die entsprechende Zeile der Anweisung im Programm Wenn Sie eine Fehlermeldung anklicken wird die entsprechende Anweisung im Eingabebereich blau markiert und der Maus Cursor an die entsprechende Stelle gesetzt Sie m ssen nun die einzelnen Fehler beseitigen und dann erneut speichern und compilieren bis Ihr Programm keine Fehler mehr enth lt Der Fehlermeldungsbereich schlie t sich dann automatisch wieder 56 Hamster Simulator Light Dos xte l void maint ernteEineReiheUndLaufeZurueck i linksUni while vornFreil vori linksUn ernteEineReiheUndLaufeZurueck i linksUm O OO A un d GO PA void ernteEineReiheUndLaufeZurueck ernteEineReihet kehrti doi void ernteEineReihel sammlel while vornFrei Problem 15 illegal start of expression 15 not a statement 15 while expected 18 illegal start of expression 13 Y expected s sind Compilierfehler aufgetr
64. nn sich nach der Ausf hrung einer Funktion der Programmzustand ver ndert hat bspw die Position oder Blickrichtung des Hamsters spricht man von einem Seiteneffekt den die Funktion produziert hat 4 8 4 Beispielprogramm Der Hamster bekommt die Aufgabe so viele K rner abzulegen wie insgesamt auf seinen vier Nachbarfeldern liegen nat rlich nur wenn er auch gen gend K rner im 32 Maul hat Er nutzt dabei eine Funktion koernerVorne die ohne Seiteneffekte die Anzahl an K rnern liefert die sich auf der Kachel vor dem Hamster befindet liefert die Anzahl an Koernern die sich auf dem Feld vor dem Hamster befindet produziert dabei keine Seiteneffekte int koernerVorne Definition einer int Funktion if vornFrei return 0 vor int anzahl while kornDa nimm anzahl anzahl 1 lokale Variable A 0 0 um Seiteneffekte zu vermeiden muessen nun noch die Koerner wieder abgelegt werden und der Hamster muss auf seine alte Kachel zurueckkehren int zurueck anzahl while zurueck gt 0 gib zurueck zurueck 1 kehrt vor kehrt nun kann die Anzahl an Koernern zurueckgeliefert werden return anzahl void kehrt linksUm linksUm void main ermittelt die Anzahl an Koernern vor sich int nachbarKoerner koernerVorne Aufruf einer int Funktion int drehungen 0 dreht sich in die anderen Richtun
65. o genannte Anweisungen ausgedr ckt Anweisungen die nicht weiter zerlegt werden k nnen werden elementare Anweisungen genannt In der Hamster Sprache sind die vier Grundbefehle elementare Anweisungen Eine Folge von Anweisungen die nacheinander ausgef hrt werden wird als Anweisungssequenz bezeichnet Die 17 einzelnen Anweisungen einer Anweisungssequenz werden in der angegebenen Reihenfolge hintereinander ausgef hrt 4 2 3 Programme Ein Hamster Programm setzt sich aus dem Schl sselw rt void gefolgt von main einem runden Klammernpaar und einem geschweiften Klammernpaar das eine Anweisungssequenz umschlie t zusammen Beim Aufruf bzw Start des Programms werden die Anweisungen der Anweisungssequenz innerhalb der geschweiften Klammern hintereinander ausgef hrt 4 2 4 Kommentare Ziel der Programmierung ist es Programme zu entwickeln die gegebene Aufgaben l sen Neben ihren Eigenschaften korrekt und vollst ndig zu sein sollten sich Programme durch eine weitere Eigenschaft auszeichnen sie sollten gut verst ndlich sein Das bedeutet die L sungsidee und die Realisierung sollte auch von anderen Programmierern m helos verstanden und nachvollzogen werden k nnen um bspw das Programm sp ter noch zu erweitern oder in anderen Zusammenh ngen wiederverwenden zu k nnen Diesem Zweck der Dokumentation eines Programms dienen so genannte Kommentare Sie haben auf die Steuerung des Hamsters keinerlei Auswirkungen Alles was sie b
66. oads index jsp bezogen werden und muss anschlie end installiert werden 2 2 Download Installation und Start Der Hamster Simulator Light kann von der Website www java hamster modell de kostenlos herunter geladen werden Er befindet sich in einer Datei namens hamstersimulator light 1 0 zip Diese muss zun chst entpackt werden Es entsteht ein Ordner namens hamstersimulator light 1 0 der so genannte Simulator Ordner in dem sich eine Datei simulator jar befindet Durch Doppelklick auf diese Datei wird der Hamster Simulator gestartet Alternativ l sst er sich auch durch Eingabe des Befehls java jar simulator jar in einer Console starten Beim ersten Start sucht der Hamster Simulator nach der JDK Installation auf Ihrem Computer Sollte diese nicht gefunden werden werden Sie aufgefordert den entsprechenden Pfad einzugeben Der Pfad wird anschlie end in einer Datei namens solist properties im Simulator Ordner gespeichert wo er sp ter wieder ge ndert werden kann wenn Sie bspw eine aktuellere JDK Version auf Ihrem Rechner installieren sollten In der Property Datei k nnen Sie weiterhin die Sprache angeben mit der der Hamster Simulator arbeitet In der Version 1 0 wird allerdings nur deutsch unterst tzt 12 3 Das Java Hamster Modell Computer k nnen heutzutage zum L sen vielf ltiger Aufgaben genutzt werden Die Arbeitsanleitungen zum Bearbeiten der Aufgaben werden ihnen in Form von Programmen mitgeteilt Diese Programme die von P
67. on angeklickt wird Genauso wie der Hamster k nnen auch Mauern und K rner und Anklicken und Bewegen der Maus bei gedr ckter linker Maustaste im Territorium umplatziert werden ber das Men B hne k nnen Territorien auch in Datei gespeichert und sp ter wieder geladen werden So jetzt wissen Sie eigentlich alles was notwendig ist um das Hamster Territorium nach Ihren W nschen zu gestalten Bevor Sie weiterlesen erzeugen Sie als n chstes das in Abbildung 5 3 skizzierte Territorium Abb 5 3 Beispiel Territorium 40 5 3 Eingeben eines Hamster Programms Nachdem wir unser erstes Hamster Territorium im Simulationsbereich gestaltet haben begeben wir uns nun in den Editor Bereich Dort werden wir unser erstes Hamster Programm schreiben Unser erstes Programm soll bewirken dass der Hamster in dem gerade von uns gestalteten Territorium zwei K rner frisst Wir klicken in den Editor Bereich und tippen dort wie in einem normalen Editor bzw Textverarbeitungsprogramm wie Microsoft Word die entsprechenden Hamster Befehle ein so dass letztlich folgendes im Eingabebereich steht void main vor vor nimm rechtsUm vor vor nimm void rechtsUm linksUm linksUm linksUm Das ist unser erstes Hamster Programm Ihnen sicher von anderen Editoren bzw Textverarbeitungsprogrammen bekannte Funktionen wie Ausschneiden Kopieren Einf gen R ckg ngig
68. pezielle Toolbar zu sehen ber die Sie die wichtigsten Funktionen der Men s auch schneller erreichen und ausf hren k nnen Schieben Sie einfach mal die Maus ber die Buttons Dann erscheint jeweils ein Tooltipp der die Funktionalit t des Buttons anzeigt Die f r das Editieren von Programmen wichtigen Buttons der Toolbar werden in Abbildung 6 12 skizziert 53 Drucken Kopieren R ckg ngig 8 68 3 4 4 4 Ausschneiden Einf gen Wiederherstellen Abb 6 12 Editor Buttons der Toolbar 6 2 1 Schreiben eines neuen Hamster Programms Das Schreiben eines neuen Hamster Programms ist durch das entsprechende Eintippen des Sourcecodes im Editor Bereich m glich 6 2 2 ndern des aktuellen Hamster Programms M chten Sie Teile des aktuellen Hamster Programms ndern klicken Sie im Editor Bereich einfach an die entsprechende Stelle und f gen dort die entsprechenden W rter ein oder l schen sie 6 2 3 L schen des aktuellen Hamster Programm Komplett l schen k nnen Sie das aktuelle Hamster Programm des Editor Bereichs indem Sie den kompletten Sourcecode mit der Maus selektieren und dann in der Toolbar den Ausschneiden Button 4 Button von links dr cken 6 2 4 Abspeichern des aktuellen Hamster Programms Normalerweise m ssen Sie sich nicht um das Speichern des aktuellen Programms k mmern Es wird automatisch vor dem Compilieren in einer internen Datei abgespeichert Wenn Sie jedoch ein Programm explizit abspeichern m chten
69. rch Wortzwischenr ume voneinander getrennt werden Zu den Wortzwischenr umen z hlen Leerzeichen Tabulatoren Zeilenvorschub und Seitenvorschubzeichen Diese im Folgenden kurz als Trennzeichen bezeichneten Zeichen haben ansonsten keine Bedeutung Bezeichner die zur Benennung von deklarierten Elementen wie Prozeduren oder Variablen verwendet werden m ssen in Java mit einem Buchstaben einem Unterstrich _ oder einem Dollarzeichen beginnen dem weitere Buchstaben Unterstriche und Ziffern folgen k nnen Bezeichner d rfen beliebig lang sein In Java wird streng zwischen Gro und Kleinbuchstaben unterschieden d h dass bspw die Bezeichner rechts und Rechts unterschiedliche Bezeichner sind Schl sselw rter sind reservierte W rter einer Programmiersprache Sie d rfen nicht als Bezeichner verwendet werden 4 2 Anweisungen und Programme Programme setzen sich aus einer Menge von Befehlen bzw Anweisungen zusammen 16 4 2 1 Hamster Befehle Die Aufgabe eines Hamster Programmierers besteht darin den Hamster durch eine Landschaft zu steuern um dadurch gegebene Hamster Aufgaben zu l sen Zur Steuerung des Hamsters m ssen ihm Anweisungen in Form von Befehlen gegeben werden Der Hamster besitzt dabei die F higkeit vier verschiedene Befehle zu verstehen und auszuf hren e vor Der Hamster h pft eine Kachel in seiner aktuellen Blickrichtung nach vorne e 1linksUm Der Hamster dreht sich auf der Kachel
70. rogrammierern entwickelt werden bestehen aus einer Menge von Befehlen bzw Anweisungen die der Computer ausf hren kann Die Entwicklung solcher Programme bezeichnet man als Programmierung Das Hamster Modell ist ein spezielles didaktisches Modell zum Erlernen der Programmierung Im Hamster Modell nimmt ein virtueller Hamster die Rolle des Computers ein Diesem Hamster k nnen hnlich wie einem Computer Befehle erteilt werden die dieser ausf hrt Ihnen als Programmierer werden bestimmte Aufgaben gestellt die sie durch die Steuerung des Hamsters zu l sen haben Derartige Aufgaben werden im Folgenden Hamster Aufgaben genannt Zu diesen Aufgaben m ssen Sie in der Hamster Sprache eine Programmiersprache die fast vollst ndig der Programmiersprache Java entspricht Programme Hamster Programme genannt entwickeln die die Aufgaben korrekt und vollst ndig l sen Die Aufgaben werden dabei nach und nach komplexer Zum L sen der Aufgaben m ssen bestimmte Programmierkonzepte eingesetzt werden die im Hamster Modell inkrementell eingef hrt werden Die Grundidee des Hamster Modells ist ausgesprochen einfach Sie als Programmierer m ssen einen virtuellen Hamster durch eine virtuelle Landschaft steuern und ihn gegebene Aufgaben l sen lassen 3 1 Landschaft Die Welt in der der Hamster lebt wird durch eine gekachelte Ebene repr sentiert Abbildung 3 1 zeigt eine typische Hamsterlandschaft auch Hamster Territorium genannt Die Gr
71. s Buttons Ablaufverfolgung 21 Button der Toolbar von links aktivieren bzw bei erneuten Anklicken deaktivieren Sie die Ablaufverfolgung des Debuggers Bei der Aktivierung ffnet sich dazu das Debugger Fenster siehe Abbildung 6 19 Dieses k nnen Sie auch ber das Men Fenster sichtbar bzw unsichtbar machen Debugger Programm Funktion o EI Solist solist Solist main f o Clin zahlen Solist zaehlen gt CH int 0 EJ intg 1 IN int 0 34 N int 1 47 c3 int 2 IN int bis 101 D int ergebnis 0 Abb 6 19 Debugger Fenster Ist die Ablaufverfolgung aktiviert wird bei der Ausf hrung des Programms im Editor Bereich der Befehl bzw die entsprechende Zeile der als n chstes ausgef hrt wird blau markiert Bei einem Prozedur bzw Funktionsaufruf wird in die entsprechende Funktion gesprungen Weiterhin werden im Debugger Fenster der aktuelle Stack der Funktionsaufrufe Name der Funktion und aktuelle Position der Ausf hrung der Funktion sowie die aktuelle Belegung der Variablen dargestellt 65 Im linken Bereich des Debugger Fensters werden Informationen zu den aktiven Funktionen angezeigt und zwar jeweils der Name der Funktion und die aktuelle Position der Ausf hrung der Funktion Ganz unten erscheint die aktuell aktive Funktion dar ber gegebenenfalls die Funktion die diese Funktion aufgerufen hat usw Ganz oben steht also immer die main Funktion Im rechten Bereich des Deb
72. schlie end folgt ein Bezeichner der Prozedurname bzw der Name des neuen 19 Befehls Nach dem Prozedurnamen folgt ein rundes Klammernpaar das den Prozedurkopf beendet Der Prozedurrumpf beginnt mit einer ffnenden geschweiften Klammer der eine Anweisungssequenz folgt Der Prozedurrumpf und damit die Prozedurdefinition endet mit einer schlie enden geschweiften Klammer Auch das oben eingef hrte main Konstrukt ist im Prinzip eine Prozedur Sie wird automatisch beim Start eines Programms durch das Laufzeitsystem aufgerufen Die Definition einer neuen Prozedur darf vor oder nach der Definition der main Prozedur erfolgen 4 3 2 Prozeduraufruf Durch eine Prozedurdefinition wird ein neuer Befehl eingef hrt Ein Aufruf des neuen Befehls wird Prozeduraufruf genannt Ein Prozeduraufruf entspricht syntaktisch dem Aufruf eines der vier Grundbefehle des Hamsters Er beginnt mit dem Prozedurnamen Anschlie end folgen eine ffnende und eine schlie ende runde Klammer und ein Semikolon Wird irgendwo in einem Programm eine Prozedur aufgerufen so werden bei der Ausf hrung des Programms an dieser Stelle die Anweisung en des Prozedurrumpfes ausgef hrt Der Kontrollfluss des Programms verzweigt beim Prozeduraufruf in den Rumpf der Prozedur f hrt die dortigen Anweisungen aus und kehrt nach der Abarbeitung der letzten Anweisung des Rumpfes an die Stelle des Prozeduraufrufs zur ck Durch Aufruf der return Anweisung return kann eine Prozedur vorz
73. sf hrung eines Programms Laufzeitfehler auf z B wenn ein Hamster gegen eine Mauer donnert wird eine Dialogbox ge ffnet die eine 63 entsprechende Fehlermeldung enth lt Nach dem Anklicken des Ok Buttons in der Dialogbox wird das Hamster Programm beendet Weiterhin ffnet sich das Konsolen Fenster in dem ebenfalls die Fehlermeldung ausgegeben wird W hrend der Ausf hrung eines Hamster Programms ist es durchaus noch m glich das Territorium umzugestalten also bspw neue K rner und Mauern zu platzieren 6 6 5 Einstellen der Geschwindigkeit Mit dem Schieberegler ganz rechts in der Toolbar k nnen Sie die Geschwindigkeit der Programmausf hrung beeinflussen Je weiter links der Regler steht desto langsamer wird das Programm ausgef hrt Je weiter Sie den Regler nach rechts verschieben umso schneller flitzt der Hamster durchs Territorium 6 6 6 Wiederherstellen eines Hamster Territoriums Beim Testen eines Programms recht hilfreich ist der R cksetzen Button 19 Button der Toolbar von links Sein Anklicken bewirkt dass das Hamster Territorium in den Zustand zur ckversetzt wird den es vor dem letztmaligen Start eines Programms inne hatte ber den Komplett Zur cksetzen Button 20 Button der Toolbar von links ist eine R cksetzung des Territoriums in den Zustand m glich der beim ffnen des Hamster Simulators g ltig war Sollte es irgendwann einmal bei der Benutzung des Hamster Simulators zu unerkl rlichen F
74. sst die Programmiersprache Java als Grundlage gew hlt Java auch als Sprache des Internet bezeichnet ist eine moderne Programmiersprache die sich in den letzten Jahren sowohl im Ausbildungsbereich als auch im industriellen Umfeld durchgesetzt hat Das Hamster Modell wird ausf hrlich in dem Buch Programmieren spielend gelernt mit dem Java Hamster Modell erschienen im Vieweg Teubner Verlag vorgestellt Viele weitere Informationen finden Sie auf der Hamster Website im WWW unter www java hamster modell de 1 2 Der Hamster Simulator Beim Hamster Modell steht nicht so sehr das Learning by Listening bzw Learning by Reading im Vordergrund sondern vielmehr das Learning by Doing also das praktische ben Genau das ist mit dem Hamster Simulator m glich Dieser stellt eine Reihe von Werkzeugen zum Erstellen und Ausf hren von Hamster Programmen zur Verf gung einen Editor zum Eingeben und Verwalten von Hamster Programmen einen Compiler zum bersetzen von Hamster Programmen einen Territoriumsgestalter zum Gestalten und Verwalten von Hamster Territorien einen Interpreter zum Ausf hren von Hamster Programmen und einen Debugger zum 9 Testen von Hamster Programmen Der Hamster Simulator ist einfach zu bedienen wurde aber funktional und bedienungsm ig bewusst an professionelle Entwicklungsumgebungen f r Java z B Eclipse angelehnt um einen sp teren Umstieg auf diese zu erleichtern Der vorliegende Sim
75. trukte zum Berechnen und Liefern eines Wertes Boolesche Ausdr cke haben Sie bereits kennen gelernt Sie liefern boolesche Werte Zur Berechnung boolescher Ausdr cke k nnen auch boolean Variablen hinzugezogen werden Enth lt ein boolescher Ausdruck den Namen einer booleschen Variablen dann wird bei der Auswertung des booleschen Ausdrucks an der entsprechenden Stelle der Wert ber cksichtigt der aktuell in der Variablen gespeichert ist Einen weiteren Typ von Ausdr cken stellen arithmetische Ausdr cke dar Sie berechnen und liefern Werte vom Typ int also ganze Zahlen Arithmetische Ausdr cke lassen sich auf folgende Art und Weise bilden 28 e int Literale int Literale werden durch Zeichenfolgen beschrieben die aus dezimalen Ziffern 0 1 2 3 4 5 6 7 8 9 bestehen Dabei gilt die Einschr nkung dass einer Zahl ungleich 0 keine 0 vorangestellt werden darf G ltige int Literale sind also 0 2 4711 1234560789 e int Variablenname Der Name einer int Variablen in einem arithmetischen Ausdruck repr sentiert den aktuell in der Variablen gespeicherten Wert e Un re arithmetische Operatoren Die Zeichen und kennzeichnen Vorzeichen von arithmetischen Ausdr cken Die un ren arithmetischen Operatoren sind rechtsassoziativ und besitzen die h chste Priorit t aller arithmetischen Operatoren e Bin re arithmetische Operatoren Es existieren insgesamt f nf bin re arithmetische Operatoren mit denen je
76. ualisiert wenn die Ablaufverfolgung aktiviert ist Im linken Bereich des Fensters werden die aktuell aufgerufenen Funktionen und die jeweilige Zeilennummer dargestellt in der sich die Programmausf hrung innerhalb der Funktion gerade befindet Ganz oben steht dabei immer die main Funktion ganz unten die zuletzt aufgerufene Funktion Im rechten Bereich werden Variablen und deren aktuelle Werte dargestellt Im Normalfall sind das genau die Variablen die in der zuletzt aufgerufenen Funktion also der im linken Bereich ganz unten stehenden Funktion g ltig sind Die Darstellung erfolgt dabei in einem Elementbaum Bei strukturierten Variablen kann durch Mausklick auf das Symbol vor dem Variablennamen die Struktur weiter ge ffnet bzw wieder geschlossen werden 67 Im pausierten Zustand ist es m glich sich auch die Werte lokaler Variablen anderer Funktionsinkarnationen anzuschauen Das ist m glich indem man im linken Bereich auf den entsprechenden Funktionsnamen klickt 6 8 Konsole Die Konsole ist ein zus tzliches Fenster das bei bestimmten Aktionen automatisch ge ffnet wird sich aber ber das Men Fenster auch explizit ffnen bzw schlie en l sst siehe Abbildung 6 20 Konsole Optionen Zahl eingeben 4 Zahl eingeben 1 Zahl eingeben 5 MauerDaException Die Kachel 1 9 ist durch eine Mauer blockiert at Hamster vor Hamster java 190 at Solist main Solist java 5 at simulation ActSimulator ru
77. ugger Fensters werden die aktiven Variablen und ihre aktuellen Werte angezeigt Die Darstellung erfolgt dabei in einem Elementbaum d h bei komplexen Variablen wie Arrays k nnen Sie durch Anklicken des Symbols vor dem Variablennamen die Komponenten einsehen Auch w hrend die Ablaufverfolgung aktiviert ist k nnen Sie die Programmausf hrung durch Anklicken des Pause Buttons anhalten und durch anschlie endes Anklicken des Start Fortsetzen Buttons wieder fortfahren lassen Auch die Geschwindigkeit der Programmausf hrung l sst sich mit dem Schieberegler anpassen 6 7 2 Schrittweise Programmausf hrung Mit dem Toolbar Button Schrittweise Ausf hrung 16 Button der Toolbar von links ist es m glich ein Programm schrittweise d h Anweisung f r Anweisung auszuf hren Immer wenn Sie den Button anklicken wird die n chste Anweisung bzw Zeile ausgef hrt Sie k nnen das Programm mit der schrittweisen Ausf hrung starten Sie k nnen jedoch auch zun chst das Programm normal starten dann pausieren und ab der aktuellen Anweisung schrittweise ausf hren Eine normale Programmweiterf hrung ist jederzeit durch Klicken des Start Buttons m glich 6 7 3 Breakpoints Wenn Sie das Programm an einer bestimmten Stelle anhalten m chten k nnen Sie in der entsprechenden Zeile einen so genannten Breakpoint setzen F hren Sie dazu vor oder w hrend der Programmausf hrung im Editor Bereich mit der Maus einen Doppelklic
78. ulator wird als Light Version bezeichnet weil es noch einen weiteren Hamster Simulator gibt der noch viele weitere Funktionen anbietet die jedoch f r wirkliche Programmieranf nger nicht unbedingt notwendig sind Diesen finden Sie auf der Hamster Website www java hamster modell de 1 3 Voraussetzungen Zielgruppe des Hamster Modells sind Sch ler oder Studierende ohne Programmiererfahrung die die Grundlagen der imperativen Programmierung erlernen und dabei ein wenig Spa haben wollen Kenntnisse im Umgang mit Computern sind w nschenswert Der Hamster Simulator ist dabei kein Lehrbuch sondern ein Werkzeug das das Erlernen der Programmierung unterst tzt Auf gute Lehrb cher zum Erlernen der Programmierung wird in Kapitel 7 Literatur zum Programmieren lernen hingewiesen 1 4 Anmerkungen Der Hamster Simulator Light wurde mit dem Tool Solist erstellt Solist ist eine spezielle Entwicklungsumgebung f r Miniprogrammierwelt Simulatoren Solist ist ein Werkzeug der Werkzeugfamilie des Programmier Theaters eine Menge von Werkzeugen zum Erlernen der Programmierung Metapher aller dieser Werkzeuge ist die Theaterwelt Schauspieler im Falle von Solist Solisten agieren auf einer B hne auf der zus tzlich Requisiten platziert werden k nnen Eine Auff hrung entspricht der Ausf hrung eines Programms Im Falle des Hamster Simulators ist die B hne das Hamster Territorium auf dem der Hamster als Solist es gibt nur einen H
79. ung mit einem angeh ngten so genannten else Teil Dieser besteht aus dem Schl sselwort else und einer Anweisung false Anweisung im Allgemeinen eine Blockanweisung Die Alternativanweisung ist wie die bedingte Anweisung eine Auswahlanweisung Wird eine Alternativanweisung ausgef hrt dann wird zun chst der Wert der Bedingung boolescher Ausdruck ermittelt Ist die Bedingung erf llt d h liefert der boolesche Ausdruck den Wert true dann wird die true Anweisung nicht aber die false Anweisung ausgef hrt Liefert der boolesche Ausdruck den Wert false dann wird die false Anweisung nicht aber die true Anweisung ausgef hrt 4 4 6 Beispielprogramm Im folgenden Beispielprogramm f hrt der Hamster die Blockanweisung mit dem vor und dem linksUm Befehl nur aus wenn sich vor ihm keine Mauer befindet Anschlie end berpr ft er ob sich auf der aktuellen Kachel ein Korn befindet und gleichzeitig die Kachel vor ihm frei ist Dann und nur dann nimmt er das Korn und springt eine Kachel nach vorne Im anderen Fall dreht er sich um 90 Grad nach links void main if vornFrei bedingte Anweisung vor linksUm if kornDa S vornFrei Alternativanweisung nimm vor else linksUm 23 4 5 Wiederholungsanweisungen Wiederholungsanweisungen auch Schleifenanweisungen genannt dienen dazu bestimmte Anweisungen mehrmals ausf hren zu lassen solange eine bestimmte Bedingung erf llt wird
80. weils zwei andere arithmetische Ausdr cke die Operanden verkn pft werden o liefert als Wert die Summe seiner beiden Operanden Addition o liefert als Wert die Differenz seiner beiden Operanden Subtraktion o liefert als Wert das Produkt seiner beiden Operanden Produkt o liefert als Wert den Quotient seiner beiden Operanden dabei werden entstehende Nachkommastellen ignoriert ganzzahlige Division z B 7 3 2 o liefert als Wert den Rest einer ganzzahligen Division Modulo Operator z B 7 3 1 Zwischen der Ganzzahldivision und der Restbildung besteht folgende Beziehung Seien x und y arithmetische Ausdr cke dann gilt x y y x y x Die bin ren arithmetischen Operatoren sind linksassoziativ Die Operatoren d und besitzen eine h here Priorit t als die Operatoren und Punkt vor Strich Rechnung e Klammern Zum Bilden von komplexen arithmetischen Ausdr cken k nnen arithmetische Ausdr cke in Paare von runden Klammern gesetzt werden Dadurch l sst sich die Priorit t von aritnmetischen Operatoren beeinflussen 4 7 4 Zuweisung Mit Hilfe einer Zuweisungsanweisung kurz auch Zuweisung genannt k nnen Variablen neue Werte zugewiesen werden Die alten Werte gehen dabei verloren Syntaktisch wird die Zuweisung so gebildet dass dem Namen der betroffenen Variablen das Zeichen der Zuweisungsoperator und anschlie end ein Ausdruck folgt
81. xc return 0 Die Konsole enth lt in der Men leiste ein Men namens Optionen Hierin finden sich drei Men ltems ber die es m glich ist den aktuellen Inhalt der Konsole zu l schen den aktuellen Inhalt der Konsole in einer Datei abzuspeichern bzw die Konsole zu schlie en 69 7 Beispielprogramme Dem Hamster Simulator Light sind drei Beispielprogramme beigef gt die Sie ber das Men Programm laden k nnen Men lItem Laden Prinzipiell k nnen Sie jedoch auch alle Beispielprogramme des Buches Programmieren spielend gelernt mit dem Java Hamster Modell unmittelbar laden compilieren und ausf hren Diese Beispielprogramme k nnen ber die Website www java hamster modell de geladen werden Allerdings k nnen die dort gespeicherten Hamster Territorien nicht verwendet werden Sie wurden mit dem normalen Hamster Simulator erstellt und sind nicht kompatibel zu diesem Hamster Simulator Light 7 1 Feldabgrasen Die Aufgabe lautet Der Hamster steht auf Kachel 0 0 mit Blickrichtung Osten in einem rechteckigen Territorium ohne innere Mauern Auf den Kacheln k nnen 0 1 oder mehrere K rner liegen Der Hamster soll alle K rner einsammeln und dann stehen bleiben Dateiname FeldAbgrasen ham Beispiel Territorien FeldAbgrasen1 ter und FeldAbgrasen2 ter void main ernteEineReiheUndLaufeZurueck linksUm while vornFrei vor linksUm ernteEineReiheUndLaufeZurueck
82. ximal aber bis zur Mauer void vor int anzahl formaler Parameter while vornFrei amp amp anzahl gt 0 vor anzahl anzahl 1 liefert seiteneffektfrei die Koerneranzahl im Maul des Hamsters int koernerImMaul int anzahl 0 while maulleer gib anzahl anzahl 1 int ergebnis anzahl Koerner wieder fressen 35 while anzahl gt 0 nimm anzahl anzahl 1 return ergebnis void main vor 4 aktueller Parameter linksUm vor koernerImMaul ll aktueller Parameter 4 10 Rekursion Funktionen die sich selbst aufrufen bezeichnet man als rekursive Funktionen Die rekursive Funktion hinUndZurueck im folgenden Programm bewirkt dass der Hamster bis zur n chsten Wand und anschlie end zur ck zu seinem Ausgangspunkt l uft void hinUndZurueck if vornFrei vor hinUndZurueck rekursiver Funktionsaufruf vor else kehrt void kehrt linksUm linksUm void main der Hamster laeuft zur naechsten Wand und zurueck hinUndZurueck 36 5 Ihr erstes Hamster Programm Nachdem Sie den Hamster Simulator gestartet haben ffnet sich ein Fenster das in etwa dem in Abbildung 5 1 dargestellten Fenster entspricht Ganz oben enth lt es eine Men leiste mit 5 Men s darunter eine Toolbar mit einer Reihe von Buttons und ganz unten einen Meldungsbereich in dem Meldungen ausgegeben werden

Download Pdf Manuals

image

Related Search

Related Contents

FERNO® - Ferno Norden  Winwedgeソフトウエア取扱説明書  Hotpoint - ImageBank  AmpliVox S606  Acer Aspire 571G-53236G50Maii  "user manual"  Acer 8KB-FV1  FRANÇAIS  

Copyright © All rights reserved.
Failed to retrieve file