spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

Joozty 25.3.2014, článok je súčasťou seriálu Programujeme v Lazaruse
Hodnoť článok:
2 0

Programujeme v Lazaruse – 5. časť

Dnes si naprogramujeme prevod čísel z desiatkovej do binárnej sústavy...

Čo budeme dnes robiť?

Dnes nás čaká vytvorenie programu, ktorý bude prevádzať čísla z desiatkovej sústavy do binárnej sústavy a naopak. Program si rozdelíme na dve časti. Dnes naprogramujeme tú jednoduchšiu časť, t.j. prevod z desiatkovej sústavy do binárnej. Vo štvrtok zas opačný prevod. Program bude pozostávať z editu , z dvoch radiobuttonov a jedného buttonu.

Čo potrebujeme pred tým vedieť?

Dnes si povieme čo je to div, mod a radiobutton. Tiež si musíme spomenúť cyklus „repeat until“.
Div – celočíslelný podiel. Napríklad 8 div 3 dá hodnotu 2.
Mod – zvyšok po celočíslenom delení. Napríklad 7 mod 3 dá hodnotu 1.
RadioButton – komponent zo záložky Standard. Priame využite uvidíte v programe.
Cyklus Repeat Until – mohli by sme ho preložiť aj tak, že opakuj až pokiaľ nebude splnená podmienka. Vyzerá nasledovne:

Repeat
      Príkaz;
Until
      podmienka;

Samotný prevod z desiatkovej sústavy do binárnej sústavy sa robí nasledovne:
Číslo delíme dvojkou a zapisujeme si zvyšky. Delíme až pokiaľ sa číslo nerovná nule. Výsledok sú zvyšky, ale zapísané od posledného až k prvému.
Príklad:
Preveď číslo 8 z desiatkovej do dvojkovej sústavy.
10/2=5 zv.0
5/2=2 zv.1
2/2=1 zv.0
1/2=0 zv. 1
Čislo 10 vyzerá v binárnej sústave takto 1010

Vytvorenie programu

1. Pustíme si Lazarus.
2. Klikneme na File – New - Application.
3. Zo záložky „Standard“ vyberieme položku panel a vložíme ju na formulár.
4. Do formulára vložíme taktiež zo záložky „Standard“ jeden TButton, TEdit a dva RadioButtony.
5. Vo vlastnostiach buttonu zmeníme caption na „Preveď číslo“, radiobuttony zmeníme zas na “z DEC do BIN“ a „z BIN do DEC“, caption panelu a text editu zmažeme.

Grafickú stránku nášho programu máme hotovú. Môžeme sa pustiť do kódovania.

6. Klikneme dvakrát na button (Preveď číslo), pretože ideme programovať udalosť po kliknutí na button.
7. Prvé, čo potrebujeme, je zadeklarovanie si premennej cislo, do ktorej si načítame číslo z editu.
var cislo:integer;
8. Načítame si číslo z editu do premennej cislo
cislo:=StrToInt(edit1.text);
9. Zistíme, či chce uživateľ prevod z DEC do BIN alebo opačne. Jednoduchým if sa pozrieme, aký radiobutom je zaškrtnutý.

If RadioButton1.Checked then
      Begin
          Tu budú prikazy z  DEC do BIN. (Všetko čo dnes ešte budeme   písať pôjde sem.)
      End;
   Else
     Begin
          Tu budú  príkazy z BIN do DEC. (Toto budeme potrebovať až na štvrtok, preto tam else ešte nepíšte.)
     End;

10. Teraz spustíme cyklus repeat until. Najskôr budeme potrebovať premennú „vysledok“, do ktorej si budeme zapisovať zvyšky. Bude typu string, pretože budeme vždy k aktuálnemu výsledku prilepovať zvyšok. Zvyšky sa zapisujú od posledného, tak najskôr číslo modneme a potom prilepíme k nemu vysledok. Vysledok je na začiatku prázdny. Potom číslo divneme a zas sa to všetko zopakuje.
Cyklus vyzerá nasledovne (ešte predtým si však vyprázdnime premennú vysledok.):

Vysledkom:='';
repeat
 vysledok:=IntToStr(cislo mod 2) + vysledok;
 cislo:= cislo div 2;
until  cislo=0;  

Najlepšie to pochopíte na príklade:
Na vstupe sme dostali číslo 10. Načíta sa do premennej cislo. Nasleduje cyklus. Ten do vysledku zapíše modnute cislo dvojkou a prilepí výsledok. Výsledok je na začiatku prázdny. Prvý raz cyklus prebehne takto:
Keďže sa čislo nerovná 0 tak sa to všetko znova zopakuje
vysledok:= IntToStr(cislo mod 2) + vysledok; (Vo výsledku je zapísané ‚10‘)
cislo:= cislo div 2; (Cislo sa zmenší na hodnotu 2)
Cislo sa ešte nerovná 0, tak sa cyklus znova zopakuje
vysledok:= IntToStr(cislo mod 2) + vysledok; (Vo výsledku je zapísané ‚010‘)
cislo:= cislo div 2; (Cislo sa zmenší na hodnotu 1)
Cislo sa stále nerovná 0, tak sa cyklus znova zopakuje
vysledok:= IntToStr(cislo mod 2) + vysledok; (Vo výsledku je zapísané ‚1010‘)
cislo:= cislo div 2; (Cislo sa zmenší na hodnotu 0)
Cislo sa už rovná 0, tak cyklus skončí

11. Výsledok zobrazíme
Showmessage(vysledok);
12. Uložíme a spustíme.
File – Save As – Save

Kód by mal vyzerať nasledovne:

Nabudúce si urobíme opačný prevod.

Hodnoť článok:
2 0

0 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

Zajtra.sk > Programovanie > Seriály > Programujeme v Lazaruse – 5. časť


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama