Záměna dvou proměnných - 11. lekce

5. 12. 2013 00:00

Nejjednodušší algoritmus, který se učí. Lze jej vytvořit 2 způsoby -> s a bez pomocné buňky. Rozdíl zde je jenom v náročnosti na paměť, kdy druhá verze nepotřebuje další proměnnou. V těchto jednoduchých příkladech je to však zanedbatelné

A) Pomocná buňka

V programu budeme pouze přelévat obsahy z jedné proměnné do druhé. Program bude obsahovat pouze 3 kroky ->

  • Hodnota z proměnné A se přeleje do POM (pomocná)
  • Hodnota z B do A
  • Hodnota z POM do B
Program zamena2pom;
 
Uses crt;
Var A, B, POM:Integer;
 
begin
clrscr;   // vymaže předešlý obsah obrazovky
Write('Zadejte obsah 1. bunky ');
Readln(A);
Write('Zadejte obsah 2. bunky ');
Readln(B);
 
POM := A;
A := B;
B := POM;
 
writeln('Obsah 1. bunky je ', A);
writeln('Obsah 2. bunky je ', B);
 
readln;
end.            

B) Bez pomocné buňky

Jedná se o složitější verzi, kdy je nutné vědět, jak pracuje program v příkazu přiřazení, dosazení. Nejdříve sečteme obsahy obou buněk. Poté získáme novou hodnotu A odečtením původní hodnoty A od součtu buněk -> Tím získáme novou hodnotu. Teď použijeme stejnou operaci pro buňku B -> odečteme hodnotu A (již novou hodnotu) od součtu zaměňovaných buněk.

Program zamena2;
 
Uses crt;
Var A, B:Integer;
 
begin
clrscr;   // vymaže předešlý obsah obrazovky
Write('Zadejte obsah 1. bunky ');
Readln(A);
Write('Zadejte obsah 2. bunky ');
Readln(B);
 
B := A + B;
A := B - A;
B := B - A;
 
writeln('Obsah 1. bunky je ', A);
writeln('Obsah 2. bunky je ', B);
 
readln;
end.  

 

<-- Předchozí lekce - 10. lekce - Datový typ Další lekce - 11. lekce - Max ze 2 čísel -->

Pokud máte otázky, pište na naši adresu, Facebook nebo na Twitter.

Štítky:
Programování, Základy programování