1 Instrukcje iteracyjnepętle
2 Iteracja: metoda matematyczna polegająca na wielokrotnym kolejnym zastosowaniu tego samego algorytmu postępowania, przy czym wynik i-tej operacji stanowi dane wejściowe dla kolejnej, (i+1)-szej operacji. W algorytmach jest to wielokrotne powtarzanie pewnych operacji, lub nawet całych fragmentów obliczeń (np. kilku kroków).
3 Wykonaj obliczenie: n! = n! * liczba Dane: n =5. Wynik: wyprowadzenie wyniku n!=1*2*3*4*5. Start Obliczenie wstępne: n! = 1, gdzie liczba = 1 (obliczenia zostaną zakończone, gdy liczba przekroczy wartość 5). Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 n!=1*1=1 liczba=2 Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 n!=1*2=2 liczba=3 Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 n!=2*3=6 liczba=4 Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 n!=6*4=24 liczba=5 Tak należałoby skonstruować algorytm, by obliczyć wartość 5! A co dla 100! ? Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 n!=24*5=120 liczba=6 Koniec
4 Wynik: wyprowadzenie wyniku n!=1*2*3*4*5 Start Dane: n=5 Wynik: wyprowadzenie wyniku n!=1*2*3*4*5 Start Obliczenie wstępne: n! = 1 liczba = 1 Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba=liczba+1 Wykonaj obliczenie: liczba = liczba + 1 Koniec Dane: n=5 Wynik: wyprowadzenie wyniku n!=1*2*3*4*5 Start Obliczenie wstępne: liczba =1 n!=1 Sprawdzenie warunku liczba <= 5 Jeśli TAK, to: Wykonaj obliczenie: n! = n! * liczba Wykonaj obliczenie liczba = liczba + 1 Ponowne sprawdzenie warunku Jeśli NIE, to Wyprowadź wynik: n! Koniec Porównanie algorytmów liniowego i iteracyjnego do obliczenia 5!
5 schemat blokowy algorytmu iteracyjnegoschemat blokowy algorytmu iteracyjnego. Tu można wprowadzić pojęcie pętli iteracyjnej – widać ją na schemacie
6 Obliczenie silni (5!) Dane: n =5Wynik: wyprowadzenie wyniku n!=1*2*3*4*5 Start Obliczenie wstępne: liczba =1 n!=1 Sprawdzenie warunku liczba <= 5 Jeśli TAK, to: Wykonaj przypisanie: n! = n! * liczba Wykonaj przypisanie: liczba = liczba + 1 Ponowne sprawdzenie warunku Jeśli NIE, to Wyprowadź wynik: n! Koniec Liczba=2 Liczba=3 Liczba=4 Liczba=5 Liczba=6 n!=120
7 Instrukcja while (dopóki)Składnia tej instrukcji jest następująca: while (wyrażenie_warunkowe) instrukcja; W pętli while wykonanie instrukcji powtarza się tak długo, jak długo wyrażenie_warunkowe ma wartość TRUE (czyli jest prawdziwe). Sprawdzenia tego dokonuje się przed każdym wykonaniem instrukcji, a więc może się zdarzyć, że instrukcje w pętli nie będą wykonane ani raz! Przy pomocy różnych rodzajów pętli iteracyjnych obliczać będziemy wartość sin (x) dla x >0 i x <180
8 #include
9 Instrukcja do...while Składnia instrukcji jest następująca:do instrukcja while wyrażenie_warunkowe; W pętli do...while wykonanie instrukcji powtarza się tak długo, jak długo wyrażenie_warunkowe ma wartość TRUE (czyli jest prawdziwe). Sprawdzenia tego dokonuje się po każdym wykonaniu instrukcji, dlatego pętla wykona się zawsze co najmniej raz; to różni ją od pętli while, która może nie wykonać się wcale.
10 #include
11 Instrukcja for Składnia pętli for ma postać:for (inst_ini; wyr_war; wyr_krok) instrukcja; inst _ini wykorzystywana jest zwykle do deklarowania i inicjalizowania zmiennych na potrzeby pętli, wyr_war wyrażenie warunkowe wykorzystywane jest do testowania warunków wykonywania pętli, wyr_krok określa zmianę stanu pętli i używane jest zwykle do zwiększania lub zmniejszania zmiennej indeksującej pętlę.
12 #include
13 #include
14 /* Program sprawdza, czy wpisano liczbę z zakresu (10, 100)jeśli liczba należy do przedziału, pętla wykonywana jest dalej */ #include
15 Pętle zagnieżdżone Często mamy do czynienia z pętlami iteracyjnymi znajdującymi się w innej pętli – są to tzw. pętle zagnieżdżone. Aby prawidłowo z nich korzystać, należy pamiętać, że: pętla rozpoczynająca się w danej pętli musi się również w niej kończyć; klamra zamykająca pętlę wewnętrzną MUSI być w pętli zewnętrznej, zawsze najpierw wykonywana jest pętla wewnętrzna, a później – zewnętrzna.
16 // Pętle zagnieżdżone for – tabliczka mnożenia#include
17 Zadanie Proszę napisać program obliczający średnią arytmetyczną wprowadzanych liczb, wykorzystując wszystkie instrukcje iteracyjne (while, do…while, for).