POJĘCIE ALGORYTMU Algorytm - andrzej.edu.pl

advertisement
POJĘCIE ALGORYTMU
Pojęcie algorytmu
Etapy rozwiązywania zadań
Sposoby reprezentowania algorytmów
Lista kroków
Schemat blokowy
Drzewo algorytmu
Program w języku programowania (C++)
Algorytmy liniowe
Algorytmy warunkowe
POJĘCIE ALGORYTMU
Algorytm jest to precyzyjny opis sposobu rozwiązania
określonego zadania lub osiągnięcia jakiegoś celu.
Algorytm - w matematyce oraz informatyce skończony,
uporządkowany ciąg jasno zdefiniowanych czynności,
koniecznych do wykonania pewnego rodzaju zadań.
Algorytm ma przeprowadzić system z pewnego stanu
początkowego do pożądanego stanu końcowego.
POJĘCIE ALGORYTMU
Algorytm jest dokładnym przepisem na rozwiązanie
problemu lub osiągnięcie jakiegoś celu, realizowanym
w skończonej liczbie kroków.
Istnieje wiele sposobów rozwiązania danego zadania, stąd
każdemu problemowi odpowiada wiele metod
prowadzących do prawidłowych wyników.
POJĘCIE ALGORYTMU
Pojęcie algorytm pochodzi od brzmienia fragmentu
nazwiska arabskiego matematyka i astronoma
Muhammada ibn Musa Al-Chorezmi’ego,
uznawanego za prekursora obliczeniowych metod
w matematyce. Żył na przełomie VIII i IX wieku i to on
upowszechnił system dziesiętny i stosowanie zera jako
symbolu oznaczającego „nic”.
ETAPY ROZWIĄZYWANIA ZADAŃ
1. Określenie specyfikacji zadania
2. Zbadanie, czy analizowany problem ma rozwiązanie
3. Zapisanie algorytmu w wybranej postaci (notacji)
4. Analiza poprawności
5. Wykonanie obliczeń na komputerze (testowanie
programu)
6. Analiza własności wybranego algorytmu
ETAPY ROZWIĄZYWANIA ZADAŃ
1.
Określenie specyfikacji zadania:
Dane (dane wejściowe)
2. Wyniki (dane wyjściowe)
Określamy dane wejściowe, wyniki, podajemy ich typ (l. rzeczywiste,
całkowite itp.)
1.
2.
Zbadanie, czy analizowany problem ma rozwiązanie oraz wybór
algorytmu.
Istnieje wiele sposobów wykonania danego zadania, z czego wynika,
że można skonstruować wiele algorytmów rozwiązujących dany
problem.
ETAPY ROZWIĄZYWANIA ZADAŃ
3.
Zapisanie algorytmu w wybranej postaci (notacji)






4.
Opis słowny
Lista kroków
Pseudokod
Schemat blokowy
Drzewo algorytmu
Program
Analiza poprawności (poprawność alg.)
Algorytm jest poprawny, jeśli dla każdych danych wejściowych jest
skończony, a wyniki są poprawne – zgodne ze specyfikacją zadania.
ETAPY ROZWIĄZYWANIA ZADAŃ
5.
Wykonanie obliczeń na komputerze (testowanie programu)
Testowanie programu, który jest implementacją algorytmu, dla różnych
danych. Algorytm powinien działać dla dowolnych danych wejściowych
dając poprawne wyniki.
6.
Analiza własności wybranego algorytmu
Ocena efektywności przyjętego rozwiązania, złożoności obliczeniowej
(czasowej i pamięciowej) oraz błędów zaokrągleń wynikających z
obliczeń na liczbach przybliżonych.
SPOSOBY REPREZENTOWANIA ALGORYTMÓW
Lista kroków
 Schemat blokowy
 Drzewo algorytmu
 Program w języku programowania

Algorytm w postaci Listy kroków
Lista kroków jest opisem - instrukcją wykonania
czynności opisanych kolejno w punktach.
Przykład. Skonstruuj algorytm na obliczenie sumy dwóch
dowolnych liczb całkowitych.
Dane: a, b dowolne liczby całkowite.
Wynik: s – suma dwóch liczb obliczona ze wzoru s=a+b.
Krok 1. rozpocznij algorytm.
Krok 2. Wczytaj (podaj lub wprowadź) dwie dowolne liczby
całkowite a, b.
Krok 3. Oblicz sumę ze wzoru s=a+b.
Krok 4. Wypisz wynik sumy s.
Krok 5. Zakończ algorytm.
Algorytm w postaci Schematu Blokowego
Schemat blokowy
jest graficzną
reprezentacją słownego
zapisu algorytmu.
Algorytm w postaci Drzewa Algorytmu
Drzewo algorytmu rozwiązujące równanie liniowe ax+b=0
Algorytm przedstawiony w Języku Programowania
Aby przedstawić algorytm w postaci programu
(czyli zapisany w języku programowania) trzeba go
zbudować z ciągu instrukcji określonego języka
programowania.
//algorytm obliczający sumę n kolejnych liczb
naturalnych: 1, 2, ..., n (n>0)
#include <iostream>
using namespace std;
main()
{
int n, s;
cout<<"podaj n: ";
cin>>n;
s=n*(n+1)/2;
cout<<"s = "<<s<<endl;
//system("pause");
return 0;
}
Algorytm liniowy

algorytm składający się z ciągu instrukcji, które
są wykonywane jedna po drugiej w kolejności,
jaka wynika z ich następstwa w zapisie.
Nazywany jest również algorytmem
sekwencyjnym. Realizuje jeden ciąg działań
sekwencyjną (blok po bloku).

Cechy algorytmu liniowego:
•
nie sprawdza się żadnych warunków
•
nie przemieszcza się w inne niż kolejne miejsca algorytmu
•
nie wraca się do wcześniejszych punktów lub bloków
algorytmu.
Algorytm warunkowy



Algorytm z warunkami charakteryzuje się
realizacją kilku ciągów działań,
występowaniem sytuacji warunkowych
(jednej lub więcej).
Ich wynik decyduje o wyborze danego ciągu
działań.
Prezentowanie algorytmu z warunkami
w schemacie blokowym jest bardziej przejrzyste
niż w liście kroków, lepiej widoczne są przejścia
w zależności od spełnienia bądź niespełnienia
warunku.
Lista kroków
Specyfikacja:
 Dane
 Wynik
 Lista kroków
(instrukcji)
algorytm na obliczenie sumy
dwóch liczb
Dane: a, b dowolne liczby całkowite.
Wynik: s – suma dwóch liczb obliczona ze
wzoru s=a+b.
Krok 1. rozpocznij algorytm.
Krok 2. Wczytaj (podaj lub wprowadź)
dwie dowolne liczby całkowite a, b.
Krok 3. Oblicz sumę ze wzoru s=a+b.
Krok 4. Wypisz wynik sumy s.
Krok 5. Zakończ algorytm.
Schemat blokowy – Bloki graniczne

Skrzynka START ma tylko jedno
połączenie wychodzące a skrzynka
STOP tylko jedno połączenie
dochodzące.

Wewnątrz skrzynki umieszcza się
napis START, POCZĄTEK,
KONIEC, STOP.

Schemat może mieć tylko jedną
skrzynkę START oraz jedną
skrzynkę STOP.
START
STOP
Schemat blokowy – blok Wejścia-Wyjścia
WE / WY

Skrzynka odpowiada za wprowadzanie danych
i wyprowadzanie, wyświetlanie wyników
i komunikatów.

Blok ma jedno połączenie na wejście i jedno na
wyjście

Wyświetlenie danych tekstowych obejmujemy
cudzysłowem „podałeś złą daną”
Schemat blokowy – blok operacyjny
x=10

Skrzynka zawiera operacje, działanie (jedno lub
więcej) najczęściej arytmetyczne
(oraz przypisanie wartości).

Blok ma jedno połączenie na wejście i jedno na
wyjście
Schemat blokowy – blok warunkowy
a>0
T

Inaczej blok warunkowy

Skrzynka określa wybór jednej z dwóch możliwych
dróg działania

Gdy warunek (test logiczny) jest prawdziwy,
idziemy drogą na T (Tak), w przeciwnym razie
idziemy drogą Nie (gałąź nieoznaczona).
Schemat blokowy - przykład

Schemat blokowy na
obliczenie iloczynu dwóch
liczb.

Jest to algorytm liniowy.
Koniec
Download