Module: Routinen: Prozeduren und Funktionen - 1


Problem

11/11

Sich ändernde Argumente

Theory Click to read/hide

Ziel
Legen Sie ein Verfahren ein, das zwei Variablen ändert.

Die Besonderheit dieser Aufgabe ist, dass wir die im Verfahren vorgenommenen Änderungen benötigen, um dem herausfordernden Programm bekannt zu werden.

Versuchen wir, so ein Verfahren zu schreiben:
statisches Leerzeichen Swap (int a, int b) / mit einer solchen Beschreibung der Parameter des Verfahrens,
{ // kopiert die Argumente (x und y)
int c; // Variablen a und b - unabhängige Variablen, die nicht mit x und y verbunden sind
c = a = b; b = c
♪
statische Leere Main()
{~}
int x = 1, y = 2
Swap (x, y); / Werte der Variablen x und y (Argumente) werden auf die Parameter a und b, x = 1, y = 2 kopiert
♪
Wenn dieses Programm gestartet wird, kann man erkennen, dass sich die Variablen x und y nicht geändert haben. Damit die Parameter die Bedeutung der Argumente ändern, sollte die Übertragung der Referenzdaten verwendet werden. Zu diesem Zweck sollte vor dem Namen der Art der Daten der Titel des Teilprogramms geschrieben werden ref
Leer Swap ( ref int a, ref int b ) // nun Variablen a und b empfangen Variablen x und y im Speicher
{~}
int c;
c = a = b; b = c
♪
statische Leere Main()
{~}
int x = 1, y = 2
Swap (ref x, ref y);

Anwendbarkeit: Wenn Sie das Referenzargument geben, kann der einzige Name der Variable auf Antrag des Verfahrens vorliegen (Keine Nummer und nicht arithmetische Ausdruck).

Das Verfahren ist nicht so zu fordern, wie:
Swap(x, 4);
Swap(5+x, y);

Problem

Legen Sie ein Verfahren ein, das zwei Variablen ändert. Finden und korrigieren Sie die Fehler in diesem Verfahren.
Beispiel
NeinEingangsdatenAusgangsdaten
11
2
2
1