dr Anna Kwiatkowska Instytut Informatyki

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Programowanie w PMC.
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Algorytmika w szkole podstawowej
Wykład 06 Metody Analizy Programów System Hoare
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
algorytm znajdowania największego wspólnego dzielnika (NWD)
Badania operacyjne. Wykład 2
Liczby Pierwsze - algorytmy
ZŁOŻONOŚĆ OBLICZENIOWA
Opracowała: Elżbieta Fedko
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Algorytmy.
Algorytmy i struktury danych
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
PASCAL (2) dr Anna Kwiatkowska.
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Ułamki zwykłe i liczby mieszane.
ALGORYTMY.
Agata Łysakowska Klasa III „n”
Matematyka.
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
Podstawy układów logicznych
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Prowadzący: Dr inż. Jerzy Szczygieł
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Microsoft Office Excel
Budowanie schematu blokowego
ALGORYTMY.
Algorytmy.
Elżbieta Fiedziukiewicz
Początek, koniec lub przerwanie algorytmu
Spis treści W świecie algortmów -Budowa algorytmu
Wykład 7 Synchronizacja procesów i wątków
Temat 7: Instrukcje warunkowe
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmy.
Algorytmika.
Algorytmika Iteracje autor: Tadeusz Lachawiec.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Metody numeryczne szukanie pierwiastka metodą bisekcji
Algorytmy i struktury danych
Obliczanie NWD- algorytm Euklidesa
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Algorytmy.
Algorytm znajdowania Największego Wspólnego Dzielnika.
Algorytmy – wprowadzenie
Wstęp do interpretacji algorytmów
Pętle – instrukcje powtórzeń
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Efektywność algorytmów
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

dr Anna Kwiatkowska Instytut Informatyki Algorytmy dr Anna Kwiatkowska Instytut Informatyki

أبو عبد الله محمد بن موسى الخوارزمي Słowo algorytm pochodzi od nazwiska arabskiego matematyka Abu Ja’far Mohammad ibn Musa al-Chorezmi, który żył na przełomie VIII i IX wieku na terenach obecnego Uzbekistanu

Algorytmy Jego nazwisko pisane po łacinie przyjęło postać: Algorismus Jest on uznawany za prekursora metod obliczeniowych w matematyce Jeden z najstarszych algorytmów, algorytm Euklidesa znajdowania największego wspólnego podzielnika dwóch liczb ma ponad 2000 lat

Algorytm Euklidesa Co ciekawe algorytmu nie wymyślił Euklides, a Eudoksos z Knidos w IV wiek p.n.e. Euklides jedynie algorytm ten zawarł i udowodnił jego poprawność w swoim dziele Elementy Największy Wspólny Dzielnik (NWD) dwóch liczb jest największą liczbą naturalną spośród tych, które dzielą obie te liczby bez reszty W codziennej praktyce NWD służy nam do skracania ułamków do postaci właściwej

Algorytm Euklidesa Dane: n, m – dwie liczby naturalne. Dane wyjściowe liczba naturalna będąca największym wspólnym dzielnikiem liczb n i m. W pierwszej sekcji algorytmu sprawdzamy czy m>n i jeżeli tak jest to zamieniamy miejscami wartości zmiennych m i n, aby był spełniony wymagany warunek m<=n

Algorytm Euklidesa Sprawdzamy, czy m≠0, jeśli tak, to następne czynności wykonujemy aż do momentu gdy m=0 rob = n - ( n DIV m) *m n = m m = rob DIV jest operatorem dzielenia całkowitego Wynik jest w zmiennej n

Algorytm Euklidesa rob m n m>n 12 18 12 6 12-(12div6)*6 ? 18 12 ? 6 jeśli m>n to przestawić m z n jeśli m ≠ 0 obliczaj: rob = n - ( n DIV m) *m n = m m = rob rob m n m>n 12 18 12 6 12-(12div6)*6 ? 18 12 ? 6 18-12 12-2*6 18-(18div12)*12 12 6 ? NWD = 6

Algorytm Algorytm jest to sformalizowany ciąg logicznie powiązanych instrukcji (poleceń, rozkazów), których wykonanie pozwoli na przetworzenie informacji wejściowych (danych) w informacje wyjściowe (wyniki) w skończonej liczbie kroków

Przepisy kucharskie Zapis nutowy muzyki. Instrukcje montażu Opisy dojazdu

wśród prekursorów algorytmów komputerowych ważną rolę odegrała Ada Augusta, hrabina Lovelace, córka Byrona, która żyła w latach 1815 – 1852, uważa się ją za pierwszą programistkę

Rozwiązanie zadania • analiza treści zadania • wykaz danych wejściowych; wiadomych i niewiadomych oraz relacji między nimi • sprawdzenie czy zadanie posiada jednoznaczne rozwiązanie • wybór metody rozwiązania zadania • opis czynności, które należy wykonać z danymi wejściowymi przy zastosowaniu wybranej metody rozwiązania • sporządzenie i przedstawienie wyników rozwiązania zadania

Użyteczność algorytmu Algorytm jako pewna określona procedura obliczeniowa posiada cechy, które określają jej użyteczność: 1)       poprawność 2)       złożoność obliczeniowa 3)       złożoność czasowa

Formuła częściowej poprawności programu Trójka to formuła logiczna, która jest prawdziwa wtedy i tylko wtedy, gdy zachodzi następujący warunek: Dla każdego stanu spełniającego , jeżeli program zakończy swoje działanie, to stan końcowy będzie spełniał formułę

Formuła częściowej poprawności programu Takie formuły nazywamy trójkami Hoare'a albo formułami częściowej poprawności programu Zostały wprowadzone przez jednego z największych informatyków, Anthony'ego Hoare'a, w połowie lat 60

Zauważmy, że o poprawności formuły Hoare'a możemy mówić w dwóch przypadkach: Kiedy dla danych spełniających program się zatrzyma i dane po zatrzymaniu się programu spełniają Kiedy dla danych spełniających program się nie zatrzyma

Przykład Udowodnijmy, że jeśli k>0, to po instrukcji j:=k+1 mamy j>0 Ponieważ mamy po prawej stronie instrukcji przypisania wyrażenie k+1, więc musimy warunek początkowy zapisać w równoważnej formie, w której miejsce zmiennej k zajmuje wyrażenie k+1 Zatem jest k>0 równoważne k+1>1 i stosując regułę dla instrukcji przypisania otrzymujemy, że j>1 co akurat w przypadku zmiennych całkowitych jest równoważne j>0

Poprawność algorytmów Jeśli program jest częściowo poprawny i ma własność stopu jest gwarancja uzyskania żądanego wyniku Jak zatem wywnioskować, czy program się zatrzyma Metoda opracowana przez Roberta Floyda w latach sześćdziesiątych korzysta z zasady indukcji Chodzi o pokazanie, że pewna wartość, maleje w każdym obrocie pętli, a zmniejszanie to nie może się ciągnąć w nieskończoność

Złożoność algorytmów Złożoność obliczeniowa algorytmu jest określana ilością zasobów systemu liczącego potrzebnych do jego wykonania Podstawowymi zasobami są: czas procesora i obszar pamięci, czyli czas działania algorytmu oraz ilość zajętej pamięci Parametry te mają największy wpływ na złożoność obliczeniową

Złożoność algorytmów Wyróżniana jest złożoność czasowa złożoność pamięciowa Złożoność czasowa zależy od wszystkich jednostkowych czynności wykonywanych podczas realizacji algorytmu Jedne czynności wykonywane są wolniej inne szybciej

Czynności jednostkowe Zazwyczaj jako czynności jednostkowe przyjmuje się: wykonanie operacji arytmetycznej (dodawanie, odejmowanie, mnożenie, dzielenie i in.); nadanie wartości zmiennej; zbadanie relacji lub wykonanie operacji logicznej; wprowadzenie danej; i in.

Przykład Określ czynności jednostkowe obliczania wartości wyrażenia w(x) określonego wzorem: dla danej wartości x.

Razem 16 operacji jednostkowych Rozwiązanie Wersja I (nieoptymalna). w = 3*x*x*x*x*x*x + 2*x*x*x*x + 5*x*x +10 Liczba operacji jednostkowych: - 1 przypisanie - 3 dodawania - 12 mnożeń. Razem 16 operacji jednostkowych

Rozwiązanie Wersja II. w = x * x w = ((3*w + 2)*w + 5)*w + 10 Liczba operacji jednostkowych: - 2 przypisania - 3 dodawania - 3 mnożenia. Razem 8 operacji jednostkowych.

Złożoność algorytmów często dokładne zliczanie operacji jednostkowych jest bardzo trudne lub niemożliwe i w związku z tym wyróżnia się tzw. operacje dominujące za operacje dominujące w danym algorytmie uważa się te, których liczba jest proporcjonalna do liczby wykonań wszystkich operacji jednostkowych w dowolnej komputerowej realizacji tego algorytmu za jednostkę złożoności czasowej przyjmuje się wykonanie jednej operacji dominującej

Złożoność algorytmów Złożoność pamięciowa określa zapotrzebowanie algorytmu na pamięć Za jednostkę złożoności pamięciowej przyjmuje się zwykle słowo pamięci komputera

Złożoność algorytmów Dla większości algorytmów trudno jest określić dokładnie złożoność obliczeniową, która między innymi w większości przypadków zależy od liczby danych wejściowych (rozmiaru danych) W takich przypadkach bywa wyróżniana złożoność pesymistyczna oraz złożoność oczekiwana algorytmu

Pesymistyczna złożoność czasowa Pesymistyczna złożoność czasowa algorytmu określana jest funkcją w(n): gdzie: n – rozmiar danych sup – kres górny zbioru t(d) – liczba operacji dominujących dla zestawu danych wejściowych d Dn – zbiór zestawów danych wejściowych o rozmiarze n.

Oczekiwana złożoność czasowa Oczekiwana złożoność czasowa algorytmu określana jest funkcją A(n): gdzie: A(n) – wartość oczekiwana zmiennej losowej Xn Xn - wartością tej zmiennej losowej jest liczba operacji dominujących dla zestawu danych wejściowych dDn pnk – prawdopodobieństwo, że dla danych o rozmiarze n algorytm wykona k operacji dominujących.

Przykład Określ złożoność czasową algorytmu wyszukiwania elementu a w N elementowym ciągu L Rozwiązanie. Dane początkowe: N – liczba naturalna (N  0) a – poszukiwany element L – ciąg elementów { lj }, j=1,...,N

Założenia: N - rozmiar danych wejściowych (n=N), Xn - zmienna losowa określająca prawdopodobieństwo wystąpienia a na danym miejscu w ciągu L. Element równy a może wystąpić na każdym miejscu jednakowym prawdopodobieństwem – rozkład jednostajny. Zatem pnk=1/N. Wynikiem algorytmu jest wartość logiczna q określona następująco: q = 0 (fałsz) gdy żaden z elementów l1,..., lN nie jest równy a q  0 (prawda) gdy w ciągu L występuje element równy a

Przykład Operacja dominująca: lj  a Rozwiązanie. Pesymistyczna złożoność czasowa: w(N)=N+1 Oczekiwana złożoność czasowa: . Z powyższych obliczeń wynika, że funkcja złożoności czasowej jest funkcją liniową operacji dominujących.

Własności poprawnie sformułowanego algorytmu 1)       uniwersalność – pozwala na rozwiązanie całej klasy zadań; 2)       ścisłość – zarówno czynności algorytmu, jak i kolejność ich wykonania jest opisana dostatecznie jasno i wyraźnie; 3)     jednoznaczność – wielokrotne wykonywanie algorytmu dla identycznych danych prowadzi do takich samych wyników;

Własności poprawnie sformułowanego algorytmu 4) kompletność – algorytm uwzględnia wszystkie możliwe przypadki zdarzeń, jakie mogą wystąpić podczas jego wykonania; 5) skończoność – rozwiązanie zadania otrzymamy po skończonej ilości czynności (kroków algorytmu).

Przykład a x2 + b x + c = 0 Znany algorytm wyznaczenia pierwiastków rzeczywistych trójmianu kwadratowego o współczynnikach rzeczywistych ma cechy poprawnego algorytmu, gdyż charakteryzują go : uniwersalność – algorytm rozwiązuje dowolne równanie kwadratowe określone przez trójkę liczb a, b, c gdzie a0 oraz a,b,c;

Przykład ścisłość – opisany wzorem matematycznym sposób obliczenia delty jako pierwszy krok, badanie znaku delty i w zależności od uzyskanej odpowiedzi wyznaczenie pierwiastków przy pomocy wzorów matematycznych skończoność – po kilku krokach algorytmu otrzymamy wynik.

Przykład jednoznaczność – zawsze dla tych samych współczynników uzyskamy te same odpowiedzi, gwarantują nam to wzory matematyczne kompletność – wszystkie przypadki, czyli delta>0, delta=0 oraz delta<0 są uwzględnione

Sposoby zapisu algorytmu opis słowny zapis przy pomocy pseudo-kodu zapis graficzny (schematy) zapis w języku programowania

Opis słowny Opis słowny jest to zapis kolejnych kroków algorytmu w języku naturalnym np. polskim wyszczególniamy, jakie czynności należy wykonać  zaznaczamy, kiedy powinien nastąpić koniec algorytmu

Przykład Dany jest: punkt płaszczyzny P(xp,yp) środek S(a,b) długość promienia r okręgu o równaniu (x-a)2+(y-b)2=r2. Określić położenie punktu P względem tego okręgu.

Przykład Oznaczamy d - odległość punktu od okręgu. Jeżeli d<r, to punkt leży wewnątrz okręgu, jeżeli d=r, to punkt leży na okręgu a gdy d>r, to punkt leży na zewnątrz r S

Opis słowny algorytmu Pobierz wartości xp ,yp, a, b, r. Oblicz odległość punktu według wzoru Sprawdź, czy d<r , jeśli TAK, to „punkt wewnętrzny” i przejdź do KONIEC. Sprawdź, czy d=r, jeśli TAK, to „punkt leży na okręgu” i przejdź do KONIEC „Punkt leży na zewnątrz okręgu” KONIEC

Opis algorytmu zamek który??? język naturalny jest ze swej natury niejednoznaczny który??? zamek

Pseudo - kod Do zapisania algorytmu w postaci na wpół sformalizowanej służy pseudo-kod Jest to sposób zapisu wybranej metody oparty na języku naturalnym (polskim lub angielskim), ale narzucający przy tym pewną dyscyplinę w formułowaniu zdań Reguły dotyczące formułowania opisu postępowania są zaczerpnięte najczęściej z wybranego języka programowania i mają za zadanie zapewnić jednoznaczność zapisu

Pseudo - kod Podstawowymi elementami pseudo-kodu są zdania, nazywane inaczej instrukcjami Słowa, które są podstawą budowy tych zdań i zawsze muszą w nich wystąpić dla wyróżnienia są podkreślane i nazywane słowami kluczowymi Obecnie najbardziej rozpowszechniona jest notacja pascalo-podobna, czyli pseudo-kod oparty na regułach języka PASCAL

Pseudo - kod Każda instrukcja pseudo-kodu powinna zaczynać się od nowej linii W zapisie tym należy przestrzegać także wcięć i i czytelnego rozłożenia tekstu Instrukcje zagłębione w innych są wcięte o kilka znaków, żeby zależności pomiędzy nimi były widoczne graficznie

Pseudo - kod Nawiasy instrukcji grupujących powinny być zapisane tak, aby od razu było widać, które z nich tworzą parę Reguły te pozwalają zwiększyć czytelność zapisu ułatwiają analizę zapisanych algorytmów

Pseudo - kod Pseudo-kod umożliwia w łatwy sposób rozwijać zapisane już instrukcje poprzez dopisywanie nowych i grupowanie je w odpowiedni sposób Dzięki tej własności można przy jego pomocy czytelnie zapisywać złożone algorytmy

Pseudo-kod W tym zapisie możemy używać następujących zdań: instrukcja określająca czynność do wykonania, nie posiada słów kluczowych, np. zwiększ wartość zmiennej x o jeden instrukcje te oddzielane są od siebie słowem kluczowym a następnie

y x i 4 3 3 10 7 x := 7 x:=x+1 3+1 4 y := 3 I := 7 x 10 + 3 y x:= y ?

Pseudo-kod instrukcja wyboru (decyzyjna) zawiera strukturę opisującą decyzje podejmowane w algorytmie i ich skutki wyboru dokonuje się na podstawie określonego kryterium (warunku), które jest wyrażeniem logicznym

Postacie instrukcji warunkowej skrócona - posiada dwa słowa kluczowe i ma postać: jeżeli warunek to instrukcja np. jeżeli dziecko skończyło 6 lat to zapisz je do szkoły; pełna – posiada trzy słowa kluczowe i ma postać: jeżeli warunek to instrukcja1 w przeciwnym wypadku instrukcja2 np. jeżeli kupiłeś samochód to zrób prawo jazdy w przeciwnym wypadku zatrudnij szofera

Instrukcja warunkowa – postać skrócona to jeżeli warunek FALSE x>4 TRUE Większy!!!! ; instrukcja; czynności bez względu na to czy większy; ciąg dalszy programu;

Instrukcja warunkowa – postać pełna jeżeli warunek wtedy FALSE TRUE instrukcja 1 w przeciwnym wypadku instrukcja 2;

jeżeli > stan mojego konta 1 000 000 $ to w przeciwnym wypadku

instrukcja iteracyjna warunkowa opisuje sytuację, w której pewne czynności należy powtarzać dopóki podany warunek jest spełniony; powtarzanie czynności opisanych instrukcją kończy się, gdy warunek przestaje być prawdziwy, posiada ona dwa słowa kluczowe i ma postać: podczas, gdy warunek wykonuj instrukcja np. podczas, gdy jest w kasie gotówka wykonuj realizuj polecenie wypłaty

Instrukcja iteracyjna warunkowa MUSI zmieniać elementy warunku! godzina = 8.00 podczas, gdy TRUE godzina < 10 8 10<10 warunek TRUE 9 < 10 FALSE wykonuj PRZERWA! Na Kit-Kat PRACUJ! instrukcja ZEGAR: godzina=godzina +1 9 8 10

instrukcja iteracyjna może być używana w sytuacji, gdy pewne czynności należy wykonać określoną liczbę razy posiada dwa słowa kluczowe i ma postać: dla wykaz sytuacji wykonuj instrukcja np. dla każdego studenta z roku wykonuj wystaw ocenę końcową;

Koniec spacerów! ( dla ) nie ma psów Azor, King, Lady, Drab, wykonuj wyprowadź na spacer Koniec spacerów!

Instrukcja iteracyjna mam pięć fajerwerków, zatem: dla i= 3, 4, 5 2, 1, wykonuj odpal fajerwerk zabrakło fajerwerków

Instrukcja iteracyjna warunkowa wykonuj 2 1 wyświetl wartość ‘i’ na ekranie i= i+1 3 2 aż do momentu gdy KONIEC!! i>2 FALSE i>2 TRUE 3 2

instrukcja grupująca instrukcja ta zamiast słów kluczowych używa symboli nawiasu klamrowego i ma postać: { instrukcja 1 a następnie instrukcja 2 ... instrukcja n }

instrukcja grupująca służy do zaznaczenia, że daną grupę instrukcji trzeba traktować jako całość używana w sytuacji, gdy w danym miejscu reguły zapisu wymagają tylko jednego zdania, a potrzebna jest więcej niż jedna instrukcja

Zapis graficzny Zapis graficzny algorytmu można zrealizować w postaci: schematu blokowego zorientowanego; schematu zwartego NS (Nassi – Shneidermana )

Schemat zorientowany nie używa się go od 30 lat umożliwia niestrukturalny zapis algorytmu możliwy jest skok w dowolne miejsce schematu

klatka początku algorytmu klatka kończąca algorytm START klatka początku algorytmu klatka kończąca algorytm pobieranie danych do przetwarzania, wyprowadzanie wyników, klatka operacji bezwarunkowej, klatka decyzyjna, klatka iteracyjna, STOP WE WY TAK NIE

Schemat blokowy zorientowany Poszczególne klatki schematu łączy się strzałkami, których zwrot określa kolejność wykonywanych kroków algorytmu Zapis w postaci schematu zorientowanego może prowadzić do programów niestrukturalnych, gdyż umożliwia przeskok z dowolnego miejsca algorytmu w inne Dlatego też powstały schematy zwarte NS, które zastąpiły schematy blokowe zorientowane

Schematy NS Schematy zwarte NS poprzez to, że składają się ze zwartych bloków uniemożliwiają zapis skoków wewnątrz algorytmu, zmuszając programistę do myślenia strukturalnego Sposób rozwiązania danego problemu zapisany w postaci schematu zwartego jest łatwiejszy do zrozumienia przez osoby postronne Zapis algorytmu w postaci schematu NS ułatwia sprawdzenie jego poprawności, a co za tym idzie, programy pisane według tego typu schematów zawierają mniej błędów

instrukcje refrenu wykonują się wtedy, gdy warunek jest spełniony instrukcja imperatywna, określająca czynność do wykonania, której opis wpisuje się wewnątrz klatki wprowadzanie danych, wykaz danych do wprowadzenia wpisuje się wewnątrz klatki, w trójkącie można wpisać numer urządzenia wejścia wyprowadzanie wyników, wykaz wartości do wyprowadzenia wpisuje się wewnątrz klatki, w trójkącie można wpisać numer urządzenia wyjścia instrukcja decyzyjna (wyboru) jeśli, czynność dane wyniki warunek Tak Nie instr1 instr2 warunek refren instrukcje refrenu wykonują się wtedy, gdy warunek jest spełniony refren warunek instrukcje refrenu wykonują się aż do chwili, gdy warunek zostanie spełniony

Schematy NS zadanie, dla którego zostaną przedstawione algorytmy jego rozwiązania przy użyciu każdej z opisanych wyżej instrukcji iteracyjnych dzięki temu widoczne będą różnice w zastosowaniu każdej z nich należy zaznaczyć, iż są zadania, których algorytmy rozwiązań nie dadzą się zrealizować przy użyciu instrukcji iteracyjnej „dla” instrukcja ta jest więc węższa w zastosowaniu w porównaniu z dwoma pozostałymi instrukcjami iteracyjnymi

Schemat NS Obliczyć sumę i iloczyn podanych 4 liczb. Schemat zwarty algorytmu, który generuje żądany wynik przy użyciu: instrukcji iteracyjnej „while” rozwiązanie 1 instr. iteracyjnej „dopóki” rozwiązanie 2 instrukcji iteracyjnej „dla” rozwiązanie 3

Rozwiązanie 1 . Schemat obliczania sumy i iloczynu podanych trzech liczb {2,5,10} z wykorzystaniem pętli „podczas gdy” S:=0, Il:=1 n:=1 n <= 3 S 17 2 7 „Podaj liczbę: ” Il 10 2 1 100 a S:= S+a Il:=Il*a n 4 3 2 1 n:= n+1 warunek pętli a 10 5 2 KONIEC Suma=17 Iloczyn=100 ? TRUE FALSE 4 3 1 2 n<=3

Rozwiązanie 2 . Schemat obliczania sumy i iloczynu podanych trzech liczb { 2,5,10} z wykorzystaniem pętli „dopóki” S:=0, Il:=1 S 7 2 17 n:=1 „Podaj liczbę: ” Il 1 100 10 2 a n S:= S+a 1 3 4 2 Il:=Il*a a 2 10 5 n:= n+1 n > 3 warunek pętli 4 3 TRUE 2 n>3 FALSE KONIEC Suma=17 Iloczyn=100

Rozwiązanie 3 .Schemat obliczania sumy i iloczynu podanych 3 liczb {2,5,10} z wykorzystaniem pętli „dla” licznik pętli n S:=0, Il:=1 1 2 4 3 n = 1 .. 3 „Podaj liczbę: ” a a 2 5 10 S:=S+a Il:=Il*a S 7 2 17 Il 2 Suma=17 Iloczyn=100 1 100 10 KONIEC