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

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

Programujeme v Lazaruse – 6. časť

Dnes si naprogramujeme prevod z dvojkovej do desiatkovej sústavy...

Čo budeme dnes robiť?

V dnešnej časti si doprogramujeme aplikáciu, ktorú sme začali programovať v utorok. Prevod čísla z desiatkovej do dvojkovej máme zvládnutý. Dnes spravíme opačný prevod.

Čo potrebujeme pred tým vedieť?

Nedávno sme si spomenuli cyklus for, ktorý má tvar:

For i:=1 to 10 do  // ide od 1 po 10
Príkaz;

Existuje však aj opačný cyklus. Vyzerá nasledovne:

For i:=10 downto 1 do  // ide od 10 po 1
Prikaz;

Ďalej potrebujeme vedieť, čo je to príkaz power.
Táto funkcia nie je obsiahnutá v základných knižniciach. Obsahuje ju knižnica math. Preto si ju musíme načítať. To spravíme tak, že úplne na vrch kódu, kde je napísané uses dopíšeme Math.
Power(číslo, ktoré chceme umocniť,mocniteľ)

Samotný prevod z dvojkovej prebieha nasledovne. Zoberieme si poslednú číslicu z binárneho čísla a násobíme ju nultou mocninou dvojky. Potom zoberieme predposlednú a násobíme ju prvou mocninou dvojky. Ďalšie by sme násobili druhou mocninou atď.

Príklad: Preveď číslo 1010 do desiatkovej sústavy
(0 * 2 ^ 0) + (1 * 2 ^ 1) + (0 * 2 ^ 2) + (1 * 2 ^ 3) = 10

K jednotlivým písmenám v stringovom reťazci sa dá pristupovať.
V nasledujúcom programe sme si zadeklarovali premennú slovo typu string. Uložili sme si do nej auto. Príkaz showmessage nám zobrazí i-ty znak v premennej slovo. Ak si za i dosadíme 1 tak nám zobrazí A, ak 2 tak U atď.
Dĺžka slova sa dá zistiť pomocou príkazu lenght(slovo); (dĺžka premennej slovo). Platí to len pre stringové premenné. Znaky sa dajú tiež porovnávať.

Var slovo:string;
Begin
Slovo:='auto';
Showmessage(slovo[i])
End;

Vytvorenie programu

Grafickú stránku nášho programu máme už hotovú. Môžeme sa pustiť do kódovania druhej časti. Príkazy pôjdu do else.

1.Klikneme dvakrát na button (Preveď číslo) pretože ideme programovať udalosť po kliknutí na button.

2.Zadeklarujeme si premennú, do ktorej si načítame číslo z editu. Už síce jednu premennú máme, do ktorej sa nám ukladá číslo z editu. My potrebujeme ale premennú typu string, aby sme nemuseli v kuse konvertovať z int do str. Premenná sa môže volať cislo2.

Var cislo2:string;

3. Do premennej si načítame číslo z editu. Môžete aj hneď na začiatku. (Za príkaz cislo:=StrToInt(edit1.text)) alebo za else

4. Potrebujeme si tiež zadeklarovať premennú vysledok2, ktorá bude typu real. (Funkcia power dáva výsledok v real.)

5. Spustíme nasledovný cyklus:

for i:=1 to length(cislo2) do
     if cislo2[i]='1' then
        vysledok2:= power(2,length(cislo2)-i) + vysledok2;

Cyklus ide od prvého znaku až po dĺžku cisla2. Nemá zmysel násobiť aj nuly tak si podmienkovým príkazom if nájde iba znak 1. (Preto je jednotka medzi ' '. Keby sme nepoužili apostrofy tak je to číslo jedna a nie znak jedna.) Potom už iba jednoducho priráta do vysledok2 umocnené číslo 2.
Umocňuje sa to na cislo2 -i, pretože cyklus začína od prvého čísla.
6. Zobrazíme výsledok
Showmessage(FloatToStr(vysledok)); // FloatToStr konvertujeme realné číslo...
7.Už to len uložíme a spustíme
File – Save as – Save

Kód by mal vyzerať nasledovne:

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 – 6. č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