Temat: Iteracja i pętla

advertisement
Temat: Iteracja i pętla
1. W informatyce iteracja polega na powtarzaniu pewnej czynności (instrukcji)
wielokrotnie (iteratio – powtarzaj). W oparciu o iteracje działają pętle. Obok instrukcji
wyboru i warunkowej jedna z podstawowych konstrukcji w programowaniu
(strukturalnym). Są to cykliczne instrukcje, więc następują w ramach nich
powtórzenia, czyli zawierają one iteracje.
I.
rozpocznij
II.
liczba = 0
III.
liczba = liczba + 1
IV.
wypisz liczbę
jeżeli liczba >100 zakończ
V.
VI.
wróć do punktu II
Po wykonaniu instrukcji III sprawdzany jest warunek. Bez niego instrukcja
wykonywana będzie w nieskończoność za sprawą VI.
Które linie stanowią w powyższej pętli iterację?
2. Prostym przykładem zastosowania pętli jest obliczenie pewnej skończonej ilości
wartości zadanej funkcji.
Weźmy funkcję: y = (n+1)/n. Oblicz kilka pierwszych wartości podstawiając n = 1, 2,
3 itd. Następnie skonstruuj algorytm obliczający 30 pierwszych wartości. Zapisz go
słownie. Kolejnym krokiem niech będzie obliczenie wszystkich trzydziestu wartości
w programie ELI 2.0.
3. Zapisz algorytm z punktu 2 w pseudokodzie, pseudokodzie następnie w postaci
programu w języku Pascal (użyj kompilatora Free Pascal).
Pętla FOR:
for i = 1 to n do
instrukcje (zawierające zmienną i)
Przykład:
for i = 1 to 10
begin
write(‘Część Wojtek’);
end;
Efektem będzie 10 – krotne wypisanie tekstu.
4. Zapisz program dokonujący sumowania określonej ilości liczb naturalnych. Być może
inne pętle byłyby właściwsze, ale my używamy pętli FOR:
5. Zadanie: Liczby Fibonacciego generowane są następująco:
L1 = 1
L2 = 1
Ln = Ln-1 + Ln-2
Napiszemy w schemacie blokowym algorytm który wypisze wszystkie liczby
Fibonacciego w podanym zakresie. Uważaj, aby nie podawać zbyt dużych argumentów,
gdyż wartości przekroczą wtedy zakres przeznaczony dla typu Integer
PROGRAM CiagFibon;
USES Crt;
VAR
licznik, pierwsza, druga, c: LONGINT;
BEGIN
ClrScr;
pierwsza:=1;
druga:=1;
Writeln;
Writeln (‘podaj zakres większy od 1 ');
Read(n);
Writeln(‘Szukane liczby to ‘);
Writeln(‘1’);
Writeln(‘1’);
FOR licznik:= 1 TO n-2 DO
BEGIN
c:= pierwsza + druga;
pierwsza:= druga;
druga:= c;
Writeln (druga);
END;
readkey;
END.
6. Zrealizuj powyższy program w kompilatorze Free Pascal. Zwróć uwagę na iterację.
Download