
Cyklus v jazyku PascalV jazyku Pascal existujú tri základné príkazy na opakovanie. Príkaz "while" opakuje časť programu zatiaľ, kým platí podmienka; ale ak podmienka na začiatku neplatí, daná časť programu sa nespustí ani raz. Príkaz "repeat ... until" najprv spustí danú časť programu a až potom skontroluje podmienku; ak podmienka platí, opakovanie sa skončilo; čiže časť programu sa opakuje zatiaľ, kým podmienka neplatí. Príkaz "for" predstavuje jednoduché opakovanie, ktoré sa dá použiť vtedy, ak vopred vieme, koľkokrát sa bude daná činnosť opakovať. Čo by ste robili, keby ste mali napríklad päťkrát vyskočiť? Najčastejší spôsob je počas skákania počítať "jeden... dva... tri... štyri... päť" a pri výskoku po čísle "päť" sa zastaviť; matematicky povedané, vyskočíme pri číslach menších alebo rovných piatim, a po každom skoku pripočítame jednotku. Pomocou príkazu "while" to zapíšeme takto: var pocitadlo : Integer;
begin
pocitadlo := 1;
while (pocitadlo <= 5) do begin
WriteLn('Hop!');
WriteLn('Pocitadlo je teraz rovne: ', pocitadlo);
pocitadlo := pocitadlo + 1
end
end
Príkaz "for" je skráteným zápisom tohoto postupu. Má uvedenú začiatočnú a koncovú hodnotu, a automaticky pripočítava jednotku. var pocitadlo : Integer;
begin
for pocitadlo := 1 to 5 do begin
WriteLn('Hop!');
WriteLn('Pocitadlo je teraz rovne: ', pocitadlo)
end
end
Ako by ste upravili tento program, aby počítadlo nepočítalo čísla od 1 do 5, ale napríklad od 1 do 7? ... Čo keby sme potrebovali napríklad vypísať čísla od 101 do 105? Jedno možné riešenie by bolo naozaj počítať od 101 do 105. Druhým riešením je ale počítať zase od 1 do 5, len k číslu pred vypísaním pripočítať 100. var pocitadlo : Integer;
begin
for pocitadlo := 1 to 5 do begin
WriteLn('Cislo: ', 100 + pocitadlo)
end
end
Tento druhý trik sa dá využiť v prípade, že vypisované čísla nenasledujú tesne po sebe, ale vieme na ne vymyslieť vzorec. Príkaz "for" totiž umožňuje len zvyšovať o 1. Ale čo ak chceme vypísať napríklad všetky párne čísla od 2 do 10? Môžeme si zobrať čísla od 1 do 5 a vynásobiť ich dvomi. var pocitadlo : Integer;
begin
for pocitadlo := 1 to 5 do begin
WriteLn('Cislo: ', 2 * pocitadlo)
end
end
Keby sme toto opakovanie chceli napísať pomocou príkazu "while", bolo by to síce dlhšie, ale zároveň prehľadnejšie. Namiesto vzorca by sme mohli rovno napísať, že nám ide o počítanie od 2 do 10, so zvyšovaním o 2. var pocitadlo : Integer;
begin
pocitadlo := 2;
while (pocitadlo <= 10) do begin
WriteLn('Cislo: ', pocitadlo);
pocitadlo := pocitadlo + 2
end
end
Počítať môžeme aj opačným smerom, čiže od 5 do 1. Pri príkaze "while" je zmena jednoduchá; namiesto od 1 treba začať od 5; v každom kroku namiesto pripočítania treba jednotku odpočítať; a nekontrolujeme, či je číslo menšie ako 5, ale či je väčšie ako 1. var pocitadlo : Integer;
begin
pocitadlo := 5;
while (pocitadlo >= 1) do begin
WriteLn('Cislo: ', pocitadlo);
pocitadlo := pocitadlo - 1
end
end
V prípade príkazu "for" treba opäť vymyslieť správny vzorec... taký, ktorý rastúcu postupnosť čísel, napríklad od 1 do 5, premení na klesajúcu postupnosť od 5 do 1. Takýmto vzorcom je v tomto prípade "6-x". (Zamyslite sa, prečo je tam práve číslo 6 a nie 5; to je totiž častá chyba. Aké výsledky dáva vzorec "5-x", keď za "x" postupne dosadzujeme čísla od 1 do 5?) var pocitadlo : Integer;
begin
for pocitadlo := 1 to 5 do begin
WriteLn('Cislo: ', 6 - pocitadlo)
end
end
Ako vidíme na príkladoch, príkaz "for" je zjednodušenou podobou príkazu "while", pokiaľ počítame za sebou nasledujúce prirodzené čísla, čiže ak v každom kroku zvyšujeme počítadlo o 1. Ak čísla nenasledujú v takejto postupnosti, môžeme si pomôcť vhodným vzorcom. Zápis pomocou príkazu "while" je síce dlhší, ale pre čísla, ktoré nenasledujú za sebou, môže byť prehľadnejší. |
Viliam Búr [sk] domáca stránka (feed) viliam@bur.sk ICQ: 133571943 Blog: JavaScript pre začiatočníkov (3) JavaScript pre začiatočníkov (2) Linky: Sponzorované odkazy: |