Module: Sottoprogrammi: procedure e funzioni - 1


Problem

11/11

Cambiare Argomenti

Theory Click to read/hide

Attività
Scrivi una procedura che scambia i valori di due variabili.

La particolarità di questo compito è che abbiamo bisogno che le modifiche apportate alla procedura diventino note al programma chiamante.

Proviamo a scrivere la procedura in questo modo: static void Swap (int a, int b) // con una tale descrizione dei parametri della procedura, { // copierà i valori degli argomenti (x e y) intero c; // le variabili a e b sono variabili indipendenti non correlate a x e y c = un; un = b; b=c; } vuoto statico Main() { int x=1, y=2; Scambia(x, y); //i valori delle variabili x e y (argomenti) vengono copiati nei parametri a e b, x = 1, y = 2 } Se esegui questo programma, puoi vedere che i valori delle variabili x e y non sono cambiati. Affinché i parametri modifichino i valori degli argomenti, è necessario utilizzare i dati che passano per riferimento. Per fare ciò, è necessario scrivere ref prima del nome del tipo di dati nell'intestazione del sottoprogramma. void Swap ( ref int a, ref int b ) // ora le variabili a e b ottengono gli indirizzi delle variabili x e y in memoria { intero c; c = un; un = b; b=c; } vuoto statico Main() {   int x=1, y=2;   Scambia(ref x, ref y); Applicazione: se passi un argomento per riferimento, solo il nome della variabile (NON un numero e NON un'espressione aritmetica) può stare in questo posto quando chiami la procedura.

Non puoi chiamare una procedura come questa:
Scambia(x, 4);
Scambia(5+x, y);

Problem

Scrivi una procedura che scambia i valori di due variabili. Trova e correggi gli errori in questa procedura.
 
Esempio
# Input Uscita
1 1
2
2
1