АЛГОРИТМИЧНИ ЕЗИЦИ
Управление на компютърна програма
Както бе споменато по-рано, информацията под формата на двоични кодове циркулира по компютърната шина за данни. Самият процесор ги интерпретира или като данни за обработка, или като команди за изпълнение. На външен вид тези два вида информация не се различават един от друг. Процесорът прави разлика между данни и команди. Например, ROM съдържа 1FH байт, който се разпознава (декодира) от процесора като команда за добавяне на две числа.
Следователно процесът на работа на компютъра може да си представим като непрекъснато четене на байт или няколко байта от ROM и декодирането им в команди за процесора, изпълнение на командата и четене на следващата команда и т.н.
Следователно, за да работи компютърът, е необходимо последователности от командни кодове да бъдат заредени в ROM или RAM. Тези двоични последователности се наричат програма. Точно тези команди в двоични кодове процесорът директно разбира. Всички други видове програми, посочени по-долу, трябва да бъдат "преведени на езика на кодовете".
Езици за програмиране
Машинен език
Машинният език е поредица от двоични кодове, които процесорът разбира без "преводач". Предимствата му са максимална производителност, минимално количество памет за програмата.
Недостатъци - слаба видимост, трудност при програмиране. По правило системните програми, които изискват максимална производителност, са написани на машинен език.
Език за асемблиране
Асемблерният език (или просто асемблер) е колекция от конструкции, наречена "мнемоника". Тези мнемонични и машинни кодове имат съответствие едно към едно. Въпреки това, мнемониката е по-лесна за запомняне и може да не представляваедна операция, а група операции от един и същи тип. Сега обаче е необходим "преводач" от езика на мнемониката на машинен език, за да се изготвят програми. Този преводач се нарича преводач. Основният процес на излъчване на програми е показан на фигура 3.1.
Предимства на Assembler: както и за машинния език - максимална скорост и малък обем памет. В допълнение, лекотата на писане и модифициране на програми. Недостатъци: необходимостта от преводач, времето, прекарано в превода, голям брой команди, необходими за извършване дори на прости операции.
Езици на високо ниво
Езиците на високо ниво (HLL) са поредица от изрази, всеки от които кодира голям брой елементарни оператори на процесора. Тези езици също изискват преводач (Фигура 3.2).
Предимства на HDL: висока видимост, висока ефективност на писане на програми. Недостатъци: необходимостта от преводач, голямо количество памет, заета от програмата, ниска производителност.
Основи на алгоритмизацията и програмирането
Въведение
Разработването на всяка програма може да бъде представено като формализиран процес, състоящ се от поредица от последователни трансформации на едно описание на решавания проблем в друго.
Започва с най-обикновено неформално описание на задачата от клиента и завършва с разработена програма, съхранена в паметта на компютъра.
Има девет такива етапа:
1. Постановка на проблема
2. Изграждане на математически модел
3. Избор и компилация на алгоритми за решение
4. Дизайн на програмата
6. Офлайн отстраняване на грешки
7. Цялостно отстраняване на грешки
8. Прехвърляне към операция
1).Първият етап включва устно описание или с помощта на специални символи на условията на задачата и желания резултат. Като правило изложението на проблема се представя под формата на задание за разработената програма. Техническото задание се представя от клиента и той не винаги може да формализира или разработи задачата в детайли. Това може да са химици, биолози, лекари или инженери, които нямат опит в поставянето на задачи за решаването им на компютър.
2). На втория етап се извършва изграждането на математически модел на процеса, който е описан в постановката на задачата. Такива, които го описват с помощта на математически апарат - съставяне на уравнения, намиране на зависимости. На този етап е възможно да се свържат математици или програмисти.
3). На третия етап математическият модел се представя в удобен за числена оценка вид и се избира метод за решаване на задачата.
Ако на предишните етапи беше описанокаквотрябва да се получи, тогава тук се решавакакда се направи това, т.е. се избира алгоритъмът за изчисляване на резултата въз основа на първоначалните данни.
4). На четвъртия етап се извършва проектиране на софтуерния пакет, т.е. се разработват спецификациите на изискванията към отделните модули - части от програмата.
5). На петия етап алгоритъмът се кодира с помощта на операторите на определен език за програмиране, избран в съответствие с проблема, който се решава.
6). Шестият етап се състои в отстраняване на грешки на всеки отделен модул, който е част от софтуерния пакет. Всяка включена в комплекса програма се тества и проверява отделно, независимо от другите, за да изпълнява точно тези функции, които трябва да изпълнява в нея.
7). Проверка на целия комплекс.
8). На осмия етапразработеният комплекс е въведен в експлоатация, подготвя се комплект документация за ръководството за експлоатация.
9). Деветият етап включва отстраняване на грешки, открити по време на работа, и промяна на работните програми с цел тяхното подобряване.
Отстраняване на грешки - процес на откриване и отстраняване на грешки в програмния текст, коригиране на кода.
Тестване - тестване на работеща програма върху специално подбрани тестови случаи с цел идентифициране на семантични грешки.
Алгоритъм и неговите свойства
Алгоритъм - последователност от действия със строго определени правила за изпълнение.
Да се разработи алгоритъм за решаване на проблем означава да се раздели проблемът на определен брой последователно изпълнени стъпки. Ако алгоритъмът е разработен, тогава той може да бъде предаден за изпълнение на лице (или компютър), което не е запознато с проблема, който се решава, и при стриктно спазване на правилата на алгоритъма това лице (или друг изпълнител) ще получи правилното решение.
с дадените стойности "a", "b", изпълнете следните действия:
След като изпълни горната последователност от действия, всеки изпълнител ще получи стойността на хипотенузата на правоъгълен триъгълник, в зависимост от стойностите на краката "a", "c".
Всеки разработен алгоритъм трябва да има следните основни свойства:
1-Дискретност. Това свойство е, че алгоритъмът трябва да представя решението на проблема като последователно изпълнение на прости стъпки. В същото време всяка стъпка от алгоритъма изисква ограничено време за изпълнение. Тоест преобразуването на изходните данни в резултат се извършва дискретно във времето.
2-Детерминизъм (сигурност). Всяко правило на алгоритъма трябва да е ясно и недвусмислено, без да изисква допълнителни инструкции.
3-Ефективност (или ограниченост). Алгоритъмът трябва да доведе до решение на задачата в краен брой стъпки.
4-Характер за маса. Алгоритъмът е разработен в общ вид и е приложим за определен клас задачи от същия тип.
Алгоритмизиране
Етапът на разработване на програма, резултатът от който е разработването на алгоритъм за решаване на проблем, често се нарича алгоритмизация. Но в широк смисъл алгоритмизацията включва избор на метод за решаване на проблем и форма за представяне на първоначална информация, като се вземе предвид конкретен компютър.
Разработеният алгоритъм може да бъде фиксиран по няколко начина:
- на естествен език.
- под формата на диаграма (структурна диаграма).
- на специален език за писане на алгоритми (алгоритмичен език)
Алгоритмичен език - набор от символи и система от правила за компилиране и интерпретиране на конструкции от тези символи. Блоковата схема може да се състои от следните елементи: