Ziel: ein Verfahren entwickeln, das die Orte der beiden Variablen verändert.
Die Besonderheiten dieser Aufgabe sind, dass wir die Änderungen des Verfahrens, das dem herausfordernden Programm bekannt ist, vornehmen müssen.
Versuchen wir, so ein Verfahren zu schreiben:
var x, y: ganze Zahl;
Verfahren Swap (a, b: ganze Zahl); / mit einer solchen Beschreibung der Parameter des Verfahrens,
var c: ganze Zahl;
beginnen // kopieren Sie die Argumente (x und y)
/ Variablen a und b - unabhängige Variablen, die nicht mit x und y zusammenhängen
c: = a;
a: = b;
b: = c;
Ende;
Anfang
x := 1;
= 2.
Swap (x, y); / Werte der Variablen x und y (Argumente) werden auf die Parameter a und b kopiert
Schreibln('x = ', x, ', y = ', y; / x = 1, y = 2
Ende.
Wenn dieses Programm gestartet wird, ist zu erkennen, dass die Variablenwerte variabel sind.
x und
y Keine Veränderung. Für die Parameter zur Änderung der Bedeutung der Argumente ist es notwendig,
Übertragung von Referenzdaten.Zu diesem Zweck sollte nach dem Namen der Art der Daten der Titel des Teilprogramms eingefügt werden
varVerfahren Swapvar a, b: ganze Zahl); // nun die Variablen a und b erhalten die Variablen x und y im Speicher
var c: ganze Zahl;
Anfang
c: = a;
a: = b;
b: = c;
Ende;
Anwendung: Wenn Sie das Argument auf der Referenz, dann wenn Sie das Verfahren anrufen, kann der einzige Name der Variable an dieser Stelle sein.
Nicht Zahl und nicht arithmetisch Ausdruck!
Der NEXT ruft das Verfahren auf:Swap (x, ANHANG;
Swap5+x, y);