Još malo o podacima, operatorima, ...

1. Opseg djelovanja varijabli

1.4. Zadatak 4.

Zadatak 4.

Napišite program koji traži upisivanje dvaju realnih brojeva. Program treba zamijeniti mjesta upisanim brojevima.

Uputa: U ovom zadatku nije riječ o tome da vrijednosti varijabli samo ispišemo na zaslonu u obrnutom redoslijedu nego one trebaju fizički doista zamijeniti vrijednosti: vrijednost koja je na početku programa pridružena varijabli a, na kraju će biti pridružena varijabli b i obratno. Primjerice, ako je na početku programa vrijednost varijable a jednaka 5, a vrijednost varijable b jednaka 6, na kraju programa varijabli a treba biti pridružena vrijednost 6, a varijabli b vrijednost 5. Taj problem u praksi najčešće rješavamo s pomoću treće (pomoćne) varijable (kao kada želimo sadržaje dviju posuda zamijeniti, pa uzmemo treću posudu).


Imate bocu "Cole" i bocu "Fante" istog kapaciteta i ono što trebate je zamijeniti njihov sadržaj - u boci od Cole treba biti Fanta, a u boci Fante treba biti Cola. Kako to napraviti? ZApravo jednsotavno ako imate praznu bocu od mineralne jednakog kapaciteta.

1. Prelijte colu u bocu od mineralne - boca Cole bit će prazna.

2. Prelijte Fantu u bocu od Cole - boca od Fante je sada prazna

3. Prelijte Colu (iz boce od mineralne) u bocu Fante

I odradili ste traženo. Kako to zapisati?

Neka je boca Cole a, boca Fante b, a boca mineralne t. Redom bi naredbe bile:

t = a                      (ovo znači da u bocu od mineralne stavljamo Colu tj. njen sadržaj)

a = b                     (ovo znači da u bocu od Cole presipamo Fantu)

b = t                      (ovo znači da u bocu Fante prelijemo ono što se nalazi u boci od mineralne)

Redoslijed naredbi je jako bitan i ne smije se izmijeniti!

Rješenje:


Postoji rješenje za ovaj problem i bez da se upotrebljava treća varijabla. Pri tome se koriste računske operacije zbrajanja i oduzimanja. Proučite ovo rješenje: