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.
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:
Novinky
2 rokmi
Aprílové vtípky: Výběr toho nejlepšího kolem počítačů, internetu a techniky
Výběr nejlepších aprílových vtípků 2019
2 rokmi
Fotky Google sa učia lepšie pracovať s dokumentmi
Spoločnosť Google prostredníctvom svojho účtu na sociálnej sieti Twitter oficiálne predstavila novú funkciu svojej aplikácie Fotky Google.
2 rokmi
Gmail dovoľuje naplánovať poslanie emailu neskôr
Spoločnosť Google dnes oznámila pridanie funkčnej novinky do svojej populárnej webmailovej služby Gmail, možnosť naplánovať poslanie emailu na neskôr.
3 rokmi
Používatelia Chrome začali prechádzať na nový rýchlejší Firefox, avizujú dáta Mozilly
Nový lepší a rýchlejší prehliadač Firefox 57 Quantum vyúsťuje zrejme do viac používateľov prechádzajúcich respektíve vracajúcich sa na tento prehliadač z iných prehliadačov, na osobných počítačoch aj smartfónoch.
3 rokmi
Briti dokončili kúpu SK-NIC-u. Nové .sk domény nechávajú za 8.4 eur
Predaj správcu slovenskej domény .sk, SK-NIC, bol dokončený a novým majiteľom po telekomunikačnej skupine Danubiatel, do ktorej patrí napríklad Swan a 4ka, je britská spoločnosť CentralNic.
Staršie novinky »TOP dlhšie
- Aj ty môžeš byť najčítanejší. Napíš článok »
TOP tento mesiac
- Aj ty môžeš byť najčítanejší. Napíš článok »
Nové články:
- 14.Kingston uvádza 128GB verziu šifrovaného USB
sep - 10.Tiché COMBO Logitech MK295
sep - 24.Farbičky v HTML a CSS, alebo?
aug - 23.Pochopte, ako vytvoriť virtuálny obchod v 6 krokoch
aug - 29.Kamery, cloud a bezpečnosť
jul - Viac »
- Aj ty môžeš byť najčítanejší. Napíš článok »
Pekné veci
Pekné veci
Pekné veci
Pekné veci
Kritika
Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!
Reklama
Slovenská IT komunita
Seriály zo Zajtra.sk
· Ako písať blog
· Ako sa stať PHP ninja s Yii Frameworkom
· Aplikácie pre Facebook
· CSS triky
· iOS vývojára príhody a skúsenosti
· Jednoduché programy, ktoré vám ušetria čas
· Modelovanie webového sídla
· Nauč sa CodeIgniter [HD]
· Nauč sa jQuery [HD]
· Nette PHP framework
· OOP v Javascripte
· Programujeme v Jave
· Programujeme v Lazaruse
· Programujeme v Pythone
· Robíme Eshop v ASP.NET Web Pages
· Slovenskí iOS developeri
· Webdizajn krok po kroku
· Yablkov TurboTip [HD]
Posledné komentáre