Gyakorlati alapok

Hogyan cseréljünk meg kezeinkben 2 teli poharat? (adatcserebere)

 

Ha nem böktem volna oda a címben a adatcserebere szót, bizony elhüledezve lapozna ide a látogató, hogy mi köze lehet ennek az eszement című fejezetnek a programozáshoz...

 

Nos, nagyon sok, de előtte nézzük meg a címben szereplő kérdés drámai problematikáját!

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Kizárva a zsonglőrködés lehetőségét -amit persze teli poharakkal a legmerészebb varázslók sem tudnak megtenni-, A és B pohár cseréjét csakis 3 lépésben tudjuk véghezvinni:

  1. bal kezünkkel letesszük A poharat az asztalra,

  2. áttesszük B poharat a bal kezünkbe,

  3. jobb kezünkkel felvesszük az asztalról A poharat.

Láthatjuk tehát, hogy csere közben átmeneti tárolóként az asztalt használtuk fel.

 

De mi köze ennek a programozáshoz?

Adott például egy olyan számbekérés, amely során várunk alsó és felső határértéket. Mit teszünk abban az esetben, ha az (enyhén fogalmazva) nem okos felhasználó fordítva írja be a határértékeket?

A bekért adatot mégsem dobhatjuk el, elvégre alapjában véve helyesek, csak fordítva lettek megadva. Algoritmikusan pontosan a fent leírt módon kell eljárnunk:

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

  1. A változót ki kell írnunk egy ideiglenes tárolóba,

  2. B változót átírjuk A helyére,

  3. az ideiglenes tárolóból kinyerjük A változót.

Nézzünk erre egy konkrét példát!

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
public static void main(String[] args) {
    String poharA = "Coca-Cola";
    String poharB = "Pepsi-Cola";
    System.out.println("Pohár A: " + poharA);
    System.out.println("Pohár B: " + poharB);
    String tarolo = poharA;
    poharA = poharB;
    poharB = tarolo;
    System.out.println("Pohár A: " + poharA);
    System.out.println("Pohár B: " + poharB);
    }
}

 

Végeredmény:

Pohár A: Coca-Cola
Pohár B: Pepsi-Cola
Pohár A: Pepsi-Cola
Pohár B: Coca-Cola

 

A 2 szám közötti egészek egyszerű adatbekéréssel című fejezetben pontosan ilyen jellegű probléma merül és természetesen a megoldás is lényegileg ugyanaz.

 

Ugyanakkor itt jegyezzük meg, hogy a fent ismertetett technikát nevezik swap-nek is.