Kontrollfragen 4

Funktionen/Units/Prozeduren

1. Nennen Sie mindestens 4 Gemeinsamkeiten von Funktionen und Prozeduren!

- werden im Deklarationsteil der Unit deklariert

- enthalten nur formale Parameter und lokale Variablen

- bestehen aus Kopf-/Deklarations- und Anweisungsteil zwischen "begin" und "end"

- werden im aufrufenden Unterprogramm mit Namen und evt. Parameterliste  aufgerufen

2. Wie viele Werte können an eine Funktion übergeben werden?

- es können beliebig viele Werte übergeben werden oder auch keiner

3. Wie viele Werte kann eine Funktion zurückliefern?

- gibt genau eien Wert zurück

4. Wie viele Werte kann eine Prozedur zurückliefern?

- beliebig viele

5. Beschreiben sie den allgemeinen Aufbau einer Funktion!

function Funktionsname (formale Parameter: Typ) 
begin

Anweisung 
end;

6. Beschreiben Sie die verschiedenen Varianten zur Rückgabe der Werte bei Funktionen. Welche dieser Varianten sollte man bevorzugen? Warum?

Variablennamen result oder Funktionsname



7. Beschreiben Sie den allgemeinen Aufbau einer Prozedur!

procedure Prozedurenname (formale Parameter:typ) 
var lokale Varible: typ 
begin
Anweisung
end;



8. Nennen Sie drei Vorteile der Arbeit mit Units!

- das Programm ist übersichtlicher

- sie sind compilierbarund bieten somit einen Zeitvorteil

- sie können auch in anderen Programmen verwendet werden

9. Aus welchen drei Teilen besteht eine Unit mindestens?

- mindestens aus Kopfzeile , Interfaceteil und Implementierungsteil

10. Welche zwei weiteren Teile kann eine Unit noch besitzen?

- Initialisierungsteil undFinalisierungsteil


11. Beschreiben Sie die Funktion und den Aufbau der einzelnen Teile der Unit!

UNIT UNIT2;

INTERFACE

IMPLEMENTATION

END.

TITEL-ODER KOPFZEILE: Schlüsselwort: UNIT ;
z.B. UNIT RECHNEN;

- der Unitname  muss mit dem Dateinamen der Unit (Rechnen.pas) übereinstimmen

INTERFACE-TEIL: Schlüsselwort INTERFACE.

- enthält die Liste aller öffentlicher Bezeichner, die an andere Programme oder Programmteile exportiert werden dürfen (z.B. Funktionen, Prozeduren, Variable, Datentypen, Konstanten)

- andere Teile, die als Hilfsprozeduren notwendig sind, können nach außen hin versteckt werden

IMPLEMENTIERUNGSTEIL: Schlüsselwort IMPLEMENTATION.

- dort befinden sich die eigentlichen Programmblöcke zu den unter INTERFACE aufgeführten "Öffentlichen" Funktionen und Prozeduren

- können noch weitere Proz./Funkt. Variablen, Typen,... deklariert werden, die aber nur im Implementierungsteil genutzt werden können und im Interface-Teil nicht zur Verfügung stehen.

INITIALISIERUNGS-TEIL: Schlüsselwort INITIALIZATION

- dient dazu, Operationen durchzuführen, die nur einmal, zum Start des Programms aufgerufen werden sollen

- man kann das vergleichen mit dem Aufruf der Prozedur FORMCREATE (S. Projekt Zahlenraten), nur besitzt unsere selbst geschriebene Unit ja kein Formular.

- Unit wird abgeschlossen mit dem Schlüsselwort end

FINALISIERUNGS-TEIL: Schlüsselwort FINALIZATION.

- dient dazu, Operationen durchzuführen, die nur einmal, nämlich beim Schließen des Programms, durchgeführt werden sollen. Das kann z. B. die Freigabe von Systemressourcen sein, die vorher vom Programm belegt wurden. Der Finalisierungs-Teil beginnt mit dem Schlüsselwort FINALIZATION, er steht noch vor dem abschließenden END. des Programms.


12. Welche Einschränkungen gelten für die Kopfzeile einer Unit?

- der Name der Unit muss mit dem Dateinamen der Unit (Rechnen.pas) übereinstimmen

- keine Umlaute oder Sonderzeichen oder Leerzeichen

13. Wie kann man eine neue Unit erzeugen?

- Menü DATEI, den Punkt NEU. Dann Punkt UNIT und OK 

14. Wie und wo kann man eine vorhandene Unit in ein neues Programm einbinden?

- neue Unit einbinden mit Namen der Unit und uses im Implementierungsteil   

15. Nennen Sie je ein Beispiel für vorhandene Delphifunktionen, die mit keinem, mit einem bzw. mit mehreren Parametern aufgerufen werden!

- die Zufallszahl hat keine Parameter

- Mittelwert hat einen Parameter oder Kreisfläche

- Zahlenordnen hat mehrere Parameter

16. Was passiert, wenn man bei der von uns behandelten Prozedur TAUSCHE das Schlüsselwort VAR in der Kopfzeile weglässt?

- die zu tauschenden Werte können nicht zurückgegeben werden, d.h die Zahlen werden nicht geordnet

17. Wie kann man eine Funktion in eine gleichnamige Prozedur umwandeln? Was ändert sich am Aufruf der Prozedur gegenüber dem Aufruf der Funktion?

function Kreisflaeche (r: real) : real;

begin

result:=Pi*r*r

en; 

---> 

procedure Kreisflaeche (r: real; var kreis: real); 

begin

kreis:= Pi*r*r;

end;


18. Wie kann man den Wert von zwei Variablen tauschen?

procedure Tausche (var Zahl1,Zahl2:integer);
var Merke:integer;
begin
Merke:= Zahl1;
Zahl1:= Zahl2;
Zahl2:= Merke;
end;

mit einer Hilfsvariablen

12.2.07 13:30, kommentieren