October 21, 2004

November 25, 2019

Algorytmy

Na początku zadamy sobie pytanie co to jest ten algorytm ? ;-] A więc, można powiedzieć, że algorytm jest to jakiś przepis, który prowadzi do rozwiązania problemu, zadania. W algorytmie określamy w jaki sposób ma być to zadanie rozwiązane oraz dane, które będą potrzebne. Wyróżnia się 3 rodzaje algorytmów:

  • rekurencyjne - czyli procedury, które w swojej definicji posiadają wywołanie samej siebie
  • iteracyjne - jest to rodzaj algorytmu, w którym wielokrotnie wykonuje się określone instrukcje, dopóki nie zostanie spełniony określony warunek
  • sekwencyjne - instrukcje wykonywane są w porządku, w jakim zostały wprowadzone

W jaki sposób można przedstawiać algorytmy ? Np. sposób słowny lub za pomocą schematu blokowego. W schemacie blokowym używa się skrzynek (tylko się nie śmiać z moich rysunków ;-p):

Algorytmy - skrzynka START Algorytmy - skrzynka STOP

Skrzynki START i STOP. Jak się można domyśleć START to początek algorytmu, a STOP to koniec. Ze skrzynki START wychodzi tylko jedna droga, a do skrzynki STOP co najmniej jedno połączenie.

Skrzynka instrukcyjna. Tutaj umieszcza się polecenia do wykonania.

Skrzynka warunkowa. Umieszcza się tutaj warunek, który decyduje o dalszej drodze algorytmu. Jak widać, ze skrzynki wychodzą dwa połączenia: TAK - jeżeli warunek jest spełnony, i NIE - jeżeli warunek nie został spełniony.

Skrzynka wejścia/wyjścia. Umieszcza się tutaj wprowadzane dane lub wyprowadzane wyniki. Ze skrzynki wychodzi tylko jedno połączenie.

Aby ładnie to przedstawić zrobimy trzy przykłady, po jednym z każdego rodzaju algorytmów i przedstawimy je w opsie słownym i za pomocą schematu blokowego.

No to zacznijmy od algorytmu iteracyjnego. Przykład może być np. rzuć i traf piłką do kosza pięć razy. Opis słowny wyglądał by np. tak:

START

  1. Rzucaj piłką do kosza.
  2. Trafiłeś 5 razy ?
     a) jeśli tak, przejdż do kroku 3.
     b) jeśli nie, przejdź do kroku 1.
  3. Dobrze Ci poszło!

STOP

Jak widać jest tutaj pętla... Ok, teraz schemat blokowy.

Ok, teraz np. prosty algorytm do obliczania drugiej potęgi jakiejś liczby.

START

  - podaj liczbę x
  - oblicz drugą potęgę liczby x
  - podaj wartość drugiej potęgi liczby x

STOP

Natomiast schemat blokowy wyglądał by tak:

Jak widać jest to algorytm sekwencyjny.

Wystarczy tych przyładów. Oczywiście algorytmy mogą być bardziej skomplikowane ale nie chce mi się wymyślać i rysować ;-D Przedstawianie w taki sposób algorytmów nie jest trudne i mam nadzieje, że każdy zrozumiał to co napisałem ;-]

Mała aktualizacja ;-] Powyższy sposób przedstawiania algorytmów napisałem tak jak to się nauczyłem kiedyś gdzieś w internecie. Teraz na różnych stronach i w różnych książkach można zobaczyć różne formy, chociaż nie różnią się od siebie wiele. Jednak niektórzy wymagają jednego sposobu, który oni preferują. Ostatnio pisząc maturę z informatyki (chociaż słowo matura na ten materiał co był to dziwne określenie, to raczej jakiś kabaret był ;-D, ale cóż...) właśnie jednym z zagadnień były algorytmy (tutaj lepiej bez komentarza ;-p). I właśnie to jak trzeba było zapisywać algorytmy w postaci blokowej się trochę różniło. Ale tylko trochę zapisem ;-] Jeżeli coś się wczytuje do naszego algorytmu to trzeba było pisać

czytaj(a,b)

Hm, chyba czytaj, już nie pamiętam, ale raczej tak było... Aby wypisać coś z algorytmu trzeba było pisać np.

pisz(S)

gdzie S np. oznaczało sumę, I iloczyn itp ;-p A tak reszta była taka sama jak wyżej. I co jeszcze się dowiedziałem, to jest jeszcze jedna skrzynka, jak można to tak nazwać. Jest nią poprostu kółko z cyfrą w środku, Nie chce mi się rysować, każdy może sobie to wyobrazić ;-] Po co to? Jeżeli na kartce nie zmieści się algorytm to kończymy go skrzynką o kształcie kółka z wpisaną cyfrą 1, a na następnej kartce zaczynamy kołkiem z jedynką i piszemy dalej algorytm. I jak znowu się nie zmieści to to samo tylko z dwójką itd. To tyle.

© 2020 Przemysław Kołodziejczyk