Das HTML-Paket zur Kombiampel ist entstanden, um den Schülern des Informatikkurses in der Klasse 9 nicht die gedrucketen Handbücher austeilen zu müssen. Die Schüler sind mit der Arbeitsweise eines Internetbrowsers vertraut.
Es gibt verschiedene Möglichkeiten, das Paket für den Unterricht zur Verfügung zu stellen.
Das HTML-Paket zur Kombiampel ist so aufgearbeitet, dass die Schüler die Aufgaben nacheinander weitgehend selbständig erledigen können. Es ist empfehlenswert, den Schülern nicht sofort alle Dateien zur Verfügung zu stellen, sondern im Laufe der Arbeit eine Datei nach der anderen einzuspielen. Die Schüler suchen sonst eventuell nur einzelne Häppchen heraus und versäumen dann eine Menge der Details, die im Ablauf der Arbeit vorgestellt werden sollen. Die einzelnen Dateien enthalten jeweils einen abgeschlossenen, überschaubaren Teil des Gesamtprojektes.
für die Unterrichtseinheit "Kombiampel"
Die Lernziele der Unterrichtsreihe Kombiampel decken sich weitgehend mit denen der Prozeßdatenverarbeitung im Informatikunterricht der Jahrgangsstufen 9 und 10 am Gymnasium, entsprechendes gilt auch für die Gesamt-, Real- und Hauptschulen.
Zu dem Bereich Lernzielkontrollen sei hier auf einen Umstand hingewiesen, der kennzeichnend für die spezielle Situation des Informatikunterrichtes ist: Es liegen bisher fast keine Erfahrungen vor.
Bei der Umsetzung der Unterrichtsreihe Kombiampel ergibt sich folgendes Bild, setzt man das Vorhandensein einer Kombiampel pro Rechnerarbeitsplatz als realistisch voraus.
Die tatsächlich geleistete Arbeit eines Schülerteams läßt sich somit u.a.
Die Auflistung aller von den Schüler bearbeiteten Programme gibt eine Hilfestellung bei der Beurteilung der Schülerleistung.
Für einen Test bzw. eine Klassenarbeit als individuelle Lernzielkontrolle bieten sich, je nach zeitlicher Terminierung, Aufgabenstellungen an, wie sie im Rahmen der Unterrichtsreihe behandelt worden sind. z.B. ein Lauflicht mit vorgegebenen Eigenschaften oder eine angemessene Ampelsteuerung schriftlich erstellen bzw. Vorgaben ergänzen.
| AMPELDEM.PAS | AMPELFU1.PAS | AMPELFU2.PAS | AMPELPHA.PAS |
| AMPELREG.PAS | AMPELVER.PAS | BINAERAU.PAS | BINAER1.PAS |
| BINAER2.PAS | BINAER3.PAS | BINAER4.PAS | BINAER5.PAS |
| BINAER6.PAS | BINAER7.PAS | BITEMPF.PAS | BITSEND.PAS |
| BLINKAMP.PAS | BLINKEN.PAS | BYTEMPF.PAS | BYTEMPS.PAS |
| BYTESEND.PAS | BYTESENS.PAS | DISCO1.PAS | DISCO2.PAS |
| DISCO3.PAS | DOPPELA1.PAS | DOPPELAM.PAS | ERSTEAMP.PAS |
| KOMAMPEL.INC | KOMAMPEL.PAS | LAUFHIZU.PAS | LAUFLICH.PAS |
| LAUFZUR.PAS | LED0.PAS | LED1.PAS | LED2.PAS |
| LED3.PAS | LED4.PAS | LED5.PAS | LED6.PAS |
| LED7.PAS | LEUCHT.PAS | PROZAMP1.PAS | PROZAMP2.PAS |
| SCHALTAB.PAS | SCHATEST.PAS | SENSORAB.PAS | SENSTEST.PAS |
| TAGNACH1.PAS | TAGNACH2.PAS | TASTERAB.PAS | TASTTEST.PAS |
| TASTWURF.PAS | TEXTEMPF.PAS | TEXTSEND.PAS | VELOCITA.PAS |
| WARTEN.PAS | WUERFEL.PAS | ZAEHLER.PAS | ZEICHSEN.PAS |
| ATT.BGI | CGA.BGI | EGAVGA.BGI | HERC.BGI |
| IBM8514.BGI | PC3217.BGI | OSZI.EXE | OSZI.PAS |
| ZEITTEST.EXE | ZEITTEST.PAS |
UNIT Komampel;
INTERFACE
uses crt;
type
bytestring = string[8]; (*Datentyp fuer die Parameteruebergabe
bei der Prozedur Binaus *)
procedure Ausgeben (Byt:integer); (*Gibt den in Byt uebergebenen
Wert auf dem definierten Druckerport
als Binaerzahl aus. *)
function Einlesen : Byte; (*Liest die Steuerleitungen auf dem
definierten Druckerport und uebergibt
den Wert als Byte *)
procedure Warte (Zeit : real); (*Macht eine Pause der angegebenen
Laenge. Die Zeit wird als Dezimalzahl
in Sekunden angegeben.*)
procedure BinAus (BitMuster: ByteString);(*Gibt das uebergebene
Bitmuster nach Umwandlung in eine Zahl
vom Typ Byte auf dem definierten
Druckerport aus.
Der übergebene String hat die
Struktur '01010101' fuer
das entsprechende Bitmuster. *)
function sensor : boolean; (* Liest den Wert der Sensorleitung
der Kombiampel ein und verwandelt
ihn in einen boolschen Wert.
Wenn der Sensor hell ist, ist sein
Wert TRUE, sonst FALSE. *)
function taster : boolean; (* Liest den Wert des Tasters der
Kombiampel ein und verwandelt ihn in
einen Boolschen Wert.
Wenn der Taster gedrückt ist, ist
sein Wert TRUE, sonst FALSE. *)
function schalter : boolean; (* Liest den Wert des Schalters der
Kombiampel ein und verwandelt ihn in
einen Boolschen Wert.
Wenn der Schalter geschlossen ist,
die Eingangsbuchsen sind dann
ueberbrueckt, ist sein Wert TRUE,
sonst FALSE. *)
function tastatur : boolean; (* Fragt nach, ob eine Taste auf der
Tastatur gedrueckt worden ist. *)
procedure Lauflicht_ein; (* Schaltet die Kombiampel auf den *)
procedure Ampel_ein; (* entsprechenden Betrieb um. *)
procedure Wuerfel_ein;
procedure Disco_ein;
procedure aendere_schnittstelle(stelle : char);
(* Mit Stelle = '1', '2' oder '3' kann
die Schnittstelle, ueber die die
Steuerung der Kombiampel geschieht,
waehrend der Laufzeit des Programms
geaendert werden. Die angegebene
Schnittstelle muss allerdings im
Rechner vorhanden sein, sonst koennte
es zu Abstuerzen fuehren. *)
function welche_schnittstelle : char;
(* Mit der Funktion kann man zur
Laufzeit des Programms feststellen,
welche Schnittstelle gerade aktiv ist.
Die Schnittstelle wird normalerweise
beim Programmstart automatisch auf die
hoechste verfuegbare Schnittstelle
eingestellt.
Diese Einstellung kann mit der
Prozedur aendere_schnittstelle
geaendert werden.
Um diese Aenderung nicht in jedem
Programm durchfuehren zu muessen,
kann in das aktuelle Verzeichnis
eine Textdatei LPTPORT.INI
geschreiben werden, die nur eine der Zeilen
LPT1:
LPT2:
LPT3:
enthaelt, je nach Bedarf.
Es wird dann diese Schnittstelle benutzt.
Um nach dem Programmlauf wieder drucken
zu können, muß der Rechner neu gestartet
werden!*)
Sie entspricht der Unit KOMAMPEL, ist aber für den Betrieb
mit Turbo PASCAL 3 vorgesehen, falls noch jemand damit arbeitet.
Hier muß nur am Anfang jedes Hauptprogramms die Anweisung INIT;
stehen damit die Druckerschnittstelle richtig definiert wird.
Statt USES KOMAMPEL steht zu Beginn des Programms dann:
(*$I KOMAMPEL.INC*).
(* AMPELDEM.PAS *)
program Ampeldemo;
uses komampel;
procedure Lauflicht;
begin
lauflicht_ein;
writeln('Lauflicht');
ausgeben(255);
warte(1);
ausgeben(0);
warte(1);
end;
procedure Ampel;
begin
ampel_ein;
writeln('Ampel');
ausgeben(255);
warte(1);
ausgeben(0);
warte(1);
end;
procedure Disco;
begin
disco_ein;
writeln('Disco');
ausgeben(255);
warte(1);
ausgeben(0);
warte(1);
end;
procedure Wuerfel;
begin
wuerfel_ein;
writeln('Würfel');
ausgeben(255);
warte(1);
ausgeben(0);
warte(1);
end;
begin
repeat
writeln('Taster, Sensor oder Schalter betätigen');
warte(0.5);
if taster or sensor or schalter then
begin
Lauflicht;
Wuerfel;
Disco;
Ampel;
end;
until tastatur;
end.
Zurück zur Hauptseite
Burkhard John
29.6.1999