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Ń Określenie specyfikacji zadania Zbadanie, czy analizowany problem ma rozwiązanie Zapisanie algorytmu w wybranej postaci (notacji) Analiza poprawności Wykonanie obliczeń na komputerze (testowanie programu) Analiza własności wybranego algorytmu
ETAPY ROZWIĄZYWANIA ZADAŃ Określenie specyfikacji zadania: Dane (dane wejściowe) Wyniki (dane wyjściowe) Określamy dane wejściowe, wyniki, podajemy ich typ (l. rzeczywiste, całkowite itp.) 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Ń Zapisanie algorytmu w wybranej postaci (notacji) 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Ń 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. 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.
jest graficzną reprezentacją słownego zapisu algorytmu. 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 (instrukcji) 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 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