![Blog o programowaniu](http://kaluska.pl/wp-content/uploads/2018/01/blog-programowanie.jpg)
Co to jest algorytm. Podstawy algorytmów
Co to jest algorytm ?
Na lekcjach matematyki czy fizyki często słyszymy zdanie „rozwiąż zadanie”. Większość tych zadań rozwiązujemy według pewnych schematów. Najpierw wypisujemy dane i zastanawiamy się do jakiego celu dążymy, a więc jaki ma być wynik. Następnie wypisujemy wzory łączące dane z szukanymi bądź twierdzenia, które można zastosować.
Przed koniecznością rozwiązywania zadań stajemy również poza szkołą. Robimy to w każdej innej dziedzinie naszego życia, na przykład:
- telefonując do koleżanki i zapraszając ją na ciasto
- gotując jajko na twardo
- kupując piłkę w sklepie
- znajdując najniższego ucznia w klasie
- pisząc wypracowanie
Również przy takim typie zadań musimy określić dane i warunki, które muszą one spełniać. Formułujemy także wynik, który pragniemy uzyskać.
Czym jest algorytm?
Algorytm to przepis na rozwiązanie zadania, który zawiera opis danych wraz z opisem czynności, które należy wykonać z tymi danymi, aby osiągnąć zamierzony cel.
Cechy algorytmu
Co powinniśmy wiedzieć jeszcze zanim zabierzemy się za tworzenie algorytmu? Poznajmy cechy, które powinien posiadać algorytm.
Algorytm musi być:
- poprawny, tzn. dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników.
- jednoznaczny- w każdym wypadku jego zastosowania, dla tych samych danych uzyskamy ten sam wynik
- szczegółowy, aby wykonawca algorytmu rozumiał opisane czynności i potrafił je wykonać
- uniwersalny, aby służył do rozwiązywania pewnej grupy zadań, a nie tylko jednego konkretnego przypadku zadania.
Etapy rozwiązywania problemów
Wiemy już co to jest algorytm, jakie cechy powinien posiadać. Jak wygląda zatem tworzenie algorytmu?
W procesie rozwiązywania każdego zadania możemy wyróżnić pewne etapy, które nas do niego prowadzą. Tak samo postępujemy tworząc algorytm.
Etapy rozwiązywania problemów:
- Sformułowanie zadania
- Określenie danych wejściowych
- Określenie celu, czyli wyniku
- Poszukiwanie metody rozwiązania, czyli algorytmu
- Przedstawienie algorytmu w postaci: opisu słownego, listy kroków, schematu blokowego, języka programowania
- Analiza poprawności rozwiązania
- Testowanie rozwiązania dla różnych danych. Ocena efektywności przyjętej metody.
Działania niealgorytmiczne
Zastanów się: Czy wszystkie działania są algorytmiczne ?
Czy dla każdego zadania można skonstruować algorytm? Czy rozwiązanie każdego zadania polega na wykonywaniu jednoznacznie opisanych, ściśle określonych czynności?
Oczywiście, że nie. Istnieją zadania, których realizacji nie można ująć w ramy jakiegoś planu działania. Taki charakter ma np. każda twórczość artystyczna. Konieczna jest do tego wyobraźnia i twórcze działanie, a na to nie ma algorytmu.
Co raz częściej do działań niealgorytmicznych zaliczamy także gotowanie. Niby mamy przepis na daną potrawę, ale tak naprawdę jest on „luźny”, mogę modyfikować lekko składniki, ich ilość czy czas przygotowania.
Budowa algorytmów
Algorytmy powinny być tak przedstawiane, aby było możliwe ich jednoznaczne odczytanie i zastosowanie. Niektóre algorytmy można opisać w języku potocznym, zwłaszcza wtedy, gdy jego wykonawcą ma być człowiek (w informatyce zajmujemy się opracowywaniem algorytmów, których wykonanie powierzamy komputerom).
Z czego składa się algorytm?
Algorytm zawiera opis danych, opis wyników oraz plan działania, czyli przetworzenia danych. Plan ten można przedstawić w postaci ciągu czynności, które muszą być wykonane w określonej kolejności. Opis czynności występujących w algorytmie nazywamy instrukcjami.
Algorytmy z życia codziennego
Załóżmy, że ugotowanie jajka to działanie algorytmiczne, czyli możemy utworzyć dla niego algorytm.
Zastanów się jak ugotować jajko na miękko. Na początku opracowywania algorytmu przyjmijmy, że używamy kuchenki gazowej, posiadamy garnek i wodę. Oczywiście niezbędne jest też samo jajko. Zakładamy również, że nic nie utrudni samej czynności, to znaczy np. w trakcie gotowania nie zostaniemy pozbawieni dopływu gazu, czy też osoba gotująca nie wie co to garnek.
Przykład algorytmu. Przykład algorytmu z życia codziennego, przykład algorytmu liniowego
Opracuj algorytm gotowania jaja na miękko.
Algorytm ten ma postać:
- Wlać do garnka zimną wodę.
- Zapalić gaz.
- Gotować wodę do wrzenia.
- Włożyć jajko.
- Odczekać trzy minuty.
- Zgasić gaz.
- Wyjąć jajko
Podsumowanie
Ten artykuł to część cyklu „Algorytmy dla uczniów.” Na kurs składa się kilka lekcji:
Lekcja 1: Co to jest algorytm? Podstawy algorytmów
Lekcja 2: Sposoby zapisu algorytmów
Lekcja 3: Rodzaje algorytmów
Lekcja 4: Schematy blokowe algorytmów
Lekcja 5: Specyfikacja algorytmu. Specyfikacja problemu algorytmicznego
Lekcja 6: Algorytmy Przykłady i zadania
Lekcja 6.1: Algorytmy. Przykłady i zadania. Obliczanie pola trójkąta
Lekcja 6.2: Algorytmy. Przykłady. Algorytm Euklidesa
Lekcja 6.3: Algorytm. Gra Kamień Papier Nożyce
Lekcja 7. Przykłady schematów blokowych. Ciągi liczb
Lekcja 8. Sortowanie – algorytmy sortowania
Lekcja 9: Algorytmy. Tablice jednowymiarowe
Lekcja 10. Algorytmy. Tablice dwuwymiarowe
![Algorytmika: przykłady algorytmów](http://kaluska.pl/wp-content/uploads/2018/01/algorytmy-schematy-blokowe.jpg)
Schematy blokowe algorytmów
Zobacz również
![Blog o programowaniu](http://kaluska.pl/wp-content/uploads/2018/01/blog-programowanie.jpg)
Algorytm. Obliczanie pola trójkąta
29.01.2018![Blog o programowaniu](http://kaluska.pl/wp-content/uploads/2018/01/blog-programowanie.jpg)
Algorytmy. Tablice dwuwymiarowe
29.01.2017![Blog o programowaniu](http://kaluska.pl/wp-content/uploads/2018/01/blog-programowanie.jpg)