Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in die objektorientierte Programmierung mit Squeak - BotsInc.

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in die objektorientierte Programmierung mit Squeak - BotsInc."—  Präsentation transkript:

1 Einführung in die objektorientierte Programmierung mit Squeak - BotsInc

2 BotsInc  Roboterumgebung zum Programmieren  verwendet Squeak-Syntax  zur Einführung in objektorientierte Programmierung  spezielles Squeak-Image mit Umgebung für BotsInc

3 BotsInc  Informationen und Download unter http://smallwiki.unibe.ch/botsinc/ http://smallwiki.unibe.ch/botsinc/  Startbildschirm zeigt einen Roboter, eine Roboterfabrik und zwei Klappen mit Werkzeugen  Programmieren heißt, Befehle an Roboter zu senden

4 BotsInc

5  Hilfetext erscheint beim Überfahren mit der Maus  enthält Informationen über den Roboter wie Position und Richtung  Nachrichten werden verschickt durch Links- Klick, Tippen der Nachricht und Enter

6

7

8 BotsInc  Syntax der Nachrichten entspricht Squeak- Syntax  Roboter ist ein Objekt  Nachrichten können einzeln oder als Kaskade geschickt werden, auch eigene Nachrichten  einige Squeak-Smarties verfügbar

9 Sprachkonzept  Aufbau angelehnt an natürliche Sprache: S-P-O  5 reservierte Wörter: nil, true, false, self, super  beim Aufruf einer Methode Parameter übergeben, ist keiner angegeben, wird self übergeben  Rückgabewert aus Methode mit ^, sonst wird self zurückgegeben

10 Sprachkonzept  unäre Nachrichten bestehen aus Empfänger und Methode meinString size.  binäre Nachrichten bestehen aus Empfänger, Methode, Parameterobjekt 1 + 2.  Schlüsselwort-Nachrichten bestehen aus Empfänger, Methode mit : und Parameterobjekt(e) meinString at: 1 put: ‘text‘.

11 Sprachkonzept  Kaskadieren von Nachrichten, mehrere Nachrichten an das selbe Objekt:  aStream nextPutAll: ’abc’; nextPutAll: ’def’; nextPutAll: ’ghi’. ist einfacher und übersichtlicher als:  aStream nextPutAll: ’abc’. aStream nextPutAll: ’def’. aStream nextPutAll: ’ghi’.

12 Variablen und Speicher  Variablen sind weder Objekte noch Speicherpositionen, sondern zeigen auf Objekte  nicht initialisierte Variablen zeigen auf nil  mehrere Variablen können auf das selbe Objekt zeigen - Duplikate erzeugt man mit copy

13 Variablen und Speicher  Vergleich zweier Variablen mit = testet auf Gleichheit (selbe Werte), mit == auf Äquivalenz (selbes Objekt)  automatische Speicherverwaltung erfolgt nebenbei, in der Regel dann, wenn nicht mehr genügend Speicherplatz verfügbar ist

14 Werkzeuge  Workspace, Arbeitsbereich um Befehle direkt auszuführen  Transcript, Ausgabefenster, z.B. vom Workspace ansprechbar  Klassenbrowser, Übersicht über alle Klassen

15 BotsInc  neuer Roboter wird in Roboterfabrik erzeugt  Roboterfabrik ist eine Klasse  beachten: Groß- und Kleinschreibung der Namen von Klasse und Objekt  Nachrichten an Fabrik wie an Roboter

16

17

18 BotsInc  neue Roboter werden mit new in der Fabrik erzeugt und zeigen immer nach Osten  spezielles Weltmenü mit Einträgen nur für BotsInc zum Speichern und Beenden, erscheint bei Klick auf den Hintergrund

19 BotsInc  Nachrichten-Kaskaden, indem Nachrichten durch Semikolon getrennt werden  für komplexe Programme sind direkte Nachrichten ungeeignet  deshalb: Skripte im Workspace

20

21 BotsInc  vorherige Nachrichten sind mit Pfeiltasten verfügbar  Skripte im Bot Workspace schreiben wie in Squeak  Do It All führt alle Nachrichten im Workspace aus, Do It führt markierten Teil aus, Clear Trails löscht Spuren, Clear Robots löscht Roboter und Clear All löscht beides

22 BotsInc

23

24  | pica | definiert eine Variable, damit ich ein erzeugtes Objekt anfassen kann  pica := Bot new erzeugt Objekt der Klasse Bot  pica go: 100 sendet die Nachricht go: mit Parameter 100 an pica

25 BotsInc  Workspace hat Syntaxhighlighting  im Weltmenü gibt es unter Hilfe eine Übersicht über das Vokabular

26 BotsInc  Unterstützung bei Fehlern

27 BotsInc  unbekannte oder unbenutzte Variablen werden angezeigt

28 BotsInc  erste Aufgaben zum Zeichnen  jump: bewegen ohne Linie zu zeichnen  beInvisible und beVisible zum Unsichtbarmachen bzw. Darstellen  Richtungen können als Himmelsrichtungen angegeben werden  color: Color blue erzeugt blaues Farbobjekt, das nun einem Roboter zugewiesen werden kann

29 im Weltmenü unter open Browser für Bot öffnen

30 BotsInc  Browser, Workspace und Transcript auch in der Seitenklappe verfügbar  Skripte speichern im Menü vom Workspace mit save contents  Skripte laden im Weltmenü mit open-->file list-- >Datei, Inhalt kopieren  Bildschirm erfassen mit capture im Weltmenü um Bilder zu sichern  Nachrichten direkt ausführen im Workspace durch Markieren, printIt im Menü

31 BotsInc  penSize: und penColor: für Strichstärke und - farbe  Color r:g:b: für Farbangaben zwischen 0 und 1 pro Farbkomponente  lookLikeTriangle, lookLikeCircle für andere Form  extent: width@height für Größenänderungenwidth@height

32 BotsInc  Malwerkzeug, um Roboter selber zu malen (wie in eToys)  rotes Smartie öffnet Malwerkzeug  blaues Smartie zum Speichern der Graphik  lila Smartie zum Laden einer Graphik

33 BotsInc  wenn Roboterfabrik eigene Graphik verwenden soll:  Graphik an Klasse Bot senden mit orangem Smartie oder Roboter sendet Nachricht passImageToClass  Bot sendet Nachricht lookLikeImage  von da an wird eigene Graphik bei new verwendet

34 BotsInc  Nachrichten auch in Skripten verwendbar  loadImage (Nutzer wird nach Name gefragt) und loadImage: 'dateiname' (Datei muss vorhanden sein) ‏  saveImage und saveImage: 'dateiname' zum Speichern  clearImage setzt Roboterfabrik auf Anfangszustand zurück  lookLikeBot stellt wieder Roboterbild ein  getImageFromClass lädt Graphik der Roboterfabrik

35 Programmieren mit BotsInc  grundlegende Algorithmenstrukturen kennenlernen wie Folge, Schleife und Verzweigung  Variablenbegriff  objektorientierte und ereignisorientierte Softwareentwicklung  Implementierung von Algorithmen als Methode von Objekten  Verwendung graphischer Basisroutinen zur Visualisierung

36 Programmieren mit BotsInc  Folge: sequentielle Ausführung aller Anweisungen im Ballon, Workspace oder Methode  Beispiel: Zeichnen vorgegebener einfacher geometrischer Formen

37 Programmieren mit BotsInc  Zählschleifen: n timesRepeat: [ Folge von Anweisungen]  Variablen: werden zwischen Balken am Beginn des Skriptes angegeben, beginnen mit Kleinbuchstaben | hoehe breite |  Zuweisung von Werten mit :=

38 Programmieren mit BotsInc  Parameter können im Quelltext wie jede andere Variable verwendet werden  Unterschied zu Variablen: - Parameter müssen nicht explizit deklariert werden - Parametern kann kein Wert zugewiesen werden - Initialisierung eines Parameters erfolgt beim nur Senden der Nachricht und Ausführen der korrespondierenden Methode

39 Programmieren mit BotsInc  Erstellen und Kombinieren von Methoden  Parameterübergabe an Methoden, Formalparameter, Aktualparameter quadrat: seitenlänge Methodenquelltext  Formalparameter seitenlänge  Aktualparameter noch nicht bekannt, das Objekt, was bei Programmausführung beim Aufruf der Methode quadrat als Parameter übergeben wird

40 Programmieren mit BotsInc  Verzweigung: Abfragen von Bedingungen bedingung ifTrue: [Folge von Anweisungen] ifFalse: [Folge von Anweisungen]  Bedingung muss Wahrheitswert ergeben  Verzweigungen können auch nur einen Zweig zur Ausführung enthalten  Verzweigungen können verschachtelt werden

41 Programmieren mit BotsInc  bedingungsabhängige Schleifen: [bedingung] whileTrue: [Folge von Anweisungen]  Debugger kann jederzeit aus dem Quelltext aufgerufen werden self halt.  Ausgabe von Text in Transcript

42 BotsInc  im Browser der Klasse Bot kann editiert werden  Erstellen eigener Methoden für Roboter wie Programmierung in Squeak  Hintergrund kann Gitter sein

43

44

45

46 Programmieren mit BotsInc  Dateien laden  BotsInc starten  Kommandos ausprobieren  Beispiel-Methode unter turning testen  eigenen Robot zeichnen


Herunterladen ppt "Einführung in die objektorientierte Programmierung mit Squeak - BotsInc."

Ähnliche Präsentationen


Google-Anzeigen