Instrukcje iteracyjne

Slides:



Advertisements
Podobne prezentacje
Programowanie I Rekurencja.
Advertisements

Zadanie z dekompozycji
27/09/ Języki programowania 1 Piotr Górczyński Pętle.
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
algorytm znajdowania największego wspólnego dzielnika (NWD)
Złożoność obliczeniowa
Problemy nieliniowe Rozwiązywanie równań nieliniowych o postaci:
Metoda węzłowa w SPICE.
START WYPROWADŹ WYNIK 8 STOP
Materiały pochodzą z Platformy Edukacyjnej Portalu
Turbo pascal – instrukcje warunkowe, iteracyjne,…
BINGO MATEMATYCZNE 2011 RÓWNANIA
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
ALGORYTMY INSTRUKCJE WARUNKOWE Część III.
JAKO CZĘŚĆ NASZEGO ŻYCIA
Kinga Kołodziej, Marta Trębicka
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
CO TO JEST ALGORYTM!.
Algorytmy Podstawowe pojęcia.
Dr Anna Kwiatkowska Instytut Informatyki
PASCAL (2) dr Anna Kwiatkowska.
Algorytmy Marek Pudełko
Metody matematyczne w Inżynierii Chemicznej
Schemat Hornera Mgr inż. Michał Szucki.
ALGORYTMY.
RODZAJE ALGORYTMÓW Źródło: Jolanta Pańczyk - Informatyka Europejczyka. Podręcznik dla gimnazjum. Część II.
Podstawy programowania
Algorytmy.
Rekurencja.
ALGORYTMY KLASYCZNE ________ FRAKTALE
Instrukcje sterujące część 2
Metody matematyczne w inżynierii chemicznej
OBLICZENIE PODATKU ZA ROK 2002
Algorytmy i struktury danych
Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie
PHP: warunki, pętle, switch, break, continue
Wstęp do algorytmiki Program ELI Marek Magiera
ALGORYTMY.
Jak tworzyć algorytmy.? Sposób krok po kroku..
Programowanie strukturalne i obiektowe
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Instrukcje iteracyjne
Elżbieta Fiedziukiewicz
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Spis treści W świecie algortmów -Budowa algorytmu
II Zadanie programowania liniowego PL
Warsztaty dla nauczycieli przedmiotów informatycznych
Algorytmy.
Algorytmika.
Algorytmika Iteracje autor: Tadeusz Lachawiec.
Wykład 6 Informatyka MPDI 3 semestr JavaScript cd.
Temat 8: Pętle.
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Tematyka zajęć LITERATURA
Metody nieinkluzyjne: Metoda iteracji prostej.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wstęp do interpretacji algorytmów
Metody sztucznej inteligencji – technologie rozmyte i neuronoweReguła propagacji wstecznej  Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów.
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Co to jest algorytm? Uporządkowany i uściślony sposób rozwiązania danego problemu, zawierzający szczegółowy opis wykonywanych czynności w skończonej.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Sposoby zapisu algorytmu
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Instrukcje iteracyjne pętle

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).

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

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!

schemat blokowy algorytmu iteracyjnego schemat blokowy algorytmu iteracyjnego. Tu można wprowadzić pojęcie pętli iteracyjnej – widać ją na schemacie

Obliczenie silni (5!) 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 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

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

#include<iostream.h> #include <iomanip.h> #include <math.h> main(){ int x; float y, pi=3.1415; //pi=3.1415926535897932384626433832795 x=0; while (x<=180) { y=sin(x*pi/180); cout<<"sin("<<x<<") = "<<setprecision(2)<<y<<endl; //to samo co "\n" x=x+10; } //end while system ("pause"); } w funkcji sinus musimy wprowadzić mnożnik pi/180 ponieważ w C++ funkcje trygonometryczne pracują nie w stopniach lecz radianach. Stąd ten przelicznik radianów na stopnie

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.

#include<iostream.h> #include <math.h> main() { int x; float y, pi=3.141592654; x=0; do { y=sin(x*pi/180); cout<<"sin("<<x<<") = "<<y<<endl; //to samo co "\n" x=x+10; } while (x<=180) ; system (”pause”); }

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ę.

#include<iostream.h> main() { int i; for (i =1; i < 4; i=i+1) // Pętla wypisze 3 razy cout<<"Jestem w pętli\n"; // ten sam tekst: Jestem w pętli system("pause”); } Praca pętli for wykonywana jest według następującego algorytmu: 1. Wykonują się instrukcje inicjujące pętlę inst_inic. 2. Obliczana jest wartość wyrażenia wyr_war. Jeśli wartość tego wyrażenia jest równa zero, praca pętli jest przerywana. 3. Jeśli powyżej okazało się, że wyr_war jest != 0, wtedy wykonywana jest instrukcja. 4. Po wykonaniu instrukcji, obliczana jest wartość wyrażenia wyr_krok, po czym powtarzany jest punkt 2.

#include<iostream.h> #include <math.h> main() { int x; float y, pi=3.141592654; // tu nie musimy podawać x=0, ponieważ jest to realizowane w pętli for (x=0;x<180;x=x+10) { y=sin(x*pi/180); cout<<"sin("<<x<<") = "<<y<<endl; //to samo co "\n" } system (”pause”);

/* Program sprawdza, czy wpisano liczbę z zakresu (10, 100) jeśli liczba należy do przedziału, pętla wykonywana jest dalej */ #include<iostream.h> main() { int liczba; do { // && operator logiczny i (iloczyn logiczny) cout<<"Podaj liczbę całkowitą z przedziału <10, 100>" ; cin>>liczba; } while ( (liczba<100) && (liczba>10)); system("pause"); }

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.

// Pętle zagnieżdżone for – tabliczka mnożenia #include<iostream.h> main() { int i, x, y, iloczyn; for (x=1; x<=10; x=x+1) { //x++ for (y=1; y<=10; y=y+1) { iloczyn=x*y; cout<<" "<<x<<" * "<<y<<" = "<<iloczyn<<endl; } //for cout<<"\n"; system ("pause"); }

Zadanie Proszę napisać program obliczający średnią arytmetyczną wprowadzanych liczb, wykorzystując wszystkie instrukcje iteracyjne (while, do…while, for).