Programmiersprachen bestehen aus wenigen, grundlegenden Anweisungen. Die verschiedenen Sprachen ähneln sich darin meist sehr. In Oberon-2 sind das die folgenden Operatoren ("Rechenzeichen") und Bezeichner:
+ | := | ARRAY | IMPORT | RETURN |
- | ^ | BEGIN | IN | THEN |
* | = | BY | IS | TO |
/ | # | CASE | LOOP | TYPE |
~ | < | CONST | MOD | UNTIL |
& | > | DIV | MODULE | VAR |
. | <= | DO | NIL | WHILE |
, | >= | ELSE | OF | WITH |
; | .. | ELSIF | OR | |
| | : | END | POINTER | |
( | ) | EXIT | PROCEDURE | |
[ | ] | FOR | RECORD | |
{ | } | IF | REPEAT |
Daneben gibt es in der Regel zusätzliche Prozeduren, die sich auf diese
Grundbefehle und auf Schnittstellen des Betriebssystems stützen; besonders
wichtig sind dabei zunächst jene, die die Eingabe über Tastatur und andere
Geräte ermöglichen und die Ausgabe auf dem Bildschirm regeln.
Seit Beginn benutzen wir dabei Prozeduren aus dem Modul Display, das
Möglichkeiten für die Texteingabe und -ausgabe bereitstellt. Über den vollen
Umfang des Moduls kann man sich mit Hilfe des Oberon-2 Symbolfile Browsers (im
Menü unter Tools) informieren: Öffnet man damit die Datei Display.sym, so
werden alle Prozeduren dieses Moduls aufgelistet.
Für das Arbeiten mit Grafik steht daneben das Modul ColorPlane zur Verfügung. Bei der Arbeit mit diesem Modul ist folgendes zu beachten:
Exemplarisch werden nun einige weitere Prozeduren aus dem Modul ColorPlane vorgestellt:
Aufgaben
1. Entwickle ein Programm, das ein Rechteck, ein gefülltes Rechteck,
eine Linie und einen Punkt, jeweils in verschiedenen Farben, zeichnet. Musterlösung |
|
2. Schreibe ein Programm, das ein Rechteck und die beiden zugehörigen Diagonalen des Rechtecks zeichnet. Musterlösung |
|
3. Schreibe ein Programm, das 10 Quadrate der Kantenlänge 20 nebeneinander zeichnet. Musterlösung |
|
4. Schreibe ein Programm, das Quadrate der Kantenlänge 20, 40, 60, ... 200 ineinander zeichnet. Musterlösung |
|
5. Verändere das Programm von Aufgabe 4 so, dass es 255 Quadrate der
Kantenlänge 255, 254, ...,3, 2, 1, 0 ineinander zeichnet. Gleichzeitig soll
sich die Farbe von rot (255,0,0) nach grün (0,255,0) verändern. Entwickle
anschließend auch andere Farbübergänge! Musterlösung |
6. Um einen Kreis zu zeichnen, muss man diesen aus vielen einzelnen Punkten zusammensetzen. Die mathematischen Grundlagen dazu
lernst du in der 10. Klasse.
MODULE Kreis;
IMPORT C:=ColorPlane,
F:=Float;
(*Das Modul Float enthält Prozeduren für die Arbeit mit Kommazahlen*)
PROCEDURE ProgMain*;
CONST radius = 100; (*Festlegung von
Konstanten*)
xm = 200;
ym = 200;
VAR x,y,winkel : INTEGER;
xr, yr : REAL;
ch : CHAR;
BEGIN
C.Open();
FOR winkel := 0 TO 360 DO
xr := F.Sin(winkel / 180 * 3.1415)*radius;
yr := F.Cos(winkel / 180 * 3.1415)*radius;
x := SHORT(ENTIER(xr));
y := SHORT(ENTIER(yr));
C.Dot (x+xm,y+ym,1);
END;
ch:=C.ReadKey();
END ProgMain;
END Kreis.
7. Schreibe ein Programm, das die olympischen Ringe zeichnet.
(Farbreihenfolge von links nach rechts: oben: Blau, Schwarz, Rot; unten: Gelb, Grün )
(Ohne Lösung)
8. Schreibe ein Programm, das einen voll ausgefüllten Kreis zeichnet.
(Entsprechend zu Aufgabe 5) (Ohne Lösung)