Professional Documents
Culture Documents
Podmienený Cyklus S Podmienkou Na Začiatku: Troška Teórie
Podmienený Cyklus S Podmienkou Na Začiatku: Troška Teórie
Troška teórie:
Zbierame skúsenosti:
Vytvor v Lazaruse aplikáciu, ktorá načíta prirodzené číslo a vypíše jeho faktoriál.
Komentár k riešeniu: Skôr než sa pustíme do zápisu zdrojového textu programu tejto
úlohy, musíme najprv porozmýšľať ako ju vlastne riešiť. Na hodinách matematiky nás
učili, že napr. 5! = 5.4.3.2.1, čo počítame takto: 5.4=20, 20.3=60, 60.2=120 a napokon
120.1=120, takže 5!=120. Mohli by sme faktoriál počítať aj takto: 1.2.3.4.5? Mohli.
Ako by sme to vlastne riešili? Predpokladáme, že zadané číslo n je väčšie ako 1. Najprv
dáme do výsledku (premenná v) hodnotu 1 a do pomocnej premennej i hodnotu 2.
Kým bude v premennej i hodnota menšia nanajvýš rovná zadanému číslu, tak budeme
opakovať tieto činnosti (telo cyklu): do premennej v uložíme jej pôvodnú hodnotu
vynásobenú o hodnotu premennej i a zväčšíme hodnotu premennej i o 1.
Zhrňme si dva najpodstatnejšie fakty: čo máme opakovať (v:=v*i; i:=i+1;) a dokedy to
máme opakovať (kým je i<=n). Zdrojový text programu procedúry pre tlačidlo podľa
popísaného postupu vyzerá takto:
procedure TForm1.Button1Click(Sender: TObject);
var n,v,i:integer;
begin
n:=StrToInt(Edit1.Text);
v:=1;
i:=2;
while i<=n do
begin
v:=v*i;
i:=i+1;
end;
Label2.Caption:=IntToStr(n)+'! = '+IntToStr(v);
end.
Zisti, či to už vieš:
1. Aká je syntax (zápis) príkazu podmieneného cyklu s podmienkou ukončenia na začiatku
v Pascale?
2. Ako funguje vykonávanie podmieneného cyklu s podmienkou ukončenia na začiatku
v Pascale?
3. Minimálne koľkokrát sa vykoná príkaz podmieneného cyklu s podmienkou ukončenia
na začiatku?