Algorytm – w matematyce
skończony ciąg jasno zdefiniowanych czynności, koniecznych do wykonania
pewnego rodzaju zadań. Słowo "algorytm" pochodzi od starego
angielskiego słowa algorism, oznaczającego wykonywanie działań przy pomocy liczb arabskich (w odróżnieniu od abacism
– przy pomocy abakusa), które z kolei wzięło się od nazwiska, które
nosił Muhammad ibn Musa al-Chuwarizmi (أبو عبد الله محمد بن موسى
الخوارزمي), matematyk perski z IX wieku.
Algorytm ma przeprowadzić system z pewnego stanu początkowego do
pożądanego stanu końcowego. Badaniem algorytmów zajmuje się algorytmika.
Algorytm może zostać zaimplementowany w postaci programu komputerowego.
Jako przykład stosowanego w życiu codziennym algorytmu podaje się często przepis kulinarny. Dla przykładu, aby ugotować bigos należy w określonej kolejności oraz odstępach czasowych (imperatyw czasowy) dodawać właściwe rodzaje kapusty
i innych składników. Może istnieć kilka różnych przepisów dających na
końcu bardzo podobną potrawę. Przykład ten ma wyłącznie charakter
poglądowy, ponieważ język przepisów kulinarnych nie został jasno
zdefiniowany. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o
język matematyki.
W niektórych krajach, jak USA, algorytmy mogą zostać opatentowane,
jeżeli zostaną zaimplementowane w jakimś praktycznym celu. Niektórzy
twierdzą, że patentowanie algorytmów spowalnia rozwój informatyki, bo
jeden producent może uzyskać monopol, np. na pisanie oprogramowania
tworzącego pewne typy plików (np. GIF). Wiele koncernów komputerowych
prowadzi między sobą spory prawne
dotyczące praw własności do niektórych patentów. Kontrargumentem jest
tzw. prawo własności intelektualnej (jaką objęty jest np. utwór
muzyczny, będący wytworem intelektu i pracy muzyka) zakładające, że
program jest intelektualną własnością twórcy.
Reprezentacja algorytmów
Zapis algorytmu w postaci kodu
Najbardziej ścisłym opisem algorytmu jest program zapisany w danym j zyku programowania.
O ile jednak algorytm przedstawiony w formie listy kroków, schematu blokowego lub drzewa jest
uniwersalny, o tyle jego reprezentacja w kodzie ródłowym jest ci le zwi zana ze składni i semantyk
zastosowanego j zyka programowania.
Najbardziej ścisłym opisem algorytmu jest program zapisany w danym j zyku programowania.
O ile jednak algorytm przedstawiony w formie listy kroków, schematu blokowego lub drzewa jest
uniwersalny, o tyle jego reprezentacja w kodzie ródłowym jest ci le zwi zana ze składni i semantyk
zastosowanego j zyka programowania.
Zapis algorytmu w postaci listy kroków
Algorytm mo e by przedstawiony za pomoc listy kroków. Poszczególne kroki zawieraj cisły opis
czynno ci do wykonania. Poszczególne kroki algorytmu s numerowane i wykonywane w kolejno ci
rosn cej, przy czym w opisie danego kroku mo na wskaza inny krok, który nale y wykona jako
nast pny w kolejno ci. Innym ograniczeniem sekwencyjnego wykonywania kolejnych kroków algorytmu
s warunki, których spełnienie b d nie spełnienie przenosi działanie do wskazanego kroku.
Algorytm mo e by przedstawiony za pomoc listy kroków. Poszczególne kroki zawieraj cisły opis
czynno ci do wykonania. Poszczególne kroki algorytmu s numerowane i wykonywane w kolejno ci
rosn cej, przy czym w opisie danego kroku mo na wskaza inny krok, który nale y wykona jako
nast pny w kolejno ci. Innym ograniczeniem sekwencyjnego wykonywania kolejnych kroków algorytmu
s warunki, których spełnienie b d nie spełnienie przenosi działanie do wskazanego kroku.
Pseudokodem nazywany jest
taki sposób zapisu algorytmu, który, zachowując strukturę
charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje
ze ścisłych reguł składniowych
na rzecz prostoty i czytelności. Pseudokod nie zawiera szczegółów
implementacyjnych (jak np. inicjalizacja zmiennych, alokacja pamięci),
często też opuszcza się w nim opis działania podprocedur (jeśli powinien
być on oczywisty dla czytelnika), zaś nietrywialne kroki algorytmu
opisywane są z pomocą formuł matematycznych lub zdań w języku
naturalnym.
Nie istnieją w chwili obecnej szerzej przyjęte standardy zapisu pseudokodu. Większość autorów używa przyjętej ad hoc składni, często opierając się na składni istniejących języków programowania (Pascal, ALGOL, C).
Za graficzny wariant pseudokodu uznać można schemat blokowy.
Magiczne Bloczki
to program stworzony do projektowania schematów blokowych opisujących
pewien algorytm. Opcja przeprowadzania symulacji działania algorytmu
daje użytkownikowi możliwość sprawdzenia jego poprawności.
Magiczne Bloczki oferuję także wydruk oraz eksport grafiki (schematów blokowych) do znanych formatów graficznych. Twórca Magicznych Bloczków jest Eri Software.
Magiczne Bloczki oferuję także wydruk oraz eksport grafiki (schematów blokowych) do znanych formatów graficznych. Twórca Magicznych Bloczków jest Eri Software.
PRZYKŁADY ALGORYTMÓW :