Module: (C++) Subroutine: procedure e funzioni - 1


Problem

12/12

Cambiare Argomenti

Theory Click to read/hide

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

Le peculiarità di questo compito sono che abbiamo bisogno che le modifiche apportate alla procedura diventino note al programma chiamante.

Proviamo a scrivere la procedura in questo modo: void Swap ( int a, int b ) // con una tale descrizione dei parametri della procedura, { // verranno copiati 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; } principale() { int x=1, y=2; Scambia(x, y); // i valori delle variabili x e y (argomenti) vengono copiati nei parametri a e b cout << "x=" << x<< ", y=" << y; // 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 passando i dati per riferimento. Per fare ciò, dopo il nome del tipo di dati nell'intestazione della subroutine, devi mettere il segno & ("e commerciale"). void Scambia ( int & a, 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; } Utilizzo: se passi un argomento per riferimento, solo il nome della variabile (NON un numero e NON un'espressione aritmetica) può trovarsi in questa posizione quando chiami la procedura!< br />
NON chiamare una procedura come questa: Scambia(x, 4 ); Scambia(5+x, y);

Problem

Scrivi una procedura che scambia i valori di due variabili. Prova a scriverlo senza utilizzare una variabile aggiuntiva. Correggi eventuali errori.