Информационни процеси търсене, обработка, съхранение и предаване
Алгоритъм и неговите свойства. Методи за описание на алгоритми. Техники за структуриране на алгоритми. Паскал като език за структурно програмиране. Композитни данни със статична структура: едномерни и двумерни масиви.
Концепцията за алгоритъм. Концепцията за алгоритъм е една от основните концепции на компютърните науки. Алгоритмизацията заедно с моделирането действа като общ метод на информатиката. Алгоритмите са обект на систематично изследване на научната дисциплина, която граничи между математиката и информатиката - теорията на алгоритмите.
Самата дума "алгоритъм" произлиза от algorithmi - латинската форма за изписване на името на великия математик от 9 век ал-Хорезми, който формулира правилата за извършване на аритметични операции. Първоначално алгоритмите и разбират само правилата за извършване на четири аритметични операции с многозначни числа.
Въведение в разглеждането на понятието "изпълнител" ни позволява да дефинираме алгоритъма като ясна и точна инструкция към изпълнителя да извърши последователност от действия, насочени към постигане на целта. Понятието изпълнител не може да се дефинира с помощта на никаква формализация. Изпълнителят може да бъде човек, робот, компютър, език за програмиране и др. Изпълнителят може да изпълни някои команди. Целият набор от команди, които даден изпълнител може да изпълни, се нарича командна система на изпълнителя (SCI).
Изпълнителят обаче не задълбава в смисъла на това, което прави, а получава необходимия резултат. В този случай те казват, че изпълнителят действа формално, т.е. се отвлича от съдържанието на задачата и следва стриктно само определени правила и инструкции.
Има алгоритми "в средата" (алгоритми, при които поведението на изпълнителя зависи от средата -прахосмукачка, кенгуру и др. изпълнители) и алгоритми за работа с величини – числови, символни, логически и др. Последните алгоритми са по-познати и по-разпространени.
Свойства на алгоритмите. Алгоритъмът трябва да бъде проектиран по такъв начин, че изпълнителят, за когото е създаден, да може недвусмислено и точно да следва инструкциите на алгоритъма и ефективно да получи определен резултат. Това налага редица задължителни изисквания към записите на алгоритмите:
1. Дискретност. Процесът, описан от алгоритъма, трябва да бъде разделен на последователност от отделни стъпки. Полученият запис е подреден набор от инструкции, ясно разделени една от друга, образувайки дискретна (прекъсната) структура на алгоритъма. Само като изпълните изискванията на една рецепта, можете да продължите към следващата.
2. Яснота. Алгоритмите, използвани в практиката, са съставени с фокус върху конкретен изпълнител. Следователно всички команди в алгоритъма трябва да са разбираеми за този изпълнител, т.е. принадлежат на неговите СКИ.
3. Детерминизъм (сигурност). Алгоритъмът не трябва да съдържа предписания, чието значение може да се възприема нееднозначно, т.е. една и съща команда, тъй като е разбираема за различни изпълнители, след изпълнение от всеки от тях трябва да даде един и същ резултат. В алгоритмите също са неприемливи ситуации, когато след изпълнението на следващата команда на алгоритъма, за изпълнителя не е ясно коя от командите на алгоритъма трябва да бъде изпълнена на следващата стъпка.
4. Ефективност. При точното изпълнение на всички предписания на алгоритъма, процесът трябва да спре в краен брой стъпки и да се получи определен резултат. Изводът, че няма решение, също е резултат.
5.Масов характер. Най-разпространените алгоритми дават решение не на един конкретен проблем, а на определен клас задачи от даден тип. В най-простия случай масовият характер осигурява възможност за използване на различни изходни данни.
Начин за описание на алгоритми. Алгоритъм, съставен за определен изпълнител, може да бъде представен по различни начини: с помощта на графично или словесно описание, под формата на таблица, последователност от формули, написани на алгоритмичен език (или език за програмиране).
Блокови схеми. Нека се спрем на графичното описание на алгоритъма, наречено блокова диаграма. Този метод има редица предимства. Благодарение на видимостта, която осигурява висока "четимост" на алгоритъма и ясното показване на контрола в него.
Блок-схемата е насочена графика, която показва реда, в който се изпълняват командите на даден алгоритъм; Върховете на такава графа могат да бъдат един от три типа:
SHAPE \* MERGEFORMAT