CO TO JEST ALGORYTM?

Podczas różnych lekcji słyszymy zdanie „rozwiąż zadanie”. Większość tych zadań rozwiązujemy według określonych schematów. W pierwszej  kolejności 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:

  1. Pisząc e-maila, telefonując do znajomych i zapraszając ich np. na pogawędkę przy kawie czy herbacie;
  2. Przygotowując posiłek czy ciasto lub deser;
  3. Kupując np. buty w sklepie;
  4. Znajdując najniższego ucznia w klasie;
  5. 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ć.

Algorytm to przepis rozwiązania zadania, zawierający opis danych wraz z opisem czynności, które należy wykonać z tymi danymi, aby osiągnąć zamierzony cel.

W procesie rozwiązywania każdego zadania możemy wyróżnić pewne etapy, które nas do niego prowadzą.

Etapy rozwiązywania problemów:

  1. Sformułowanie zadania;
  2. Określenie danych wejściowych;
  3. Określenie celu, czyli wyniku;
  4. Poszukiwanie metody rozwiązania, czyli algorytmu;
  5. Przedstawienie algorytmu w postaci:
  • opisu słownego;
  • listy kroków;
  • schematu blokowego;
  • języka programowania;
  1. Analiza poprawności rozwiązania;
  2. Testowanie rozwiązania dla różnych danych. Ocena efektywności przyjętej metody.

Algorytm musi być:

  1. Poprawny, tzn. dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników;
  2. Jednoznaczny – w każdym wypadku jego zastosowania, dla tych samych danych uzyskamy ten sam wynik;
  3. Szczegółowy, aby wykonawca algorytmu rozumiał opisane czynności i potrafił je wykonać;
  4. Uniwersalny (ogólny), aby służył do rozwiązywania pewnej grupy zadań, a nie tylko jednego zadania np. sumy dwóch dowolnych liczb naturalnych, a nie tylko 7+2)

Inne cechy algorytmu to:

  • skończoność – dla każdego zestawu poprawnych danych wejściowych, algorytm powinien dawać wyniki w skończonej liczbie kroków;
  • efektywność (sprawność) – powinien prowadzić do rozwiązania problemu jak najniższym kosztem, czyli w jak najmniejszej liczbie kroków. Należy zoptymalizować pamięć zajętą przez struktury danych wykorzystywane w algorytmie oraz doprowadzić do optymalizacji złożoności obliczeniowej, czyli liczby wykonanych operacji.

Działania niealgorytmiczne – 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 przepisu.

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?
Zawiera on 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 liniowe mają opisy składające się z kroków, które nie zależą od żadnych warunków i są wykonywane w zapisanej kolejności. Istnieją jednak sytuacje, w których dalsze postępowanie w algorytmie zależy od spełnienia określonych warunków. Czasami musimy powtórzyć pewne kroki algorytmu kilka razy.