Hands on Objects mit EOS

Aus ComeniusWiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Das Programm

EOS 2 ist eine Programmierumgebung mit einer Programmiersprache, die zum Programmieren von einfachen geometrischen Formen in der Schule gedacht ist. Das Programm ist Freeware und kann über den Link EOS2 heruntergeladen werden.

Klassenkarten

FENSTER

FENSTER
breite

höhe
...

breiteSetzen(neueBreite)

höheSetzen(neueHöhe)
zeichne(neuesObjekt)
...

RECHTECK

RECHTECK
breite

höhe
füllfarbe
randfarbe
...

füllfarbeSetzen(neueFüllfarbe)

eckenSetzen(loX, loY, ruX, ruY)
randfarbeSetzen(neueRandfarbe)
...

Legende:
lo = links oben
ru = rechts unten

KREIS

KREIS
radius

füllfarbe
randfarbe
...

füllfarbeSetzen(neueFüllfarbe)

mittelpunktSetzen(mitteX, mitteY)
radiusSetzen(neuerRadius)
randfarbeSetzen(neueRandfarbe)
...

LINIE

LINIE
farbe

linienStärke
...

farbeSetzen(neueFüllfarbe)

linienStärkeSetzen(neueLinienStärke)
endpunkteSetzen(x1, y1, x2, y2)
...

DREIECK

DREIECK
füllfarbe

randfarbe
...

füllfarbeSetzen(neueFüllfarbe)

randfarbeSetzen(neueRandfarbe)
eckenSetzen(x1,y1,x2,y2,x3,y3)

...

Einführung

Wir wollen nun gemeinsam Schritt für Schritt das allseits bekannte Zeichenspiel "Haus vom Nikolaus" mit EOS programmieren.
Vorüberlegungen: Aus objektorientierter Sichtweise besteht das "Haus vom Nikolaus" aus mehren Objekten:
einem Objekt der Klasse DREIECK (dach), einem Objekt der Klasse RECHTECK (haus) und zwei Objekten der Klasse LINIE (diagonale1 und diagonale2).
Mit diesem Wissen wollen wir nun beginnen das Zeichenspiel Schritt für Schritt zu programmieren.

Schritt 1

Zeichenfenster zu EOS2-Programm "Haus vom Nikolaus" - Schritt 1

Als erstes benötigen wir ein Objekt der Klasse FENSTER, das sozusagen die Zeichenfläche zur Verfügung stellt. Dies erzeugen wir mit nachfolgendem Programmtext:
fenster:FENSTER


Um das Programm zu starten, musst du auf den blauen "Play"-Button klicken.
EOS2 Programm starten.png










Schritt 2

Zeichenfenster zu EOS2-Programm "Haus vom Nikolaus" - Schritt 2

Wir wollen als nächstes mit dem Haus beginnen und erzeugen hierfür ein Objekt der Klasse RECHTECK:
fenster:FENSTER

haus:RECHTECK

Wir müssen nun mit Hilfe von Methodenaufrufen die Attributwerte des Objekts mit dem Bezeichner "haus" ändern:

fenster:FENSTER

haus:RECHTECK
haus.eckenSetzen(0,50,50,50)
haus.füllfarbeSetzen(weiß)

Nun muss dem Zeichenfenster jedoch noch mitgeteilt werden, das es unser Objekt der Klasse RECHTECK auch zeichnen soll, dies erledigt man folgendermaßen:

fenster:FENSTER

haus:RECHTECK
haus.eckenSetzen(0,50,50,0)
haus.füllfarbeSetzen(weiß)
fenster.zeichne(haus)



Schritt 3

Zeichenfenster zu EOS2-Programm "Haus vom Nikolaus" - Schritt 3

Jetzt ist das Dach an der Reihe. Wie du wahrscheinlich bereits vermutet hast, brauchen wir hierfür ein Objekt der Klasse DREIECK. Wir erzeugen dieses Objekt und rufen auch gleich die entsprechenden Methoden auf:

fenster:FENSTER

haus:RECHTECK
haus.eckenSetzen(0,50,50,0)
haus.füllfarbeSetzen(weiß)
fenster.zeichne(haus)

dach:DREIECK
dach.eckenSetzen(0,50,25,75,50,50)
dach.füllfarbeSetzen(weiß)
fenster.zeichne(dach)



Schritt 4

Zeichenfenster zu EOS2-Programm "Haus vom Nikolaus" - Schritt 4

Als nächtes wollen wir die diagonale Linie von links oben nach rechts unten programmieren. Dazu erstellen wir uns ein Objekt der Klasse LINIE und rufen wieder die passenden Methoden auf:

fenster:FENSTER

haus:RECHTECK
haus.eckenSetzen(0,50,50,0)
haus.füllfarbeSetzen(weiß)
fenster.zeichne(haus)

dach:DREIECK
dach.eckenSetzen(0,50,25,75,50,50)
dach.füllfarbeSetzen(weiß)
fenster.zeichne(dach)

dia1:LINIE
dia1.endpunkteSetzen(0,50,50,0)
fenster.zeichne(dia1)



Schritt 5

Zeichenfenster zu EOS2-Programm "Haus vom Nikolaus" - Schritt 5

Jetzt noch die zweite Diagonale einfügen:

fenster:FENSTER

haus:RECHTECK
haus.eckenSetzen(0,50,50,0)
haus.füllfarbeSetzen(weiß)
fenster.zeichne(haus)

dach:DREIECK
dach.eckenSetzen(0,50,25,75,50,50)
dach.füllfarbeSetzen(weiß)
fenster.zeichne(dach)

dia1:LINIE
dia1.endpunkteSetzen(0,50,50,0)
fenster.zeichne(dia1)

dia2:LINIE
dia2.endpunkteSetzen(0,0,50,50)
fenster.zeichne(dia2)