
Hai iniziato a programmare in C++, ma non sai come effettuare uno scambio tra variabili. Niente paura! Te lo spieghiamo noi.
Come scambiare due variabili
Anche se può sembrare semplice, alcuni programmatori alle prime armi trovano difficoltà nel creare questo tipo di scambio. Il mio consiglio è di provarlo a fare da solo senza copiare ed incollare ciò che scriverò di seguito.
Prima di tutto dobbiamo dare un nome alle nostre variabili. Per pura e piacevole comodità, le chiamerò x e y. Ad esse va aggiunta un altra variabile “temporale”, ovvero temp. Ci permetterà di dare in prestito un valore quando ne avremo bisogno. Inizializziamo quindi le tre:
float x, y, temp;
Vi ricordo che mettendo float possiamo usare anche i numeri con la virgola, il che renderà tutto più semplice in fase di programmazione.
Dopo aver inizializzato le nostre variabili, dobbiamo assegnargli un valore. In questo esempio, sarà l’utente che utilizzerà il programma ad inserire dei valori. In un altro caso, potrebbe essere già il programma a darveli. Detto questo, diciamo all’utente di inserire un valore ad x e uno a y:
cout<<"Inserisci x ";
cin>>x;
cout<<"Inserisci y ";
cin>>y;
Ora che abbiamo il valore di x e il valore di y, non ci resta altro che svolgere il problema che ci siamo posti all’inizio. Ovvero scambiare le due variabili. Quindi x avrà il valore di y e y il valore di x.
In questo esempio il valore di x sarà 1 mentre quello di y sarà 2.
Le righe da scrivere sono 3. Per farvi capire meglio vi spiegherò tutto passaggio per passaggio. In questo momento x=1, y=2, temp=0.
temp=x;
Il primo passaggio da fare, come vedete qui sopra, è scrivere temp=x. In questo modo temp, che valeva zero, ora avrà un valore uguale a x, cioè 1. La nostra variabile temporanea d’appoggio farà nel programma il “lavoro sporco”.
Ora quindi x=1, y=2, temp=1.
x=y;
Nel secondo passaggio scriviamo che x è uguale a y. Quindi se prima x aveva un valore pari a 1, ora ha un valore di 2, cioè quello dell’altra variabile. Fatto questo, y rimarrà col valore da noi assegnato e non subirà cambiamenti.
Ora quindi x=2, y=2, temp=1:
y=temp;
Nel terzo ed ultimo passaggio del nostro problema, y sarà uguale a temp. Quindi se prima y aveva un valore pari a 2 ora avrà un valore uguale a 1, cioè quello della variabile d’appoggio. Così facendo y avrà il valore che precedentemente aveva x e viceversa.
Nel passaggio finale x=2, y=1, temp=1.
N.B.= La variabile temp nel passaggio finale rimarrà con il valore della prima variabile da noi assegnata. Questo non ci causa problemi in quanto temp nelle finalità di questo algoritmo è solo una variabile d’appoggio. Ha fatto il lavoro sporco, e già questo basta.
Bene, ora possiamo stampare sullo schermo le nostre variabili con i valori invertiti.
cout<<"Scambio effettuato! ";
cout<<"x = "<<x;
cout<<" y = "<<y;
In questo modo il programma darà in output i due valori da noi scambiati.
Di seguito, il programma completo:
#include <iostream>
using namespace std;
int main () {
float x, y, temp;
cout<<"inserisci x ";
cin>>x;
cout<<"Inserisci y ";
cin>>y;
temp=x;
x=y;
y=temp;
cout<<"Scambio effettuato! ";
cout<<"x = "<<x;
cout<<" y = "<<y;
}
Spero che ora ti sia tutto chiaro, e che questo tipo di cose non ti facciano più paura. Per qualsiasi domanda scrivi un commento o contattaci a: programmazionepertutti@gmail.com @redazioneprogrammazionepertutti