230 likes | 663 Views
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.
E N D
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.
Schemat blokowy jest graficzną reprezentacją słownego zapisu algorytmu. Algorytm w postaci Schematu Blokowego
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 algorytm na obliczenie sumy dwóch liczb Specyfikacja: • Dane • Wynik • Lista kroków (instrukcji) 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 START • 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. STOP
Schemat blokowy – blok Wejścia-Wyjścia • 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ą” WE / WY
Schemat blokowy – blok operacyjny • 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 x=10
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). a>0 T
Schemat blokowy - przykład • Schemat blokowy na obliczenie iloczynu dwóch liczb. • Jest to algorytm liniowy.