Informatik/Jahrgangsstufe Eph/001 Klausuren/2004

Werbung
1. INFORMATIKKLAUSUR
Name:
IF1-Informatik 11 GK (GA)
Aufgabe 1:
Bearbeitungszeit: 90 min.
17.12.2004
− Seite 1 −
Kundenwaage
Unten sehen Sie zwei Bildschirmfotos, welche zur Simulation einer Kundenwaage gehören.
Drückt der Anwender auf die Gewicht-Buttons (z. B.
), so erhöht bzw. verringert sich
das angezeigte Gewicht entsprechend der Buttons. Drückt der Anwender anschließend auf
den Button einer Obstsorte (z. B.
), so wird das im rechten Bildschirmfoto
angezeigte Etikett ausgegeben, welches mit dem Button
wieder unsichtbar
gemacht wird.
a) Welche Oberflächenobjekte wurden bei diesem Projekt benötigt? Nennen Sie jeweils die
Art, die Anzahl und einen Vertreter bei seinem möglichen Namen.
Beispiel: Es gibt 11 Buttons: Der Button
könnte zum Beispiel B_Bananen heißen.
Es gibt ...: Das ... könnte z. B. ... heißen. ...
b) Wie erreicht man es, dass die Eingabefelder für den Preis/kg gesperrt sind? Nennen Sie
zwei Möglichkeiten.
c) Implementieren Sie die Ereignisprozeduren zu den Buttons
und
. Die Ausgabe
des Gewichts darf auch unformatiert geschehen. Allerdings soll darauf geachtet werden,
dass das Gewicht nicht negativ und nicht größer als 5 kg wird. Um dem vorzubeugen
sollen immer nur die Buttons aktiviert sein, die auch wirklich gedrückt werden dürfen.
D. h., zu Anfang wären die Buttons
und
gesperrt.
d) Implementieren Sie eine Funktion, welche als Parameter zwei Dezimalzahlen bekommt
und als Ergebnis das Produkt beider Parameter zurückgibt. Diese kann dann später dafür
verwendet werden, den Gesamtpreis zu berechnen.
function Produkt(...): ...
bitte umblättern...
1. INFORMATIKKLAUSUR
Name:
IF1-Informatik 11 GK (GA)
Bearbeitungszeit: 90 min.
17.12.2004
− Seite 2 −
e) Unten sehen Sie die Ergeignisprozedur zum Button
. Sie finden dort den Aufruf
einer Prozedur, welche die Ausgabe des Etiketts bewirkt. Implementieren Sie diese
procedure EtikettAusgabe(...).
Hinweis: Machen Sie innerhalb dieser Prozedur von Ihrer Funktion Gebrauch, die Sie in
Aufgabe d) angegebenen haben!
procedure TF_Waage.B_BananenClick(Sender: TObject);
var Gewicht, PreisProKilo: single;
begin
Gewicht:= StrToFloat(E_Gewicht.Text);
PreisProKilo:= StrToFloat(E_Bananen.Text);
EtikettAusgabe('Bananen',Gewicht,PreisProKilo);
Groupbox_Etikett.visible:= true;
end;
Aufgabe 2:
Kontrollstrukturen in Delphi
a) Geben Sie die Syntax aller Ihnen bekannten Schleifen-Strukturen aus Delphi an.
Beispiel: Die Syntax der if-then-else-Anweisung lautet z. B.:
if <Bedingung>
then <Anweisung>
else <Anweisung>
b) Analysieren Sie die folgende Prozedur. Was wird im CbR-Parameter zurückgegeben?
Veranschaulichen Sie die Arbeitsweise des Algorithmus am Beispiel des Aufrufs
Berechne(3, 5, Erg) mit Hilfe einer Variablenbelegungstabelle.
procedure Berechne(zahl1, zahl2: integer; var ergebnis: integer);
begin
ergebnis:= 1;
while zahl2 > 0
do begin
ergebnis:= ergebnis * zahl1;
zahl2:= zahl2-1;
end;
end;
c) Formulieren Sie die Prozedur aus Teil b) unter folgenden Gesichtspunkten um:
(i) Ersetzen Sie die while-Schleife durch eine andere ihnen bekannte Schleifenstruktur
(ii) Verwenden Sie eine Funktion anstatt einer Prozedur.
Viel Erfolg!
Name:
IF1-Informatik 11 GK (GA)
1. INFORMATIKKLAUSUR
Bearbeitungszeit: 90 min.
Lösungen
d)
procedure TF_Waage.PreisAusgabe(Artikel: string; PreisProKG: Double);
var Gewicht: Double;
Preis: Double;
MwSt: Double;
begin
Gewicht:= StrToFloat(E_Gewicht.Text);
Preis:= PreisproKG*Gewicht;
E_Preis.Text:= FloatToStrF(Preis,ffFixed,5,2)+' DM';
E_MwSt.Text:= FloatToStrF(Preis*0.16,ffFixed,5,2)+' DM';
E_Artikel.Text:= Artikel;
E_Menge.Text:= E_Gewicht.Text;
E_PreisProKG.Text:= FloatToStrF(PreisProKG,ffFixed,5,2)+' DM';
GB_Ettikett.Visible:= true;
end;
17.12.2004
− Seite 3 −
Herunterladen