Неформално, алгоритам е било која добро-дефинирана сметачка процедура, што зема некоја вредност, или множество од вредности како влез и резултира некоја вредност, или множество од вредности како излез.
Решавајќи задачи од областа на математиката, физиката, статистиката и други ние користиме познати правила и методи. Како на пример, правило за множење на два броја, делење на броеви, методи за решавање на систем линеарни равенки и друго. Исто така ќе го гледаме алгоритмот како алатка за решавање на добро специфициран сметачки проблем.
Алгоритмите се процедури за решавање на одредени проблеми. Многу едноставен пример е проблемот на множење на два броја. Множењето на мали броеви како што се 7 и 9 е тривијално, затоа што можеме да го меморираме одговорот однапред. Но ако множиме големи броеви како што се 1234 и 789 ни треба чекор по чекор процедура или алгоритам. Сите ние во училиште сме учеле некои алгоритми кои биле составени од други помали алгоритми но не сме обрнувале внимание како тие процедури стручно се викаат и од што се составени, туку сме ги памтеле онакви какви што биле.
Алгоритмите во сметањето имаат долга историја, можеби исто толку долга колку што постои цивилизацијата воопшто. И во секојдневието извршуваме работи по некои правила. Ќе наведеме едноставен пример. Проблемот што треба да се реши е да се направи чоколадна торта по рецепт.
Рецепт за чоколадна торта
Состојки: 400г чоколадо, 1 маргарин, 2 чаши шеќер, 3 јајца, 1 пакетче ванила, 1 чаша брашно
Стопи ги чоколадата и маргаринот. Измати ги јајцата со шеќерот и ванилата, потоа истури ја смесата во чоколадото и измешај. Истури го и брашното и измешај. Измешаното истури го во плех. Се пече на 250 степени околу 40 минути или додека вилушката кога ќе ја забодеме во тестото и извлечеме ќе биде скоро чиста. Се остава да се излади и потоа се јаде.
Значи и правењето торта може да се опише со алгоритам.
Пропишаните правила што ги користиме во врска со решавањето на одредената задача се вика алгоритам.
Со други зборови алгоритмот се дефинира како конечно множество правила (инструкции) со кое се дефинира низа од операции со точно зададен редослед чиешто извршување е потребно за решавање на даден проблем.
Од дефиницијата за алгоритам можеме да заклучиме:
- алгоритамот завршува по конечен број на операции
- редоследот на операциите е точно зададен со што се добива решение на проблемот, што е и наша цел.
Врз основа на ова можеме да кажеме дека алгоритмот се состои од низа алгоритамски чекори кои се извршуваат по однапред зададен редослед.
Пример1: Да се состави алгоритам за пресметување на плоштина на правоаголник со страни a и b.
Според дефиницијата ние треба да одредиме низа од дејства (алгоритамски чекори) така што со нивната примена врз податоците ќе го добиеме точниот резултат.
Најпрво тргнуваме од правилото за пресметување плоштина на правоаголник со страни a и b. Формулата гласи: P=a∙b
Сега ги дефинираме алгоритамските чекори:
чекор 1. читање на вредностите на променливите а и b
чекор 2. пресметување на вредноста на P по формулата P=a∙b
чекор 3. прикажување на вредноста на променливата P
чекор 4. крај на алгоритмот
За еден алгоритам велиме дека е точен, ако за секоја внесена инстанца завршува со точен излез. Велиме дека точен алгоритам го решава дадениот проблем.
Алгоритмот мора да се направи така да биде испланиран да се извршува од човек или од машина.
Во општ случај, алгоритмот мора да се формулира во чекори, доволно едноставни за да се извршат од човек или машина (компјутер).
Алгоритмите имаат многу заеднички работи со програмите, но постојат и значајни разлики меѓу нив. Прво, алгоритмите се поопшти од програмите. Еден алгоритам може да биде решен од човек или машина, или од двете. Програмата мора да биде извршена од компјутер. Второ, алгоритмите се поапстрактни од програмите. Еден алгоритам може да биде изразен во било кој конвенционален јазик или нотација, а програматамора да биде изразена во некој програмски јазик. Ако алгоритмот имаме намера да го извршиме на компјутер, прво треба да го кодираме во одреден програмски јазик и може да бираме во кој програмски јазик сакаме.
Секој алгоритам треба да ги има следниве карактерични делови:
- влез
- излез
- дефиниција
- ефективност
- крај
Претставување на алгоритмот
Алгоритмот може да се прикаже на два начини:
- текстуално
- графички
Пример за блок-дијаграм: