|
Алгоритъм – система, която описва последователност от елементарни действия и реда на тяхното изпълнение, за получаване на определен резултат. Стъпка - изпълнението на едно елементарно действие.
Алгоритми се използват от дълбока древност за описание на сложни действия. Например: извършване на аритметични действия с многоцифрени числа, изчисление лица на фигури и др. Когато се пресича улица също се спазват определена последователност от действия. Спираме оглеждаме се първо наляво, после надясно и ако няма движеща се кола пресичаме. Не всяка последователност от елеменарни действия е алгоритъм. За да бъде алгоритъм, тази последователност трябва да отговаря на следните изисквания: дискретност, яснота, формалност, определеност, масовост, крайност, резултатност. Дискретност - алгоритъм трябва да бъде описан от краен брой последователни стъпки. Яснота – всяка стъпка да бъде точно определена и еднозначно да посочва всяка следващата стъпка на изпълнителя. Формалност – стъпките да се извършват, механично, без нужда от допълнителна информация. Определеност – един и същ алгоритъм при едни и същи входни данни винаги да връща един и същ резултат, без изключение.. Масовост – един и същ алгоритъм решава еднотипни задачи различаващи се само по входните данни. Крайност – изпълнението на алгоритъма завършва след краен брой стъпки. Резултатност – изпълнението на алгоритъма завършва след краен брой стъпки, като дава един или много резултати. Ефективност – сравняване на алгоритмите решаващи една и съща задача (проблем) на базата за ефективното използване на компютърните ресурси и времето необходимо за изпълнение на алгоритъма. Описанието на алгоритмите чрез естествените езици, дава възможност за грешно интерпретиране, двусмислие или неразбиране, поради тези причини алгоритмите се представят чрез: псевдо код - смесица от совесен език и общо приети математически означения. Използва се за най-общо представяне на алгоритмите; блок-схема - използват се графично представени геометрични фигури за основните действия, за връзките между тях се използват стрелки. Много добър нагледен начин представяне и изучаване на алгоритмите. Представя най-общата идея на алгоритъма. езици за програмиране -точно и ясно представяне на алгоритмите. За всеки алгоритъм се създава програма, която се изпълнява на компютър. Езиците за програмиране имат точно определени правила за представяне на алгоритмите. Синтаксис (правопис) и семантика (смисълът, значението). |
| Блок | Описание | Пример |
|---|---|---|
![]() |
Начален блок. Началната точка, от която започва изпълнението на алгоритъмът.Съществува един блок начало, има една изходяша стрелка, няма входящи стрелки. |
![]() |
![]() |
Блок за край на алгоритъма. Може да има няколко блока за край. В този блок може да съществуват няколко входящи стрелки, но няма изходящи. |
![]() |
![]() |
Блок за обработка на данни. Присвояват се стойности и изчисляват се изрази. Може да има няколко входящи стрелки и само една изходяща. |
![]() |
![]() |
Блок за деклариране на променливи. |
![]() |
![]() |
Блок за вход или изход. В него се представят величините необходими за изпълнение на алгоритъма. Възможно е да има няколко входящи, но само една изходяща стрелка. |
![]() |
![]() |
Условен блок. В него се записва условие, което се проверява. Ако условието е вярно, алг. продължава към стрелка с надпис "да". Ако условието е не вярно, алг. продължава към стрелка с надпис "не". Може да има няколко входящи, но само две изходяща стрелки. |
![]() |
![]() |
Блок за подалгоритъм. Показва, че на това място ще бъде изпълнен друг подалгоритъм. В правоъгълника се записва името на подалгоритъма. |
![]() |
|
|
Блок за връзка. Използва се за свързване на голям или няколко алгоритъма. Възможно е да има няколко входящи, но само една изходяща стрелка. |
![]() |
|
Представяне на алгоритмите чрез блок-схеми е от голямо занчение в обучението. T е са прегледни, подредени, дават възможност за визуално представяне на алгоритмите. След това като знаем алгоритъмът, можем да напишем програма на някой език за програмиране: с++, java, pyton и т.н. В зависимост от последователността на изпълнение на елементарните действия алгоритмите биват: линейни, разклонени и цикични.
псевдо код, блок-схема и програма на с++. След това да сравним и обясним, кой е най-ясен и разбираем. |
| Псевдо код | Блок-схема | Програма на с++ |
|---|---|---|
|
1. Начало 2. Деклариране на a, b, c - цели числа 3. Въведи a,b 4. c=a+b 5. Изведи с 6. Край |
![]() |
int main () { int a,b,c; cin>>a>>b; c=a+b; cout<< c; return 0; } |
|
Пример за разклонен алгоритъм:
Нека да състави алгоритъм за намиране на по-голямото от две числа
a и b. |
| Псевдо код | Блок-схема | Програма на с++ |
|---|---|---|
|
1. Начало 2. Деклариране на А, B, MAX - цели числа 3. Въведи A,B 4. Докато А ≠ B повтаряй 5. Ако A > B то MAX = A иначе MAX = B 6. Изведи MAX 7. Край |
![]() |
int main () { int a,b,c; cin>>a>>b; c=a+b; cout<< c; return 0; } |
|
Пример за цикличен алгоритъм:
Съставете алгоритъм за намиране на най-голям общ делител (НОД) на две числа А, В. Много често в литературата този алгоритъм се употребява под името:
"алгоритъм на Евклид" .
|
|
|
![]() |
| Псевдо код | Програма на с++ |
|---|---|
|
1. Начало 2. Деклариране на A, B - цели числа 3. Въведи A, B 4. Докато А ≠ B повтаряй 5. Ако A > B то A = A-B иначе B = B-A 5. Изведи A 6. Край |
int main () { int a,b; cin>>a>>b; while (a!=b) { if(a> b) a=a-b; else b=b-a; } cout<< a; return 0; } |
|
|
|
1. Създайте блок-схема на алгоритъм за покупка на чаша горещ шоколад от машина за топли напитки. 2. Създайте блок-схема на алгоритъм за намиране на най-малкото от 3 числа. 3. Създайте блок-схема на алгоритъм за намиране на сумата на числата от 1 до 10. |
|
Използвана литература 1. Учебник по информатика за 9 клас профилирана подготовка "Информатика +" автори: проф. Петър Бърнев, доц. Георги Тотков, доц. Росица Донева, доц. Владимир Шкуртов, гл. ас. Коста Гъров. Издателство "Летра"- Пловдив 2001 г. 2.Учебник по "Информационни технологии" за 10 клас. автори: Николина Николова, Елиза стефанова, Мирослава Николов, Диана Петрова, Дафинка Митева, Красен Стефанов. Издателство "Просвета-София" АД - 2018 г. |