DCP_REDABAS4__Progra.. - Das ist die Eingangsseite, an der ...
DCP_REDABAS4__Progra.. - Das ist die Eingangsseite, an der ...
DCP_REDABAS4__Progra.. - Das ist die Eingangsseite, an der ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Beispiel:<br />
DO progl WITH "ABC", sO, sl+1.27, DATE( )<br />
I I I I<br />
progi: PARAMETERS pI, p2, p3, p4<br />
Beim Aufruf durch DO ... WITH muessen so viele Ausdruecke folgen,<br />
wie das <strong>Progra</strong>mm unter PARAMETERS Namen aufgefuehrt hat.<br />
PARAMETERS bewirkt implizit ein PRIVATE fuer <strong>die</strong>se Namen, d.h.<br />
sie stehen als lokale Speichervariable bereit. Ihr (Anf<strong>an</strong>gs-)<br />
Inhalt entspricht dem Wert <strong>der</strong> korrespon<strong>die</strong>renden Ausdruecke<br />
beim Aufruf, <strong>an</strong>alog werden Datentyp und typabhaengige Attribute<br />
zugewiesen.<br />
Diese Uebergabemethode hat folgende Vorteile:<br />
- keine starre Kopplung von <strong>Progra</strong>mm und Umgebung durch feste<br />
Namen, das gerufene <strong>Progra</strong>mm verwendet ausschliesslich seine<br />
unter PARAMETERS vereinbarten Namen und braucht <strong>die</strong> Quellen<br />
<strong>der</strong> uebergebenen Werte nicht zu kennen;<br />
- Eingabeparameter ("in"-Klasse) koennen neben einzelnen Speichervariablen<br />
auch Ausdruecke sein, <strong>die</strong> waehrend des Aufrufs<br />
berechnet werden.<br />
Auch <strong>die</strong> Rueckmeldung <strong>der</strong> Ergebnisse k<strong>an</strong>n ueber Parameter<br />
(l'inout'l o<strong>der</strong> "out"-Klasse) erfolgen. Dazu darf <strong>der</strong> Parameter<br />
aber keine gewoehnliche lokale Variable erzeugen, son<strong>der</strong>n muss<br />
ein Verweis (Referenz) auf eine in <strong>der</strong> Umgebung ex<strong>ist</strong>ierende<br />
(uebergeordnete) Speichervariable bewirken. Ueber den lokal<br />
geltenden Namen sind d<strong>an</strong>n Speicherplatz und Attribute <strong>der</strong> verborgenen<br />
aeusseren Variablen im Zugriff.<br />
Die Form eines im DO ... WITH-Bef~hl uebergebenen Ausdrucks entscheidet<br />
ueber <strong>die</strong> Uebergabeart:<br />
Art des Uebergabe-Ausdrucks<br />
bei WITH<br />
<br />
<br />
<br />
M-><br />
-><br />
komplexere Ausdruecke<br />
resultierende Uebergabeart I<br />
und Anwendung<br />
I<br />
============================1<br />
Referenz-Uebergabe<br />
I<br />
("by reference " )<br />
I<br />
fuer "out","inout"(,"in")<br />
J<br />
----------------------------1<br />
I<br />
I<br />
nur fuer 11 10 I<br />
11<br />
I<br />
Wert-Uebergabe<br />
("by value")<br />
Wert-Uebergabe hat den Vorteil, dass komplexe Ausdruecke <strong>an</strong>gebbar<br />
sind und keine Verfaelschung von Quellvariablen <strong>der</strong> Umgebung<br />
eintreten k<strong>an</strong>n ("in"); Ergebnisrueckmeldungen sind dadurch<br />
nicht moeglich.<br />
Referenz-Parameter sind noetig, um eine Rueckmeldung im Parameter<br />
zu erlauben. Sie sollten aber nur zu <strong>die</strong>sem Zwecke verwendet<br />
werden ("out", "inoutli), weil alle Zuweisungen zu solchen<br />
Parametern im gerufenen <strong>Progra</strong>mm sich eigentlich in <strong>der</strong> Quellvariablen<br />
ausserhalb des <strong>Progra</strong>mms vollziehen.<br />
Je nachdem, ob <strong>der</strong> zur Rueckmeldung bestimmte Parameter auch<br />
eine Eingabebedeutung hat ("inout") o<strong>der</strong> nicht ("out"), ergeben<br />
sich zwei Arbeitsprinzipien, <strong>die</strong> im folgenden Beispiel skiz-<br />
- 192 -