Informatik/Jahrgangsstufe Eph/001 Klausuren/2006

Transcrição

Informatik/Jahrgangsstufe Eph/001 Klausuren/2006
1. INFORMATIKKLAUSUR
Name:
IF1-Informatik 11 GK (GA)
Aufgabe 1:
19.12.2006
− Seite 1 −
Bearbeitungszeit: 90 min.
Ereignissteuerung
Die Frontleuchten einer amerikanischen Lok werden vom Lokführer mithilfe eines einfachen
Fußschalters bedient, der vier mögliche Schaltungen hintereinander ausführt (siehe Abb. 1)
Abbildung 1: Schaltungszustände der Lichtanlage
Zur Information, welcher Schaltungszustand gerade aktiviert ist, erscheint eine römische Zahl
auf der Kontrollanzeige.
a) Das Formular besteht aus unterschiedlichen Oberflächen-Komponenten.
Benennen Sie alle Oberflächenelemente sinnvoll.
b) Der Button Schalter sorgt dafür, dass die einzelnen Zustände "durchgeschaltet" werden.
Implementieren Sie die Click-Prozedur des Buttons.
c) Die Lokomotive soll zu einer Weihnachtslok werden, bei der die Lichter automatisch die
einzelnen Zustände durchlaufen, ohne dass der Schalter gedrückt werden muss.
Erläutern Sie, was Sie in diesem Projekt ändern müssten.
Hinweis: Eine Implementierung ist hier nicht erforderlich, lediglich eine Beschreibung
dessen, was geändert werden müsste.
bitte wenden...
1. INFORMATIKKLAUSUR
Name:
IF1-Informatik 11 GK (GA)
Aufgabe 2:
19.12.2006
− Seite 2 −
Bearbeitungszeit: 90 min.
Kontrollstrukturen
Das Spiel Kniffel wird mit fünf Würfeln gespielt. In Delphi wird dazu die folgende
Datenstruktur definiert:
type TWuerfel = array[1..5] of integer;
Im Programm ist eine Hintergrundvariable definiert:
private
Wuerfel: TWuerfel;
Startet man das Spiel, so präsentiert sich das Programm wie folgt (Abbildung 2):
Abbildung 2: Start des Kniffelspiels
a) Beim Klick auf den Button Würfeln, sollen die Hintergrundvariable Wuerfel mit sechs
zufälligen Würfelergebnissen belegt werden und diese Ergebnisse auf dem Formular im
StringGrid ausgegeben werden.
Zudem sollen die drei übrigen Buttons entsperrt sein und der Informationstext soll geändert
sein. (siehe Abbildung 3)
Implementieren Sie die Cklick-Prozedur.
Abbildung 3: Programm nach dem Würfeln
b) Der Button Kniffel? soll überprüfen, ob ein Kniffel gewürfelt wurde. Kniffel bedeutet
dabei, dass alle Würfel den gleichen Wert haben.
Die Click-Prozedur sieht dafür wie folgt aus:
procedure TForm1.B_KniffelClick(Sender: TObject);
begin
if istKniffel(Wuerfel) = true
then E_Ausgabe.Text:= 'Hurra, Kniffel!'
else E_Ausgabe.Text:= 'Leider kein Kniffel';
end;
Implementieren Sie die Funktion function istKniffel!
bitte wenden...
Name:
IF1-Informatik 11 GK (GA)
1. INFORMATIKKLAUSUR
Bearbeitungszeit: 90 min.
19.12.2006
− Seite 3 −
c) Erläutern Sie die Idee des folgenden Algorithmus zur Prüfung, ob ein Viererpasch vorliegt.
Gehen Sie dabei insbesondere auf die Bedeutung der beiden Schleifen ein.
function istViererpasch(Wuerfel: TWuerfel): boolean;
var zahl, i, anzahl: integer;
begin
result:= false;
for zahl:= 1 to 6
do begin
anzahl:= 0;
for i:= 1 to 5
do if Wuerfel[i]=zahl
then anzahl:= anzahl + 1;
if anzahl=4
then result:= true
end;
end;
d) Drückt der Benutzer auf den Chance-Button, so folgt die Berechnung der Augensumme
und eine entsprechende Ausgabe (siehe Abbildung 4).
Abbildung 4: Programm nach der Chance-Berechnung
Eine Funktion für die Berechnung der Augensumme ist wie folgt gegeben:
function augensumme(Wuerfel: TWuerfel): integer;
var i: integer;
begin
result:= 0;
for i:= 1 to 5
do result:= result+ Wuerfel[i];
end;
Formulieren Sie diese Funktion unter folgenden Gesichtspunkten um:
(i) Ersetzen Sie die for-Schleife durch eine andere ihnen bekannte Schleifenstruktur
(ii) Verwenden Sie eine Prozedur anstatt einer Funktion.
Viel Erfolg!