L10. Pętla iteracyjna For.

Transkrypt

L10. Pętla iteracyjna For.
Pętla iteracyjna for
Pętla - jak sama nazwa wskazuje - słuŜy do zapętlania kodu, czyli jego wielokrotnego wykonania. Często bowiem zdarza się, Ŝe
musimy wykonać ten sam kod kilka razy, zaleŜnie od jakichś warunków.
Do realizacji tych zadań posłuŜą nam trzy rodzaje pętli:
- Pętla For – iteracyjna
- Pętla While ... Do
- Pętla Repeat ... Until
W tej lekcji zajmiemy się pętlą iteracyjną for. Co to jest Iteracja ? Jest to wielokrotne powtarzanie określonego ciągu operacji,
przy czym kaŜda iteracja bazuje na wyniku poprzedniej iteracji (tzw. rekurencja). Powtarzanie to kończy się w momencie osiągnięcia
wyniku określonego przez uŜytkownika.
Pętla For, jest do dosyć specyficzny rodzaj pętli, poniewaŜ do działania potrzebuje zmiennej typu całkowitego, która będzie
słuŜyła do odliczania kolejnych wykonań. Wygląda to mniej więcej tak:
Program PetlaFor;
Var I : Word;
Begin
For I:=1 To 10 Do { Taka pętla wykona się 10 razy }
Begin
WriteLn('Wykonanie ', I, '.');
{ ... }
End;
End.
Jeśli uruchomisz powyŜszy program pewnie zauwaŜysz, Ŝe zmienna I przybiera wartość w zakresie 1..10 (tak na marginesie:
taka nazwa zmiennej jest uŜywana w przypadku pętli For praktycznie zawsze; takie przyporządkowanie nazwy zmiennej do
określonego zadania jest bardzo wygodne, poniewaŜ pozwala łatwo orientować się w kodzie - swoim i innych programistów).
Gdyby obie liczby zastąpić tą samą pętla wykonałaby się dokładnie 1 raz z takim właśnie indeksem. Natomiast gdyby druga
wartość była mniejsza od pierwszej - pętla nie wykona się ani razu (sprawdź!).
Oczywiście zamiast liczb moŜemy uŜyć teŜ stałych lub zmiennych, pod warunkiem, Ŝe są to liczby całkowite.
Bardzo złym zwyczajem jest zmiana wartości zmiennej pętli w czasie jej wykonywania. Niektóre kompilatory po prostu
zabraniają takiej praktyki! JeŜeli jednak jest to niezbędne dla działania programu powinno się uŜywać innych pętli (While lub Repeat).
Pętla for potrafi teŜ zliczać w dół, trzeba tylko nieco zmienić jej zapis:
Program PetlaForWDol;
Var I : Word;
Begin
For I:=10 DownTo 1 Do { Ta pętla równieŜ wykona się 10 razy, ale w wstecz }
Begin
WriteLn('Wykonanie ', I, '.');
{ ... }
End;
End.
Do czego moŜe przydać się nam pętla For ? np. do wypisania tabliczki mnoŜenia (moŜe to banalny przykład, ale dobrze pokazuje
istotę działania tej pętli):
Program TabliczkaMnozenia;
Var I, J : Byte;
Begin
For I:=1 To 15 Do
Begin
For J:=1 To 15 Do { Wyprowadzamy linię tabliczki }
Write(I*J:4);
WriteLn;
{ Przechodzimy do następnej }
End;
End.
Podstawowe cechy pętli for:
- zmienna sterująca musi być w przypadku pętli for zadeklarowana na poziomie jej wywołania, a jej wartość po wyjściu z pętli nie
jest określona. Jednocześnie przy pętli for kompilator automatycznie sprawdzi, czy wartości początek i koniec są w zakresie typu
zmiennej, tzn. czy moŜe je przyjąć – musi mieć ona typ całkowity
- zmienna sterująca moŜe sterować tylko o 1 w przód lub o 1 wstecz
- stosujemy ją kiedy wiemy ile razy ma być ona wykonana (wartość początkowa i końcowa)
- pętla wystartuje co najmniej jeden raz, po czym zakończy działanie np. z powodu błędu wartości początkowej i końcowej
ZADANIA DO WYKONANIA
Zadanie 1
Napisz program, który wypisuje liczby od 1 do 50, a następnie od 50 do 1.
Zadanie 2
Napisz program, który wyprowadzi znaki od A do Z.
Zadanie 3
Napisz program, który narysuje z gwiazdek (*) kwadrat 10 na 10
Zadanie 4
Napisz program, który obliczy sumę n kolejnych liczb naturalnych (począwszy od 1)
Zadanie 5
Napisz program, który obliczy silnię liczby N
Zadanie 6
Napisz program, który obliczy średnią N podawanych przez uŜytkownika liczb

Podobne dokumenty