Pascal - cykly
Kategorie: Informatika (celkem: 338 referátů a seminárek)
Informace o referátu:
- Přidal/a: anonymous
- Datum přidání: 21. ledna 2007
- Zobrazeno: 17311×
Příbuzná témata
Pascal - cykly
CYKLUS S PODMIENKOU NA ZAČIATKUPríkazy cyklu nám umožňujú predpísať opakovanie príkazov alebo postupností príkazov viackrát. V pascale počet opakovaní predpíšeme( explicitne alebo implicitne) v tvare podmienky. Táto podmienka určuje či má v opakovaní pokračovať alebo ho má ukončiť. Poznáme tri druhy príkazov: while, for a repeat. Pri opakovaní nejakej činnosti nám musí byť jasné, čo sa má opakovať a dokedy sa to bude opakovať. Pri cykle s podmienkou na začiatku sa telo opakuje pokiaľ je splnená podmienka.
While b do p
Telo p sa bude opakovať kým podmienka b typu boolean bude true. Telo cyklu môže obsahovať aj viac príkazov, ktoré je potrebné ohraničiť beginom a endom.
Kým podmienka rob telo
*kým
PRÍKLAD:
Zostavte program, ktorý nájde najmenší spoločný násobok dvoch prirodzených čísel. Program pr7;
uses crt;
var a,b,pom,sucin:integer;nsn:real;
begin
clrscr;
write('Zadaj dve cisla (a>b): ');readln(a,b);
sucin:=a*b;
while b>0 do
begin
pom:=a;
a:=b;
b:=pom mod b;
end;
nsn:=sucin/a;
writeln('NSN tychto cisel je ',nsn:0:0);
readln;
End.
CYKLUS S PODMIENKOU NA KONCI
Viz 5 ot. .Najprv sa vykoná telo cyklu a potom sa testuje, či je podmienka splnená. Pri viacerých príkazoch v tele nie je potrebné použiť begin a end.
Repeat p until b
Repeat a until sú vyhradené slová. Cyklus sa bude opakovať kým b- podmienka, typu boolean, bude false. Akonáhle bude b pravdivé, cyklus skončí. Opakuj telo pokiaľ podmienka
*opakuj
Príkazy s podmienkou na začiatku a na konci sa použijú samozrejme v prípadoch keď nepoznám vopred počet opakovaní. Napr. pri triedení, vyhľadávaní atď.
PRÍKLAD:
Zostavte program, ktorý pomocou Euklidovho algoritmu (pomocou zvyškov ) nájde najväčšieho spoločného deliteľa dvoch prirodzených čísel.
Program pr6;
uses crt;
var a,b,c,d,e:integer;
begin
writeln('Zadaj dve cele cisla (a>b): ');readln(a,b);
d:= a;
e:= b;
repeat
c:= a mod b;
a:= b;
b:= c;
until c=0;
writeln('Najvacsi spolocny delitel cisel ',d,' a ',e,' je ',a);
readln;
End.
CYKLUS SO ZNÁMYM POČTOM OPAKOVANÍ
Viz 5 ot. . Je jasné koľkokrát sa cyklus bude opakovať. Na ohraničenie príkazov v tele je potrebný begin a end. Poznáme dva tvary zápisu.
For R:= Z downto K do p
For R:= K to Z do p
Pre premenná od z po r rob telo
*pre
R je riadiacou premennou a Z,K sú výrazy ordinálneho typu. Downto použijeme keď Z bude väčšie než K. Pri každom opakovaní sa z, či k zväčší alebo zmenší resp.
priradí nasledovníka alebo predchodcu. Cyklus skončí keď z=k. Všetky cykly sa môžu použiť aj ako cyklus v cykle. To znamená, že podcyklus bude vlastne príkazom v tele cyklu. Dá sa použiť napr. pri načítavaní dvojrozmerného pola. Príkazy so známym počtom opakovaní sa môžu použiť ďalej pri načítavaní, výpise pola, pri lineárnom a binárnom vyhľadávaní, pri triedení atď. PRÍKLAD:
Zostavte program, ktorý vypočíta aritmetický priemer z čísel, ktoré zadá užívateľ. Program pr1;
var i,pocet:integer;sucet,zlozka,priemer:real;
begin
write('Zadaj pocet cisel: ');readln(pocet);
sucet:=0;zlozka:=0;writeln;
for i:=1 to pocet do begin
write('Zadaj ',i,' zlozku: ');readln(zlozka);
sucet:=sucet+zlozka;
zlozka:=0;
end;
priemer:=sucet/pocet;writeln;
writeln('Priemer zo zadanych cisel je: ',priemer:2:2);
readln;
End.