ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów Rodzaje algorytmów Schemat blokowy
CO TO JEST ALGORYTM? Algorytm – przepis rozwiązania zadania, zawierający opis danych wraz z opisem czynności, które należy w określonym porządku wykonać z tymi danymi, aby osiągnąć zamierzony cel.
Słowo „algorytm” wywodzi się od przydomku perskiego matematyka ABU JAFARA MUBAMMADA ibn MUSA al CHWARIZMIEGO. Przydomek al Chwarizmi w łacińskich dziełach tłumaczono jako Algoritmi. Matematyk ten żyjący w IX wieku opisał pozycyjny system dziesiętny liczb, stosowany przedtem wyłącznie w Indiach i sztukę kodowania w tym systemie.
CECHY ALGORYTMU Algorytm musi być: poprawny – tzn. dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności prowadzi do poprawnych wyników jednoznaczny – tzn. w każdym przypadku jego zastosowania, dla tych samych danych uzyskamy ten sam wynik szczegółowy – aby wykonawca algorytmu zrozumiał opisane czynności i potrafił je wykonać uniwersalny – aby służył do rozwiązywania pewnej grupy zadań, a nie tylko jednego zadania (np. algorytm jest przepisem na rozwiązanie równania postaci ax + b = 0 dla dowolnych współczynników a i b , a nie – jednego konkretnego równania np. 2x + 3 = 0 )
BUDOWA ALGORYTMÓW I SPOSOBY ICH PRZEDSTAWIANIA Co składa się na algorytm? Opis danych Opis wyników Plan działania, czyli przetworzenia danych (np. w postaci ciągu czynności, które muszą być wykonane w określonej kolejności)
RODZAJE ALGORYTMÓW ALGORYTM SEKWENCYJNY INSTRUKCJA WARUNKOWA INSTRUKCJA ITERACYJNA
(łac. sequentia – następstwo) ALGORYTM SEKWENCYJNY (łac. sequentia – następstwo) Algorytm ten ma bardzo prostą strukturę. Składa się z ciągu instrukcji, które są wykonywane jedna po drugiej w kolejności, jaka wynika z ich następstwa w zapisie algorytmu.
Podnieś słuchawkę. Wybierz cyfrę 9. Przekaż informacje. ALGORYTM SEKWENCYJNY Podnieś słuchawkę. Wybierz cyfrę 9. Przekaż informacje. Odłóż słuchawkę.
Działa ona według jednego z dwóch schematów: INSTRUKCJA WARUNKOWA Często w algorytmach występują instrukcje, których wykonanie uzależnione jest od spełnienia pewnego warunku lub też spełnienie pewnego warunku powoduje wykonanie jednej instrukcji, a niespełnienie go – innej. Taką instrukcję nazywamy instrukcją warunkową. Działa ona według jednego z dwóch schematów:
Jeśli spełniony jest warunek W, to wykonaj instrukcję A. lub Jeśli spełniony jest warunek W, to wykonaj instrukcję A; w przeciwnym przypadku wykonaj instrukcję B. Instrukcja A i B opisuje jedną instrukcję składającą się z ciągu pojedynczych instrukcji wykonywanych sekwencyjnie. Instrukcja warunkowa pozwala dokonać wyboru jednej z dwóch dalszych dróg wykonania algorytmu.
INSTRUKCJA WARUNKOWA Podnieś słuchawkę. Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 5A Jeśli TAK, to przejdź do kroku 6 5B Jeśli NIE, to przejdź do kroku 7 Przekaż informacje. Odłóż słuchawkę.
INSTRUKCJA ITERACYJNA I RODZAJ INSTRUKCJI ITERACYJNEJ II RODZAJ INSTRUKCJI ITERACYJNEJ III RODZAJ INSTRUKCJI ITERACYJNEJ
I RODZAJ INSTRUKCJI ITERACYJNEJ Cechą charakterystyczną wielu algorytmów jest wielokrotne powtarzanie niektórych instrukcji. Nie zawsze liczbę powtórzeń możemy określić dokładnie, niekiedy bowiem zależy ona od spełnienia pewnych warunków. Wielokrotne powtarzanie instrukcji umożliwiają instrukcje iteracyjne (łac. iteratio – powtarzanie) nazywane krótko PĘTLAMI. Działa według schematu: Wykonaj instrukcję A dokładnie n razy.
I RODZAJ INSTRUKCJI ITERACYJNEJ Podnieś słuchawkę. Wykonaj czynność trzy razy 2A Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 3A Jeśli TAK, to przejdź do kroku 4 3B Jeśli NIE, to przejdź do kroku 5 Przekaż informacje. Odłóż słuchawkę.
II RODZAJ INSTRUKCJI ITERACYJNEJ Rozbudujemy algorytm, dopisując polecenie powtarzania wybierania numeru telefonu aż do uzyskania połączenia z pogotowiem ratunkowym. Aby zrealizować taki plan, zastosujemy drugi rodzaj instrukcji iteracyjnej, którą można opisać za pomocą schematu: Powtarzaj wykonywanie instrukcji A aż do spełnienia warunku W. W naszym algorytmie instrukcja A oznacza podniesienie słuchawki, wybranie numeru telefonu i – jeśli warunek W nie zostanie spełniony – odłożenie słuchawki. Warunek W to uzyskanie połączenia z wybranym numerem. W nowej postaci algorytmu załóż możliwość wielokrotnego podnoszenia i odkładania słuchawki.
II RODZAJ INSTRUKCJI ITERACYJNEJ Czy słuchawka jest odłożona? 1A Jeśli TAK, to przejdź do kroku 2 1B Jeśli NIE, to odłóż słuchawkę. Podnieś słuchawkę. Wykonaj czynność trzy razy 3A Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 4A Jeśli TAK, to przejdź do kroku 5 4B Jeśli NIE, to przejdź do kroku 1 Przekaż informacje. Odłóż słuchawkę.
III RODZAJ INSTRUKCJI ITERACYJNEJ Udoskonalimy algorytm, opisując czynności, które należy wykonać wtedy, gdy po podniesieniu słuchawki słychać w niej sygnał zajętości linii. W takiej sytuacji należy odłożyć słuchawkę i podnieść ją ponownie. Instrukcja iteracyjna trzeciego rodzaju działa według schematu: Dopóki warunek W jest spełniony, wykonuj instrukcję A. W naszym algorytmie spełnienie warunku W oznacza, że w słuchawce słychać sygnał zajętości linii. Instrukcja A obejmie zatem dwie czynności: odłożenie słuchawki i ponowne jej podniesienie. W algorytmie znajdują się trzy rodzaje pętli.
Pętla opisana w kroku 4 jest trzykrotnym powtórzeniem instrukcji 4A Pętla obejmująca kroki od 1 do 5 wykonuje się co najmniej jeden raz, aż do spełnienia warunku opisanego w kroku 5 W pętli występującej w kroku 3 sprawdzany jest najpierw warunek, a dopiero potem wykonywana jest instrukcja opisana krokami 3A1 i 3A2. Jeśli warunek nie jest spełniony, to instrukcja nie zostanie wykonana ani razu.
III RODZAJ INSTRUKCJI ITERACYJNEJ Czy słuchawka jest odłożona? 1A Jeśli TAK, to przejdź do kroku 2 1B Jeśli NIE, to odłóż słuchawkę. Podnieś słuchawkę. Czy linia jest zajęta? 3A Jeśli TAK to: 3A1 Odłóż słuchawkę. 3A2 Podnieś słuchawkę. 3A3 Przejdź do kroku 3. 3B Jeśli NIE, to przejdź do kroku 4. Wykonaj czynność trzy razy 4A Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 5A Jeśli TAK, to przejdź do kroku 6 5B Jeśli NIE, to przejdź do kroku 1 Przekaż informacje. Odłóż słuchawkę.
SCHEMAT BLOKOWY Schemat blokowy – graficzny zapis algorytmu rozwiązania zadania, przedstawiający opis i kolejność wykonywania czynności realizujących dany algorytm. Schemat blokowy składa się z bloków przedstawionych w postaci symboli graficznych, których kształt określa rodzaj czynności, a umieszczone w nich napisy precyzują tę czynność. Kolejność wykonywania czynności jest ustalona za pomocą łączących je linii i strzałek.
PRZYKŁADY SCHEMATÓW BLOKOWYCH Z WYKORZYSTANIEM SYMBOLI GRAFICZNYCH
Schemat blokowy do algorytmu sekwencyjnego Podnieś słuchawkę. Wybierz cyfrę 9. Przekaż informacje. Odłóż słuchawkę.
Schemat blokowy do I RODZAJU INSTRUKCJI ITERACYJNEJ Podnieś słuchawkę. Wykonaj czynność trzy razy 2A Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 3A Jeśli TAK, to przejdź do kroku 4 3B Jeśli NIE, to przejdź do kroku 5 Przekaż informacje. Odłóż słuchawkę.
Schemat blokowy do III RODZAJU INSTRUKCJI ITERACYJNEJ Czy słuchawka jest odłożona? 1A Jeśli TAK, to przejdź do kroku 2 1B Jeśli NIE, to odłóż słuchawkę. Podnieś słuchawkę. Czy linia jest zajęta? 3A Jeśli TAK to: 3A1 Odłóż słuchawkę. 3A2 Podnieś słuchawkę. 3A3 Przejdź do kroku 3. 3B Jeśli NIE, to przejdź do kroku 4. Wykonaj czynność trzy razy 4A Wybierz cyfrę 9. Czy połączyłeś się z pogotowiem ratunkowym? 5A Jeśli TAK, to przejdź do kroku 6 5B Jeśli NIE, to przejdź do kroku 1 Przekaż informacje. Odłóż słuchawkę. Zakończ pokaz