Компютри и ИКТ
Въведение в концепцията на алгоритъма
В днешното общество думата "алгоритъм" е толкова разпространена, че най-интуитивна. По това означава всяка поредица от стъпки за постигане на определена цел. Въпреки това, понятието "алгоритъм" е доста сложно за теоретична наука.
Смята се, че няма еднозначно определение на алгоритъма, но най-вече различни източници дават много подобни определения.
Така че, следните компоненти могат да бъдат разграничени в общото определение на алгоритъма (в училищния курс по компютърни науки):
Алгоритъм - краен последователност от команди ...
- ... в разбираем за него език на изпълнителната власт ...
- ... определяне на процеса на решаване на проблемите на определен тип ...
- ... и води до резултата, който еднозначно идентифицира валидните входните данни.
Последният параграф от определението се посочва, че на изхода на алгоритъма зависи от входните данни. Т.е. същия алгоритъм с различни начални данни ще даде различни резултати. От друга страна, ако същия алгоритъм за предаване на няколко пъти едни и същи данни, той трябва да бъде един и същ период от време, за да се получи същия резултат.
Думата "алгоритъм" произлиза от името на учен на IX век Мохамед бин Ал-Khwarizmi ( "Ал-Khwarizmi" -> "алгоритъм"), което е описано по правилата на изпълнение на аритметични операции в десетичната система. Думата "алгоритъм" и след това започва да се определят правилата за изчисляване. Въпреки това, с течение на времето идеята на алгоритъма се променя, а през ХХ век при него започнах да осъзнавам, всяка последователност от действия, водещи до решаването на проблема.
На първо място, определението на алгоритъма е било проблем на математиката, но с течение на времето започва да се развива теорията на алгоритмите се дължи на влиянието на открития не само в областта на математиката, но също така и в областта на компютърните науки. В момента, алгоритъмът е едно от основните понятия на компютърните науки.
- Четливост (в този случай, разделението на части) и подредбата. Алгоритъмът трябва да се състои от отделни действия, които се извършват последователно.
- Детерминизъм (уникален). Многократното прилагане на алгоритъм за един и същ набор от оригинални данни винаги дават един и същ резултат.
- Формалност. Алгоритъмът трябва да се избегнат неясноти за изпълнител действия.
- Ефективност и крайник. Алгоритъмът трябва да приключи в рамките на определен брой стъпки, проблемът трябва да бъде решен.
- Маса. Специфичен алгоритъм трябва да бъде приложим за всички задачи от същия тип.
Изпълнител и разработчик на алгоритъма
За да се развива, да измислят алгоритми може само интелигентни същества (например хора). Но формално (без да се замисля и оценка) да изпълнява, може да е от машината (например, компютри, домакински уреди). Какви са ползите от такова разделение на труда? Фактът, че дадено лице се освобождава от рутинни дейности, които често могат да отнемат много време, и възлага на колата си.
Въпреки това, машините не са хора: Устройства разбират само ограничен брой команди и може да обработва данните (обекти), а не на всички типове. От това следва, че възложителят на алгоритъма трябва в крайна сметка се опише алгоритъм в рамките на допустимите команди специфичен художник (на машината, която алгоритъмът се изисква). Набор от команди, които изпълнителят може да изпълнява, се нарича система от художник отбори. Обекти (данни), над които изпълнителят може да извършва действия образуват изпълнител на околната среда.
език за програмиране - средство за записване на компютърни алгоритми
Доста универсален изпълнител е на компютъра. С него можете да извършвате различни видове алгоритми :. За да направите математически изчисления, за да се справят текстови данни, промяна на графика, и т.н. В известен смисъл, компютърът може да направи много като човек, и някои неща, много по-бързо. Въпреки това един човек и компютър "говорят" съвсем различни езици - един по един естествен, а другият (руски, английски и др.) - официалната (машина) език.
Разработеният алгоритъм, трябва по някакъв начин ", обясни" компютъра си. За да служат на тази цел програмиране езици, в резултат на алгоритъм за записване е програмата.
В момента, език за програмиране - това е по-скоро посредник между човека и компютъра. A програма, написана на език за програмиране, по-късно преведен на машина език преводач.
Езикови блок-схеми
Алгоритъмът може да се опише по много начини: думите, езика за програмиране, както и с помощта на блок-схеми.
На езика на графики всяка стъпка на алгоритъма, описан от съответния фигурата, и последователността от стъпки, определени от линиите връзки. Блок-схеми, се четат от горе до долу и от ляво на дясно.
Блок-схеми са полезни, защото те осигуряват лесен "четливост" алгоритъм. Все пак, това не винаги е така: необходимо е да се опита да направи блок схема за повече или по-сложен алгоритъм, тъй като тя расте с огромни размери и да загубите всичките си визуална предимство. Ето защо, блок-схеми, са добри в структуриран програмиране, за да опише кратки алгоритми.
Език на блок схеми прост (макар че има своите разширени опции):
- Правоъгълник - извършване на действие (например, с = а + б)
- Ромб - условия проверка (например,> б). Ако състоянието е изпълнено, тогава алгоритъмът продължава линията "да", ако не е доволен - ". Не" нещо по реда
- Rounded Rectangle - в началото и в края на алгоритъма
- Скосени правоъгълник - вход-изход (например, получаване на променлива стойност, изходното резултат на екрана).
Това не е пълно описание на езика, блок-схеми.
Алгоритмичната структура (типове алгоритъм)
Като част от структурния проблем на програмиране, като алгоритмичен разтвор, може да бъде описан с помощта на следните алгоритмични структури:
- След. Тя изисква последователно изпълнение на команди от горе на долу. Ако алгоритъмът се състои само от следните структури, тя е линейна.
- Разклонение. Изпълнението на програмата е една от две или повече или множество клонове. Изборът на клонове зависи от условията, при данните за входящите и браншови получили тук.
- Цикъл. Това предполага възможността за многократно повторение на някои действия. Броят на повторенията зависи от условията на цикъл.
- Функция (подпрограма). Командите са отделени от основната програма, се извършват само в случай на обаждане от основната програма (от каквото и местоположението му). В една и съща функция може да бъде извикана от главната програма неограничен брой пъти.