31.10.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!