1. Wir haben eine Möglichkeit kennen gelernt, eine Grafik auf einen Knopf vom Typ TBitBtn zu erzeugen. Nennen Sie diese Möglichkeit!
Um die BitBtns zu ändern, ändern wir die Eigenschaft KIND des Buttons.
2. In welchem Bereich werden Zufallszahlen durch die folgenden Zeilen erzeugt? a) Zfz:= Random (20)+10 = Zwischen 10 und 20b) Zfz:= Random (10)+20 = Zwischen 20 und 10c) Zfz:= Random (55)+44 = Zwischen 44 und 55d) Zfz:= Random (33)-62 = Zwischen -62 und 33
3. Durch welchen Quelltext erzeugt man ganzzahlige Zufallszahlen in folgenden Bereichen und weist sie der Variablen Zfz zu? a) von 20 bis 40 Zfz:= random(40)+10b) von 50 bis 100 Zfz:= random(100)+40c) von -5 bis 5 Zfz:= random(5)-5d) von -30 bis -15 Zfz:= random(-15)-30
4. Was versteht man unter einer lokalen Variablen? Was ist ihr Gültigkeitsbereich und wo kann man sie deklarieren?
Lokale Variablen werden nur an eiener bestimmten Stelle einer Prozedur sichtbar wenn z.B. eine Rechenprozedur erfolgt. Sie wird unter VAR deklariert also zu begin einer Prozedur.
5. Was versteht man unter einer globalen Variablen? Was ist ihr Gültigkeitsbereich und wo kann man sie deklarieren?
Globale Variablen sind im ganzen Programm sichtbar . Es ist nicht notwendig, sie beim Aufruf einer Funktion als IMPLEMENTATION deklariert.
6. Nennen Sie mindestens 4 vordefinierte Farbkonstanten mit ihrer deutschen Bedeutung!
clRed = RotclBlue = BlauclBlack = SchwarzclWhite = Weiß
7. Wie kann man die Schriftfarbe eines Labels/Panels zur Laufzeit ändern?
ErgebnisPanelErgebnisLabel.Font.Color=Farbe(z.B:clBlue)
8. Wie kann man die Schriftgröße eines Labels/Panels zur Laufzeit ändern?
ErgebnisPanelErgebnisLabel.Font.Height=Größe
9. Nennen Sie ein Ereignis, das jeweils beim Start des Programms auftritt. Wie kann man eine Ereignisbehandlungsroutine für dieses Ereignis erzeugen?
Bei schnelleren Rechnern in einigen Delphi-Versionen kann es passiere dass es Fehler bei der Kompelierung des Wortes SetFocus gibt einer Datei entstehen.Folgende Prozedur löst dieses Problem:
if Sender=Button then EingabeEdit.SetFocus
10. Wie kann man den Text in einem Edit-Feld zur Laufzeit löschen?
In dem man bei TEXT den Text entfernt.
11. Wie kann man die Ausgabe auf einem Panel zur Laufzeit löschen?
In dem man bei Caption den Text entfernt.
12. Wenn eine bestimmte Bedingung erfüllt ist, sollen 3 Anweisungen ausgeführt werden. Wie kann man das erreichen?
IF, THEN, ELSE mit diesen Wörtern.
13. Wie kann der Fokus zur Laufzeit auf ein Edit-Feld gelenkt werden?
14. Wie kann der Fokus zur Laufzeit auf ein Label gelenkt werden?
15. Wie kann man erreichen, dass in einem Programm durch Aufruf der Funktion Random wirklich zufällige Zufallszahlen erzeugt werden?
In dem diese Prozedur bei Implementation mit dem Wort Randomize deklariert ist.
var Zfz,Eingabe,Anzahl:Integer; {Deklaration globaler Variablen}
procedur TForm1.FormCreate(Sender: TObject);
begin Randomize; Zfz:=random(100)+1 {Erzeugt eine Zufallszahl zwischen 1 und 100}
16. Beschreiben Sie einen Weg, wie man mit möglichst wenigen Versuchen eine Zufallszahl in einem bestimmten Bereich ermitteln kann. Wie viele Versuche benötigt man nach dem von Ihnen genannten Verfahren maximal, um eine Zahl im Bereich von 100, 1000, 2000 bzw. 10000 Zahlen richtig zu erraten? Begründen Sie Ihre Aussage!
Man tippt die Hälfte des Zahlenbereiches ein um so zu sehen ob die Zahl Größer bzw. Kleiner ist als die Vermutung. Wenn dasteht das die gesuchte Zahl kleiner ist als die Vermutung sollte man die Hälfte zwischen dem Minimum und er 1. Vermutung wählen um so den Bereich noch weiter einzugrenzen.100 - 5 bis 10 Versuche, da die Hälfte 50 und davon die Hälfte 25(Vermutung zu groß oder 75(Vermutung zu klein).1000 - 10 bis 15 oder 20 Versuche2000 - 20 bis 30 Versuche10000 - 30 bis 50 Versuche
17. warum ist es sinnvoll, ein Programm strukturiert aufzuschreiben?
Zur besseren Lesbarkeit des Programms und zur schnelleren Fehlersuche
18. Welche Regeln zur Strukturierung von Programmen kennen Sie?
Anweisungen, die zusammengehören gleich weit eingerücken. neue Absätze nach Berechnungen von Zahlen, Deklarationen von Variablen, etc.
19. Wie kann man Werte von einer Prozedur in eine andere Prozedur übergeben? Wo findet dies in unserem Programm Anwendung?
Bei den Zufallszahlen sind die Zfz in der Porzedur FormCreate definiert Zfz:=random(100)+1 Diese Zahl die sich der Computer ausgesucht hat wird dann unter der Prozedur RatenButtonClick verwendet um so zu sehen ob die Zahl unserer Vermutung entspricht.
Für die nächsten 4 Aufgaben soll der folgende Sachverhalt gelten: In einem Programm ist eine globale Variable mit Namen ZAHL deklariert. In einer Prozedur (Button1Click) wurde auch eine Variable mit Namen ZAHL deklariert, eine zweite Prozedur (Button2Click) enthält keine Variable mit Namen ZAHL.
20. Wie ändert sich der Wert der globalen Variablen ZAHL, wenn der Inhalt der Variablen ZAHL in der Prozedur Button1Click auf den Wert 20 gesetzt wird?
ZAHL steigt um 20
21. Wie ändert sich der Wert der globalen Variablen ZAHL, wenn der Inhalt der Variablen ZAHL in der Prozedur Button2Click auf den Wert 50 gesetzt wird?
ZAHL bleibt genauso
22. Wie ändert sich der Wert der lokalen Variablen ZAHL in der Prozedur Button1Click, wenn der Inhalt der globalen Variablen ZAHL auf den Wert 100 gesetzt wird?
ZAHL wird 100
23. Wie ändert sich der Wert der Variablen ZAHL in der Prozedur Button2Click, wenn der Inhalt der globalen Variablen ZAHL auf den Wert 100 gesetzt wird?
ZAHL bleibt so
1. Nennen Sie mindestens 6 Eigenschaften, welche sowohl die Panel- als auch die Editkomponente besitzen, und beschreiben Sie deren Bedeutung!
dienen der Textausgabe (nach einer Prozedur können Wörter ect. ausgegeben/angezeigt werden)
text(bei Edit)/caption(bei Panel) = Aufschrift des Elementes
name = Name des Elementes im Object Inspector
visible = ob das Element sichtbar oder unsichtbar ist
height = Höhe des Elementes
width = Breite des Elementes
2. Warum ist es sinnvoll, die Eigenschaft NAME bestimmter Komponenten zu ändern? Bei welchen Komponenten macht das wenig Sinn?
Um später beim beschreiben einer Prozedur genau die Sachen zu benutzen die man brauch, also dient sie z.B. zum Zewck der Übersichtlichkeit.
3. Wie kann man ein Ereignis erzeugen, das auf das Drücken eines Knopfes reagiert?
Mit Doppelklick auf einen Button oder einer definierten Stelle löst man eine Prozedur aus, die in der Unit vom Author definiert ist. Wenn dieser Vorgang definiert ist und Delphi das Programm kompiliert hat braucht man nur noch auf den Button mit dem Mauszeiger klicken und das Ereignis wird ausgelöst.
4. Geben Sie einen Variablentyp an, in dem man ganze Zahlen speichern kann! Welcher Variablentyp wird zum Speichern gebrochener Zahlen benutzt?
Variablentyp für ganze Zahlen: INTEGER von -2147483648 bis 2147483647
Variablentyp für gebochene Zahlen: REAL von +-2,9*10^-39 bis +-1,7*10^38
5. Wie kann man einer Variablen in Delphi einen Wert zuweisen?
In der Unit, also dem Protokoll des zu schreibenden Programmes, werden nach dem Doppelklick womit die Prozedur ausgleöst wird(wie in Aufgabe 3 schon beschrieben) unter VAR(Variablen) die Variablen benannt die dann unter BEGIN genau definiert werden z.b:
procedur TForm1.RechnenButtonClick(Sender: TObject);
var Laenge, Breite, Flaeche ...:Datentyp [z.B. Integer (siehe Aufgabe 4)]
begin Laenge:=StrToInt(SeiteAEdit.Text);...
Flaeche:=Laenge*Breite;
6. Welche Funktionen zur Umwandlung von Variablentypen haben Sie bisher kennengelernt? Beschreiben Sie deren Aufgaben.
Laenge:=StrToInt(SeiteEdit.Text) = Nehme die Eingabe aus SeiteEdit vom Typ INTEGER und nehme diese als Laenge.FlaecheEdit.Text:=IntToStr(Flaeche) = Nehme das Ergebnis aus der Flaeche(die in der Procedur beschrieben ist) und gebe diese als ganze Zahl(Integer) in FlaecheEdit aus.DiagonaleEdit.Text:=FloatToStrF(Diagonale,ffFixed,10,2) = Neheme das Ergebnis aus Diagonale und gebe diese als gebrochene Zahl vom Typ REAL mit 2 Stellen nach dem Komma in DiagonaleEdit aus.
Celsius:=StrToFloat(CelsiusEdit.Text) = Nehmedie gebrochene Zahl aus dem EditFeld und benutze es als die Zahl von Celsius
7. Wie kann man die Wurzel aus einer eingegebenen Integer-Zahl ziehen? Was muss dabei beachtet werden?
Durch das Wort SQRT zieht das Programm die Wurzel. Das Ergebnis muss als REAL-typ deklariert werden.
8. Eine gebrochene Zahl soll auf 3 Nachkommastellen genau auf einem Edit-Feld ausgegeben werden. Wie lautet der entsprechende Quelltext?
FeldEdit.Text:=FloatToStrF(Flaeche,ffFixed,10,3);
9. Welche Regeln gelten für die Namensgebungen bei Bezeichnern?
Sie dürfen relativ frei gewählt werden jedoch dürfen keine Sonderzeichen, Umlaute und keine Schlüsselwörter benutzt werden.
10. Welche der folgenden Namen sind gültige Bezeichner, welche nicht? Begründen Sie!
a)Seite1 gültig b)Seite 2 nicht gültig da nach "Seite" ein Leerzeichen flogt c)Flaeche_1 gültigd)_Flaeche2 gültige)Fläche2 nicht gültig da ein "ä" vorhanden istf)kleinste_Seite_des_Dreiecks gültigg)Groesste Dreieckseite nicht gültig da nach "Groesste" ein Leerzeichen flogt h)Seite*Seite nicht gültig da "*" Sonderzeichen isti)Seitenquadrat gültig j)Seite^2 "^" ist Sonderzeichen nicht gültig k)Seite² "²" ist Sonderzeichen nicht gültigl)2malHoehe gültig m)Hoehe+Hoehe nicht gültig "+" ist Sonderzeichen n)Hoehemal2 gültig o)Hoehe mal 2 nicht gültig da Leerzeichen vorhanden sindp)DM2Euro gültig
Donnerstag, 22. November 2007
Abonnieren
Posts (Atom)