Kľúčové slová: cyklus FOR, cyklus WHILE, cyklus REPEAT |
Cyklus so známym počtom opakovaní for riad_prem := poc_hodnota to kon_hodnota do prikaz; for riad_prem := poc_hodnota downto kon_hodnota do prikaz; o riad_prem - riadiaca premenná cyklu, jej aktuálny stav určuje, koľkýkrát sa opakuje telo cyklu o poc_hodnota - počiatočná hodnota riadiacej premennej, pre ktorú sa telo cyklu začne vykonávať o kon_hodnota - koncová hodnota riadiacej premennej, pre ktorú sa telo cyklu vykoná posledný raz o prikaz - telo cyklu tvorí jeden príkaz, ktorý môže byť jednoduchý alebo zložený o cyklus for-to riadiacu premennú každým krokom inkrementuje (zvyšuje o 1) o cyklus for-downto riadiacu premennú každým krokom dekrementuje (znižuje o 1) Napríklad: for x:=1 to 10 do write(*); {vypíše 10 hviezdičiek v riadku za sebou} for x:=-10 to 10 do write(*); {vypíše 21 hviezdičiek v riadku za sebou} for i:=1 to to 5 do write(i,‘ ‘); {vypíše čísla od 1 do 5 oddelené medzerou} for znak :=‘A‘ to ’Z‘ do write(znak); {vypíše za sebou všetky veľké písmená} for a:=n to downto 1 do f:=f*a; {vypočíta faktoriál premennej a} |
Príklad: Vytvorte program, ktorý vypíše postupnosť čísel zo zadaného intervalu oddelených čiarkou. Hranice intervalu zadá používateľ. Ukážka |
program postupnost; uses crt; var a,b,i: integer; begin clrscr; write('Zadaj hranice intervalu: '); readln(a,b); for i:=a to b do write(i, ','); {vypíše čísla od a do b oddelené čiarkou} readln; end. |
Úlohy:
|
Cyklus s podmienkou na začiatku while podmienka do prikaz; o ak podmienka platí, vykoná sa prikaz, ktorý tvorí telo cyklu a môže ním byť jednoduchý alebo zložený príkaz o ak podmienka neplatí, pokračuje sa nasledujúcim príkazom o telo cyklu sa nemusí vykonať ani raz |
Príklad: Vytvorte program na výpočet ciferného súčtu zadaného celého kladného čísla. Ukážka |
Program cifernysucet; uses crt; var sucet, cifra: integer; cislo: longint; begin clrscr; write('Zadaj cele kladne cislo: '); readln(cislo); sucet:=0; while cislo>0 do {telo cyklu sa vykonáva, kým sa neminú cifry} begin cifra :=cislo mod 10; sucet := sucet + cifra; cislo := cislo div 10 end; writeln('Ciferny sucet je ', sucet); readln; end. |
Úlohy: 1. Vytvorte program, ktorý vyráta priemernú výšku žiakov. Zadávanie údajov je ukončené nulou. (Vstupy: jednotlivé výšky ukončené nulou) Výstup: priemerná výška. |
repeat prikaz_1; prikaz_2; ... prikaz_n until podmienka; o telo cyklu sabude opakovať, až kým sa nesplní podmienka o telo cyklu sa vykoná aspoň raz |
Príklad: Modifikujte program, ktorý na základe známky zadanej v číselnom tvare vypíše zodpovedajúce slovné hodnotenie ( 1 – výborný,...) tak, aby bolo možné zadať len vstupy 1 až 5. Ukážka |
Program znamky; uses crt; var znamka: integer; begin clrscr; repeat write('Zadaj znamku v ciselnom tvare: '); readln(znamka); until (znamka > 0) and (znamka < 6); {zadávanie sa opakuje pre nesprávne známky} case znamka of 1: writeln ('vyborny'); 2: writeln ('chvalitebny'); 3: writeln ('dobry'); 4: writeln ('dostatocny'); 5: writeln ('nedostatocny') end; readln; end. |
Úlohy:
Testy: |