background image

 

Algorytm 

 

znaczenie cybernetyczne  
Jest to dokładny przepis wykonania w określonym 
porządku skończonej liczby operacji, pozwalający na 
rozwiązanie zbliżonych do siebie klas problemów. 
 
znaczenie matematyczne 
Jest to reguła przekształcania wyrażeń matematycznych 
przez powtarzanie tych samych działań na kolejno 
otrzymanych wynikach działań poprzednich. 
 
Słowo „algorytm”
 pochodzi od perskiego matematyka 
Mohammed ibn Musa al-Kowarizimi  (Algorismus - 
łacina) 
z IX w. ne. 
 

Krótka historia algorytmów 

 
365-300 p.n.e - Euklides : pierwsze znane algorytmy 
 
17, 18 wiek - Blaise Pascal, Wilhelm von Leibnitz - 
pierwsze „nowoczesne algorytmy” liczenia w różnych 
systemach 
 
1801 - Jacquard, krosno tkackie z algorytmem na 
kartach perforowanych 
 
1833 - Charles Babbage - maszyna różnicowa, algorytm 
różnicowy 
 
1892- Hermann Hollerith - maszyna i algorytm do 
opracowywania danych statystycznych  
 

background image

1930 - Alan Turing, Kurt Godel - prace z teorii 
algorytmów , maszyna Turinga 
 
1940 - 50 - John von Neumann - współczesna koncepcja 
budowy komputera i uruchamiania programów  
 

Poziomy abstrakcji w prezentacji algorytmów: 

 

-  język naturalny (maksymalny poziom abstrakcji - 

niejednoznaczność sformułowań) 

 
-  konwencja notacyjna z pogranicza języka naturalnego 

i języka programowania 

(pseudo-kod)

 

 

-  SCHEMAT BLOKOWY 

 

-  język programowania 

(FORTRAN, PASCAL,

 C++

 )

  

 
-  język maszynowy ( minimalny poziom abstrakcji - 

brak ogólności rozważań, opis trudny do analizy) 

 
 

Schemat blokowy to: 

 

1. Schemat układu (diagram) czyli graficzny sposób 

zobrazowania przedstawiający bloki realizujące 
określone funkcje oraz wzajemne powiązania między 
blokami 

 
2. Sieć działań czyli graficzny sposób zapisu algorytmu 

w postaci połączonych liniami i strzałkami skrzynek 
(bloków) operacyjnych (obliczeniowych), 
warunkowych i innych. 

background image

 
 

Skrzynki schematów blokowych /konwencja/: 

 

1.  Skrzynki START i STOP 

 

 
 
 
 
 

2.  Skrzynka deklaracji zmiennych 

3. Skrzynka wprowadzania danych 
    Skrzynka wyprowadzania wyników 

 

4. Skrzynka wyliczeniowa (instrukcja przypisania) 

background image

5. Skrzynka warunkowa 

 

6. Skrzynka wywołania podprogramu 

 
 
 

Schemat blokowy jest graficznym przedstawieniem 
zbioru operacji tworzących pełny algorytm i 
wzajemnych powiązań między nimi, uwzględniający 
kolejność wykonywania operacji. 

 
 

Zasady budowania schematów blokowych: 

 
-  każda operacja, relacja lub informacja jest 

umieszczana w skrzynce  

 
-  kolejność wykonywania operacji wyznaczają 

połączenia między skrzynkami 

 
-  każde połączenie jest zaczepione początkiem do 

skrzynki, a końcem do innej skrzynki lub innego 
połączenia, żadne połączenie nie rozdziela się  

 
-  rozgałęzienie sieci działań możliwe jest tylko dzięki 

skrzynkom warunkowym 

 

background image

-  schemat posiada jedną skrzynkę START i co 

najmniej jedną skrzynkę STOP 

 
-  ze skrzynki START można przejść do skrzynki STOP 

poruszając się po sieci działań 

 
-  ze skrzynki START można dotrzeć wzdłuż połączeń 

do dowolnej innej skrzynki schematu 

 
-  z każdej skrzynki istnieje przejście wzdłuż połączeń 

do jednej ze skrzynek STOP 

 
 
 
 

Trzy struktury schematów blokowych 

 

1) Schemat blokowy liniowy 

 

 

background image

Schemat blokowy liniowy występuje w zadaniach, w 
których każda z operacji elementarnych nie zawiera 
relacji (warunku) i powtórzeń (iteracji). 
 
Realizacja poszczególnych sąsiednich operacji 
następuje według ustalonej kolejności od operacji 
początkowej do końcowej. 

 

Przykłady: liczenie pola powierzchni, obwodu figur 
płaskich i wiele innych prostych zadań. 

 

 
 

2)  Schemat blokowy z rozgałęzieniami 

 

Schematy blokowe z rozgałęzieniami spotyka się w 
zadaniach dla których kolejność poszczególnych 
etapów w rozwiązaniu może się zmieniać w zależności 
od warunków określonych w sformułowaniu 
problemu. 

background image

 
Cechą tych algorytmów jest to, iż w trakcie realizacji   
przechodzi  się tylko po jednej z możliwych dróg, przy 
czym każdy oddzielny  etap realizacji algorytmu 
wykonywany jest dokładnie jeden raz.  
 
W rozwiązaniach  można wykorzystywać drzewa 
logiczne. 
 

   Przykłady: znajdowanie liczby najmniejszej,     
   rozwiązanie równania liniowego i kwadratowego 
 
3) Schemat blokowy cykliczny - z pętlą 

 
 

a)  ze sprawdzeniem warunku          b) ze sprawdzeniem 

na początku                                       warunku na końcu 

 

 

background image

 

 

Algorytmy dla problemów wymagających powtarzania 
poszczególnych etapów procesu obliczeniowego 
nazywamy cyklicznymi (czyli z pętlą). 

 

Przez pętlę w schemacie blokowym rozumiemy tą część 
schematu, która opisuje drogę (obwód) zamkniętą 
zgodnie z kierunkiem połączenia (obiegu). 

 

Pętla stanowi graficzny opis powtarzania czynności. 
Ciąg wszystkich czynności wykonywanych przy 
jednokrotnym przebiegu pętli nazywamy cyklem pętli. 

 

W każdej pętli musi wystąpić: 
 
•  co najmniej  jedna  skrzynka  operacyjna                           

(np. wyliczeniowa) zawierająca opis powtarzanej  
czynności, 

 
•  modyfikacja w każdym cyklu co najmniej jednej 

wartości zmiennej występującej w pętli, 

 
•  skrzynka decyzyjna z warunkiem, czy pętla ma być 

nadal powtarzana czy też zakończona. 

 

 

Często w pętli występują zmienne nazywane licznikami, 
których wartości w algorytmie określają ilość 
zrealizowanych cykli pętli.  

 

 
 

 

background image

Metody nadania wartości zmiennej poprzez: 

 
•  wprowadzenie danej 
 
•  przypisanie wartości 
 
•  przypisanie nowej wartości (modyfikacji wartości 

zmiennej) 

 
 

Cechy każdego poprawnego algorytmu: 

 
 
•  Posiada dane wejściowe – niekoniecznie w formie 

numerycznej – pochodzące z dobrze zdefiniowanego 
źródła 

 
•  Produkuje pewien wynik – niekoniecznie numeryczny 
 
•  Jest precyzyjnie zdefiniowany, tzn. każdy krok 

algorytmu musi być jednoznacznie określony 

 
•  Jest skończony – wynik algorytmu musi być „kiedyś” 

dostarczony 

 
 

Na proces rozwiązywaniu zadania składa się : 

 
•  Formułowanie zadania 
•  Rozwiązanie zadania i zapis jego rozwiązania 
•  Sprawdzenie i wartościowanie rozwiązania zadania 

 

background image

Formułowanie zadania obejmuje: 

 
•  Wyodrębnienie danych wejściowych (założeń) i 

dokonanie ich weryfikacji co do poprawności  
(wartościowanie) 

 
•  Stwierdzenie czy możliwe jest jego rozwiązanie 

  
 

 

Rozwiązywanie zadania to sposób postępowania 

uwzględniający: 

 
•  Dane lub założenia ze sformułowania zadania 
 
•  Realizację takich czynności jak określanie, 

konstruowanie, wnioskowanie, sprawdzanie i 
powtarzanie 

 
•  Uzyskiwanie wyniku w postaci odpowiedzi na 

postawione w zadaniu pytanie i jego wartościowanie 
(sprawdzenie poprawności) 

 

Etapy w informatycznym rozwiązywaniu zadania: 

 
•  Sformułowanie zadania 
 
•  Konstruowanie algorytmu rozwiązania jako schematu 

postępowania 

 
•  Konstruowanie schematu blokowego - z zaznaczeniem 

sieci działań – jako graficznej reprezentacji 
algorytmu 

 

background image

•  Napisanie programu komputerowego jako zapisu 

algorytmu w ustalonym języku programowani 

 
•  Weryfikacja (tzn. analiza i testowanie) programu i 

jego uruchomienie 

 
 

 
Przykłady: 
 
1. Rozwiązać równanie 3*x+1=0  

(jednostkowe zadanie)

 

2. Rozwiązać równanie a*x+b=0, gdy dane są liczby 

rzeczywiste a,b 

(klasa zadań)

 

3. Obliczyć x=(3.64*0.381) / 12.5  

(jednostkowe zadanie)

 

4. Wyznaczyć x=(a*b)/c , gdy dane są liczby rzeczywiste 

a,b,c , przy czym c 

 0  

(klasa zadań)

 

 

 


Document Outline