KubusCmg
Administrator

Dołączył: 08 Mar 2008
Posty: 51
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: skontowni
|
Wysłany: Nie 18:56, 09 Mar 2008 Temat postu: 6. Rodzaje pętli |
|
W Pascalu wyrozniamy nastpujace typy petli:
1. Pętla FOR ... TO ... DO,
2. Pętla REPEAT ... UNTIL,
3. Pętla WHILE ... DO.
Instrukcja FOR ma nastepujaca konstrukcje:
Kod: |
FOR zmienna:=wartosc_poczatkowa TO wartosc_koncowa DO
BEGIN
instrukcje;
END
|
Cecha charakterystyczna jest to ze dane instrukcje wewnatrz tej petli beda sie powtarzac okreslona ilosc razy.
Zmienna jest opisana w bloku deklaracyjnym jako np
wartosc poczatkowa to liczba od ktorej zaczniemy 'odliczanie', a wartosc koncowa-na ktorej skonczymy.
Tak wiec: jesli chcielibysmy wypisac liczby od 2 do 23, iteracja wygladalaby tak:
Kod: |
FOR i:=2 TO 23 DO
BEGIN
writeln(i);
END;
|
Jako parametr instrukcji writeln podalismy zmienna i ktora bedzie zwiekszana o 1 za kazdym powtorzeniem petli.
Petla REPEAT ... UNTIL ma nastepujaca skladnie:
Kod: |
REPEAT
instrukcje;
UNTIL warunek;
|
Tlumaczac kod doslownie otrzymalibysmy: powtarzaj dane instrukcje dopoki nie zostanie spelniony warunek.
Kolejna petla WHILE...DO wyglada tak:
Kod: |
WHILE warunek DO
BEGIN
instrukcje
END;
|
Chcialbym tutaj zwrocic uwage pomeidzy petla ta i powyzsza.
Pierwsza roznica, ktora widac na pierwszy rzut oka to to, ze instrukcje w petli WHILE sa zawarte miedzy slowami BEGIN i END;.
Kolejna roznica: Instrukcje w petli REPEAT zawsze beda wykonywane przynajmniej jeden raz! W przypadku WHILE jesli warunek z gory zostal spelniony petla zostaje pominieta.
Jesli chodzi o roznice miedzy tymi instrukcjami oraz instrukcja FOR mozna wymienic miedzy innymi to ze dla instrukcji FOR mamy z gory zalozone ile razy maja byc wykonywane instrukcje.
Jeszcze jedna wazna rzecz: Po pierwszym wersie deklaracyjnym instrukcji petli nie stawiamy srednika!! Przyklad:
Kod: |
for i:=1 to 10 do
....;
repeat
.....;
until i=9;
while i=9 do
.....;
|
Post został pochwalony 0 razy
Ostatnio zmieniony przez KubusCmg dnia Nie 20:28, 09 Mar 2008, w całości zmieniany 1 raz
|
|