Примери алгоритама из свакодневног живота

Алгоритам за срећу

algoritamsrece

На слици је дат “Алгоритам за срећу”. У питању је блок дијаграм. Алгоритам би могао речима да се опише на следећи начин:

“Ако си срећан, настави да се понашаш као и до сада. Ако ниси срећан и не желиш да будеш срећан, настави да се понашаш као и до сада. Ако ниси срећан и желиш да будеш срећан, онда мораш нешто да промениш.”

Подизање новца са банкомата

bankomat
Алгоритам подизања новца са банкомата може се описати на слећи начин:

  1. Унеси картицу у читач
  2. Унеси пин код
  3. Ако банкомат пријави да је пин код погрешно унет, иди на корак 2
  4. Ако банкомат нуди могућност избора језика, одабери један од понуђених.
  5. Одабери опцију подизања новца.
  6. Ако имаш више рачуна, одабери рачун са кога желиш да подигнеш новац.
  7. Одабери један од понуђених новчаних износа или опцију да самостално унесеш суму коју желиш да подигнеш.
  8. Ако је унета опција за слободан унос, унеси суму коју желиш да подигнеш.
  9. Унеси да ли желиш потврду о транаскцији.
  10. Сачекај обраду трансакције.
  11. Узми картицу.
  12. Узми новац.
  13. Ако је унето да желиш потврду о трансакцији, онда узми потврду о трансакцији.

 

Отварање веб мејл налога

vebmejl
Опишимо поступак отварања веб-мејл налога.

  1. У прегледач веба унеси адресу веб мејл сервера.
  2. Унеси жељено корисничко име све док не унесеш име које није заузето.
  3. Унеси своју лозинку све док добијаш поруку да је лозинка преслаба.
  4. Унеси лозинку у поље за потврду лозинке све док се она не поклопи са првобитно унетом лозинком.
  5. Унеси своје остале податке.
  6. Проучи услове коришћења и ако си сагласан са њима штиклирај поље којим то потврђујеш.
  7. Ако желиш да примаш промотивне поруке, штиклирај одговарајуће поље.

Сабирање бројева

Претпоставимо да би требало да саберемо неколико бројева. Замислимо да у том тренутку немамо могућност коришћења калкулатора. Ево како бисмо то могли да урадимо. Напишемо на папиру нула, затим саберемо први број са овом нулом, након тога следећи број саберемо са овим бројем, и тако све док имамо бројева које нисмо сабрали. Последњи број који је написан на папиру је збир који тражимо.

Advertisements

Појам алгоритма

Шта је заједничко за прављење палачинки и дељење полинома полиномом? Многи ће помислити – ништа! Међутим, ипак ове две активности ипак имају нешто заједничко. Наиме, да бисмо направили добре палачинке, неопходно је да знамо и пратимо упутства из рецепта, као што је неопходно да знамо правила и редослед корака приликом дељења два полинома. Једино доследним спровођењем исправних корака у тачном редоследу можемо очекивати да ће прављење палачинки успети, односно да ће резултат дељења полинома бити тачан.

Реч поступак, односно шаблон, у математици и рачунарству замењује се речју алгоритам. Одлична страна алгоритмизације је што се може доћи до исправних резултата, а да се сам поступак ни мало не разуме. Не морамо разумети зашто се у рецепту један састојак ставља иза другог, ни зашто се полиноми деле на одређени начин, а опет могу се направити сасвим укусне палачинке, односно тачно поделити два полинома.

Рачунари нису интелигентне машине, али могу шаблонизоване и прецизно описане поступке успешно и брзо да извршавају. Предуслов да рачунар изврши шаблонизован поступак јесте да је поступак прецизно описан на неком од програмских језика у облику рачунарског програма.

Појам алгоритма

Неформално можемо рећи да је алгоритам низ прецизно описаних корака чијим се доследним спровођењем долази до решења проблема. Наведено није прецизна дефиниција појма алгоритма, али довољно информативно говори о овом појму.

Ако се осврнемо на наведене примере из претходног дела текста, можемо уочити следеће:

Приликом прављења палачинки водимо се рецептом за исте. Сваки рецепт има следећи садржај: “Узми одређену количину намирница, сипај, додај, мешај, ако је довољно компактно додај нови састојак, у супротном уради то то.”

Приликом дељења полинома полиномом такође се водимо сличним инструкцијама које нам је наставник објаснио: “Прво посматрамо чланове полинома са највишим експонентом, поделимо их и потпишемо, затим одузмемо полиноме…”

polinomi1

Овим смо описали алгоритме. Како се све алгоритми могу описати?

Начин описа алгоритама

Oпис aлгоритма на природном језику

У свакодневном животу алгоритми су намењени људима и зато их често описујемо природним језиком. Приликом описа алгоритама природним језиком често нисмо довољно прецизни јер се ослањамо на интелигенцију слушаоца који може да претпостави неке кораке.

Опис у облику псеудокода

Псеудокод је начин да се опише алгоритам комбиновањем природног језика и неког програмског језика. Комбинује се говорни језик и математичка нотација. Не постоји неки прецизан опис како би опис неког алгоритма на псеудокоду требало да изгледа, то зависи од онога ко описује алгоритам и коме се алгоритам саопштава. Појединцу се оставља могућност да сам креира псеудокод.

Дијаграми тока програма

Дијаграми тока су били актуелни у другој половини 20. века. Данас се ретко користе, али су значајан део историје рачунарства. Послужили су као инспирација за многе дијаграмске технике које се данас примењују. Дијаграми тока спадају у блок дијаграме јер се алгоритам описује дијаграмом који се састоји од појединачних блокова. Облик блокова има одређено значење.

Дијаграми  MIT Scratch/Blocly
Ово је једна изузетно популарна дијаграмска техника програмирања, пре свега у образовању младих програмера. Ова техника се појављује 2006. године као окружење за блоковско програмирање Сцратцх, које је развијено на универзитету MIT у САД-у.

racunarskiprogram

Scratch окружење

Популаран је и пројекат An hour of code (http://code.org/)  који се бави популаризацијом програмирања и користи сличан дијаграмски језик. Дијаграмске описе омогућава библотека Blockly компаније Гоогле. Алгоритми се описују слагањем блокова, а алгоритмима се најчешће описује кретање неког лика.

Програмским језиком

Осим претходног описа алгоритама, сви претходни описи су неформални и алгоритме описане њима рачунар не може да извршава. Рачунар може спровести алгоритам само ако је описан на неком програмском језику. Овако описане алгоритме називамо и рачунарским програмом, односно програмом. Сам процес описивања алгоритма на неко програмском језику назива се кодирање, имплементација или програмирање (процес програмирања се може схватити и мало шире о чему се учи у вишим разредима).

 

________________
Додатни материjали:

Algoritmi

Resavanje zadataka primenom algoritama