Алгоритам размене вредности две променљиве

Посматрајмо следећи пример из живота: имамо две чаше, у првој се налази сок од поморанџе, а у другој од јабуке и потребно је заменити садржај чаша, односно да сада у првој чаши буде сок од јабуке, а у другој од поморанџе (Слика 5.16.).

Слика 5.16.

На који начин бисмо то могли урадити?
Очигледно нам је потребна једна празна чаша која ће представљати помоћну чашу. Најпре ћемо сок из прве чаше пресути у празну чашу (1), а затим сок из друге чаше пресути у прву (2). Након тога, у првој чаши ћемо имати сок од јабуке и потребно је још само пресути сок из помоћне чаше у другу чашу (3) и имаћемо у другој чаши сок од поморанџе (Слика 5.17.).

Слика 5.17. Размена садржаја две чаше

Након овог примера са пресипањем сокова, да видимо на који начин би се могла извршити размена вредности две променљиве.


Разменoм вредности две променљиве, на пример a и b, вредност променљиве a постаје вредност променљиве b и вредност променљиве b постаје вредност променљиве a.



Потребно је одредити алгоритам који врши размену вредности две променљиве.

Пример 1. Шта ће се десити ако размену вредности две променљиве а и b урадимо на следећи начин:


//Deklaracija i inicijalizacija promenljivih a i b
int a = 1;
int b = 2;
//Promenljivoj a dodeljujemo vrednost promenljive b
a = b;
//Promenljivoj b dodeljujemo vrednost promenljive a
b = a;

Да ли ћемо на овај начин заиста заменити њихове вредности?

Решење:

Из прве наредбе a = b; следи да је нова вредност променљиве a једнака 2, а из друге наредбе b = a; добијамо да и b има вредност 2.
Дакле, a = 2 и b = 2, па на овај начин није извршена размена вредности две променљиве.

Слика 5.18. Неправилна размене вредности две променљиве

Из претходног можемо закључити да за размену вредности две променљиве није довољно само заменити њихове вредности, већ нам је потребна нека помоћна променљива c.
Дакле, алгоритам за размену вредности две променљиве требало би да изгледа овако:

Слика 5.19. Размена вредности две променљиве

  1. уводи се помоћна променљива c
  2. c = a; - вредност променљиве a смо сачували у помоћној променљивој c
  3. а = b; - стару вредност променљиве а заменимо вредношћу променљиве b
  4. b = c; - променљивој b доделимо вредност помоћне променљиве c у којој смо сачували стару вредност променљиве a

Пример 2. Део кода којим је представљен алгоритам размене вредности две целобројне променљиве:


//Deklaracija promenljivih a i b
int a;
int b;
//Deklaracija pomocne promenljive
int c;        
//Pomocnoj promenljivoj dodeljujemo vrednost promenljive а
c = a; 
//Promenljivoj a dodeljujemo vrednost promenljive b              
a = b; 
//Promenljivoj b dodeljujemo vrednost promenljive c              
b = c;