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!