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

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

Programujeme v Lazaruse – 8. časť

Dnes si vytvoríme program na zistovanie najväčšieho spoločného deliteľa dvoch čísel...

Čo budeme dnes robiť?

V dnešne časti pokračujeme s opakovaním už nadobudnutých znalostí. Minule sme si vytvorili aplikáciu, ktorá nám vypočítala preponu po zadaní odvesien. Dnes si spravíme aplikáciu „deliteľnosť.“ Program zistí najväčší spoločný deliteľ dvoch čísel.

Čo potrebujeme pred tým vedieť?

Všetky príkazy, čo dnes použijeme už poznáme. Potrebujeme vedieť jedine ako sa vypočíta najväčší spoločný deliteľ čísel. Jedným zo spôsobov výpočtu najvačšieho spoločného deliteľa je Euklidov algoritmus.

Euklidov algoritmus je známy postup na nájdenie najväčšieho spoločného deliteľa (NSD)
dvoch celých kladných čísel a svojou jednoduchosťou až prekvapuje.
V Euklidovom algoritme nám stačí čísla od seba odčítavať (menšie od väčšieho), až kým sa
čísla nerovnajú, čím nájdeme najväčší spoločný deliteľ.

Príklad: Nájdi najväčší spoločný deliteľ čísla 20 a 36

36-20 =16
20 -16 =4
16-4=12
12-4=8
8-4=4
4-4=0
Najväčší spoločný deliteľ čísel 20 a 36 je 4.

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 BUTTON a dva EDITy.
5.Vo vlastnostiach buttonu zmeníme caption na „Nájdi najväčšieho spoločného deliteľa“ a text editou a captions panelu zmažeme.
6.Pre vylepšenie pridáme ešte zo záložky „Standard“ dva labely a premenujeme ich na „Číslo 1“ „Číslo 2“

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

7.Klikneme dvakrát na button (Vypočítaj najväčší spoločný deliteľ) pretože ideme programovať udalosť po kliknutí na button.
8. Budeme potrebovať tri premenné typu integer. Do prvých dvoch (cislo1 a cislo2) si uložíme z editov čísla. Tretia premenná bude pomocná. Môže sa volať pom.

var:cislo1,cislo2,pom:integer;

9. Načítanie údajov do premenných – cislo1 a cislo2.

cislo1:=StrToInt(Edit1.Text);
cislo2:=StrToInt(Edit2.Text);

10. Teraz musíme spustiť samotný Euklidov algoritmus. Použijeme cyklus repeat – until. Najskôr si musíme zistiť či je cislo1 väčšie ako cislo2. Ak tak nie je, musíme ich vymeniť.

Repeat
 if cislo1 < cislo2 then
   begin
     pom := cislo1;
     cislo1 := cislo2;
     cislo2 := pom;
end;

11. Keď sa čísla vymenia odčítame ich. Namiesto odčítania môžeme použiť príkaz mod, ktorý nám dáva zvyšok po delení. To je ako keby sme čísla odčítali.

cislo1 := cislo1 mod cislo2;
until cislo1=0;

12. Podmienka v cykle bude cislo1=0.
13. Zobrazíme cislo2.

Showmessage('Najvacsi spolocny delitel je'+IntToStr(cislo2));

14.Už to len uložíme a spustíme
File – Save as – Save

Kód by mal vyzerať nasledovne:

Nabudúce už prejdeme na niečo ťažšie. Vytvoríme si pole, načítame si tam údaje a potom ich vyhodnotíme.

Hodnoť článok:
2 2

3 komentáre 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

1 0 Miloš 18.7.2014 10:55:06
@Milan Bednár Žiadny strip, niekde v prvých častiach seriálu je uvedené v diskusii, že čo treba nastaviť v projekte. Ide o to, že sa do EXE súboru nevložia ladiace informácie a súbor bude mať cca 1,5 MB.
0 0 Filip Ševčík 6.4.2014 22:24:09
@Milan Bednár uzivatel Jozef Bakos tu raz spominal, strip.exe na riesenie tohto problemu.
1 0 Milan Bednár 6.4.2014 19:47:55
Ďakujem pán Harag za pekný seriál. Veľmi dávno, ešte v začiatkoch som programoval v Pascale 7.0 niekoľko rokov aktívne. Bolo to ešte za školských čias, potom "odchode" Dos-u ale aj po zistení, že mi už nestačí som prešiel na iné programovacie jazyky. Posledný týždeň som začal rozmýšľať o bezplatnom programovacom jazyku s funkciami ako má Lazarus. V tej dobe som ešte o Lazaruse nepočul.Som rád, že na Google som našiel Vašu stránku a tento seriál. Programovanie v Pascale sa mi ešte uchovalo v hlave a veľmi ma teší, že ho dokážem využiť na malo veľké bezplatné aplikácie pracujúce s databázou.

Chcem sa len spýtať jednú vec. Obnovil som si svoje vedomosti vytvorením jednoduchej kalkulačky, niečo ako ste tu uviedli. Zdrojový kód má asi 30 riadkov. Prekvapila a zaskočila ma veľkosť exe súbora - 15 MB. Je možné niekde nastaviť kompresiu alebo nejako znížiť túto veľkosť ?

V každom prípade budem určite sledovať Váš seriál a obnovovať si vedomosti.
Zajtra.sk > Programovanie > Seriály > Programujeme v Lazaruse – 8. č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