Na algorytmice będziemy posługiwać się pojęciem algorytm. Cóż, to takiego? Myślę, że można powiedzieć, że jest to przepis jak z pewnych danych uzyskać określone wyniki.
Wbrew pozorom często stosujemy algorytmy w codziennym życiu. Przykładem może być przejście przez ulicę. Danymi są: ulica, ruch na niej oraz nasze położenie początkowe na krawężniku. Oczekiwanym wynikiem będzie znalezienie się po przeciwnej stronie ulicy. Algorytm (którego nauczono nas w dzieciństwie) mówi nam, jak tego dokonać. Można go zapisać w postaci tzw.łisty kroków:
Oczywiście algorytm ten jest mocno uproszczony, w rzeczywistości punkt 7 powinien być bardziej rozbudowany (być może w połowie trzeba będzie się zatrzymać, cofnąć albo przyśpieszyć).
Typowymi przykładami z życia codziennego są przepisy kulinarne. Nazwa przepisu mówi o końcowym produkcie, natomiast na początku podane są niezbędne składniki oraz naczynia itp. Sam przepis jest algorytmem. Przypomnij sobie jak należy ugotować jajko na miękko. Przepis mówi, co należy zrobić, z czym i w jakiej kolejności.
Z algorytmami miałeś do czynienia na matematyce. Typowym przykładem jest rozwiązanie równania kwadratowego. Dane w tym przypadku to współczynniki a, b, c równania ax2+bx+c=0, a wynikiem - pierwiastki, ewentualnie stwierdzenie, że nie ma takowych.
a | b | Alg. I | Alg. II |
1 | 10 | 19 | 5 |
1 | 100 | 199 | 5 |
1 | 1000 | 1999 | 5 |
Ciekawostka: Badaniem efektywności algorytmów zajmuje się dziedzina zwana analizą algorytmów. Czerpie ona obficie z wyników teoretycznych takich działów matematyki jak matematyka dyskretna czy rachunek prawdopodobieństwa.
Także na innych przedmiotach mogłeś spotkać się z algorytmami. Na chemii uzyskiwałeś pewne związki chemiczne mając inne substancje orazłaboratorium. Na fizyce ważyłeś ciała stałe, a na biologii przygotowywałeś preparaty do oglądania ich pod mikroskopem.
Definicja algorytmu
We wszystkich tych przypadkach postępowałeś wg pewnej instrukcji, która od stanu początkowego prowadziła do stanu końcowego. Ten zestaw instrukcji wraz z stanem początkowym i efektem końcowym - od dzisiaj - będziemy nazywać algorytmem.
S. Węgrzyn algorytm definiuje w następujący sposób: „Przez algorytm będziemy rozumieć(…) skończony ciąg operacji wraz z ściśle sprecyzowanym porządkiem ich wykonywania, które po realizacji dają rozwiązanie dowolnego zadania z określonej klasy”
L. Banachowski i A. Kreczmar przyjmują, że: „Algorytmem nazywa się najczęściej przepis postępowania, który ma prowadzić w sposób autonomiczny do rozwiązania określonego zadania. Ten przepis postępowania powinien być na tyle precyzyjny, aby posługiwanie się nim polegało tylko na automatycznym wykonywaniu instrukcji tego zapisu. Zakłada się przy tym, że pewne pierwotne instrukcje tego przepisu są wykonalne, to znaczy, że są one zdefiniowane i w algorytmie nie musi się ich definiować, ale można ich używać”
Algorytm również określa się, jako ”dokładny przepis określanego zagadnienia, najczęściej przedstawiany w postaci skończonej sekwencji elementarnych (na danym poziomie) operacji, które należy wykonać”
Integralną częścią algorytmu jest jego specyfikacja, czyli co jest dane (Wejście), a co należy uzyskać (Wyjście).
--> poprawność - algorytm powinien zwracać poprawne wyniki, odzwierciedlające rzeczywistość
--> jednoznaczność - algorytm powinien przy takim samym zbiorze danych wejściowych zwracać takie same wyniki
--> skończoność dla każdego zbioru poprawnych danych wejsciowych algorytm powinien zwracać wyniki w skończonejłiczbie kroków
--> efektywność - algorytm powinien prowadzić do rozwiązania problemu w jak najmniejszejłiczbie kroków.
--> Uniwersalność - algorytmy operują na zmiennych a nie na konkretnychłiczbach
Jak widać taka prezentacja algorytmu jest bardziej czytelna i dlatego większość algorytmów będzie pokazana w tej postaci.
![]() |
Algorytm zaczyna się od tej skrzynki. Musi wystąpić w schemacie dokładnie raz! |
![]() |
Algorytm kończy się tą skrzynką. Musi występować przynajmniej jeden raz. |
![]() |
Skrzynka wejścia, czyli pobieranie danych od użytkownika. W podanym przykładzie dana zostanie zapisana w zmiennej x. Zamiast We: można użyć Podaj, Wpisz itp. |
![]() |
Skrzynka wyjścia, czyli wypisywanie wyników działania algorytmu. W podanym przykładzie dana zostanie wypisana wartość zmiennej x. Zamiast Wy: można użyć Wypisz, Wyświetl itp. |
![]() |
Skrzynka instrukcji. Tu realizowane są wszelkie obliczenia. W podanym przykładzie wartość zmiennej zwiększy się o 1. Znak := należy czytać staje się. |
![]() |
Skrzynka warunkowa. Tu następuje rozgałęzienie algorytmu w zależności odłogicznej wartości warunku. Jeśli jest prawdziwy algorytm pójdzie włewo (tam gdzie jestłitera T jak Takłub True), w przeciwnym przypadku uda się w prawo. |
Pozostałe symbole tworzą stanowią drogi, które łączą skrzynki. W niektórych sytuacjach dodatkowe strzałki precyzują kierunek ruchu.