Interschimbarea

Dându-se două numere a și b, să se interschimbe (swap) valorile lor, astfel încât a să îi preia valoarea lui b, iar a să îi preia valoarea lui b.

Exemplu. Dacă la început, a = 5 și b = 7, după interschimbare, a = 7 și b = 5.


Metoda 1 (variabilă auxiliară)

O primă metodă ar fi să creăm o variabilă auxiliară care să rețină valoarea inițială a lui a. După aceea, lui a îi atribuim valoarea b, iar lui b îi atribuim valoarea din variabila auxiliară (deoarece aici e salvată valoarea inițială a lui a).

Implementare C++

{
aux = a;
 a = b;
 b = aux; //Dacă am fi scris b = a, b ar fi luat noua valoare a lui a (nu cea inițială), care este însuși b.

Metoda 2 (funcția swap)

Există o funcție care interschimbă valorile a două variabile — funcția swap().

{
swap(a, b);

Metoda 3 (operații cu numere)

xistă o metodă mai interesantă, care nu folosește vreo altă variabilă auxiliară. Totul este matematic și poate fi un picuț mai greu de înțeles.
Pentru început, la a vom aduna valoarea din b (a = a + b). De aici, vom seta b ca fiind a - b (cum a conține acum valoarea inițială a + b, scăzând b, obținem a + b - b = valoarea inițială a lui a). În final, scădem din a, valoarea b (care conține acum valoarea inițială a lui a).Această metodă nu este în particular utilă, decât în situații în care memoria este extrem de limitată.

{
a = a + b;
 b = a - b;
 a = a - b; 
}

Creați un site gratuit! Acest site a fost realizat cu Webnode. Creați-vă propriul site gratuit chiar azi! Începeți