You are on page 1of 27

Алгоритми

ОСНОВНИ ПОНЯТИЯ И ХАРАКТЕРИСТИКИ

ИТ ООП – 10.КЛАС , ВИДОЛОВА 1


Исторически факти
 Кетаб ал-Джебр

Общите правила за решаване на


аритметически задачи с помощта на
уравнения
Абу Джафар
Мохамед ибн Муса
 За индийското смятане ал-Хорезми -
арабски математик
- 820 год. (от град
Представяне на десетичните числа и Хорезми на река
Амур-Даря)
пресмятането с тях

 Потърсете в речника описание на понятието


ИТ ООП – 10.КЛАС , ВИДОЛОВА 2
Алгоритъм
 Еднозначно описана крайна последователност от елементарни

действия над определени входни данни, която винаги води до резултат

Изпълнение на
Вход алгоритъма Изход

ИТ ООП – 10.КЛАС , ВИДОЛОВА 3


Характеристики на
алгоритмите

 Множество от обекти
 Операции с обектите
 Решаване на задача

ИТ ООП – 10.КЛАС , ВИДОЛОВА 4


Свойства на алгоритмите
 Определеност – при многократно изпълнение на едни и същи данни
резултатът е един и същ
 Масовост – приложим за решаване на цял клас задачи
 Резултатност – изпълнението му решава конкретна задача и извежда
подходящо съобщение
 Дискретност – всеки алгоритъм трябва да се състои от краен брой
елементарни действия
 Крайност – алгоритъмът завършва за краен брой стъпки
 Формалност – резултатът от действията върху данните и посочването на
следващата стъпка трябва да бъдат еднозначно определени от действията,
извършвани в текущия момент (Автомат)
 Сложност – ефективност и яснота
ИТ ООП – 10.КЛАС , ВИДОЛОВА 5
Видове алгоритми

Линейни Разклонени Циклични Рекурсивни

ИТ ООП – 10.КЛАС , ВИДОЛОВА 6


Линейни алгоритми
 Последователен ред на  Пример:
Да се определи обиколката на
изпълнение на действията, триъгълник със страни a, b и c.
който винаги е един и същ,  Входни данни:
независимо от набора данни, a, b и c, a>0, b>0, c>0;
за които се прилага  Резултат: P – обиколка;
 Процедура:
Стъпка 1: задава се стойност за a;
Стъпка 2: задава се стойност за b;
Стъпка 3: задава се стойност за c;
Видове
алгоритми
Стъпка 4: P = a+b+c;

ИТ ООП – 10.КЛАС , ВИДОЛОВА 7


Разклонени алгоритми
Пример:
 Разклонението дава
Деление на две числа x и y.
възможност да се
Величини: x, y;
избере една от две
Резултат: z;
възможности за
Действия:
продължаване на
Стъпка 1: задава се стойност за x;
изчислителния процес
Стъпка 2: задава се стойност за y;
Стъпка 3: Ако y = 0 делението е
невъзможно.

Видове
В противен случай z = x/y.
алгоритми

ИТ ООП – 10.КЛАС , ВИДОЛОВА 8


Циклични алгоритми
Пример: Намиране на сумата на числата от 1
 Многократно до 100.
Данни: Целите числа от 1 до 100 и br;
изпълнение на една Резултат: S – сумата;
Действия:
или повече стъпки
Стъпка 1: S = 0;
Стъпка 2: br = 1;
Стъпка 3: S = S+br;
Стъпка 4: Ако стойността на брояча е по-малка
или равна на 100, стойността на брояча се
увеличава с единица и се преминава към
Видове
алгоритми
стъпка 3. В противен случай - край;

ИТ ООП – 10.КЛАС , ВИДОЛОВА 9


Рекурсивни алгоритми
 Дефиниране на естествени числа:
 Един обект е рекурсивен, ако той
а) 1 е естествено число;
частично се съдържа в себе си или е
б) приемникът на естественото число
дефиниран чрез себе си. е естествено число;
 Дървовидни структури:
а) 0 е дърво (наречено празно);
б) ако t1 и t2 са дървета, то е дърво
(начертано на обратно);
 n!
а) 0! = 1;
б) ако n>0, то n! = n*(n-1)!;

Видове
алгоритми

ИТ ООП – 10.КЛАС , ВИДОЛОВА 10


Описание на алгоритмите

Езици за
Словесно Псевдокод Блок-схеми
програмиране

ИТ ООП – 10.КЛАС , ВИДОЛОВА 11


Словесно описание
 Описват се словесно Пример:
последователностите от стъпки, които
трябва да се изпълнят за да се реши Намиране корените на едно
задачата. квадратно уравнение y = ax2+bx+c.

 Всички стъпки са номерирани Стъпки:


според реда на тяхното изпълнение. 1. Изчислява се D=b2-4ac.
 Ако се налага нарушаване на 2. Проверява се знака на D. Ако D<0
този ред (за реализация на се преминава към точка 3. В
разклонения или цикли) се описва противен случай се изчислява x1=
изрично коя е следващата стъпка. (-b+√D) / (2a), x1= (-b-√D) / (2a).
3. Прекратява се изчисляването.

Описание на
алгоритмите

ИТ ООП – 10.КЛАС , ВИДОЛОВА 12


Псевдокод
Естествен език наподобяващ 1. Въведи а;
език за програмиране 2. Въведи b;
Липсва стандарт 3. Въведи с;
Съчетава математически 4. d=a;
формули 5. Ако b< d тогава d=b;
Присвояване
6. Ако c<d тогава d=c;
Сравнение
7. Изведи d;
Условие

Описание на
алгоритмите

ИТ ООП – 10.КЛАС , ВИДОЛОВА 13


Блок-схеми

Графично описание на алгоритмите


Блок за начало и край
 Блок за вход и изход
Обработващ блок
Блок за проверка на условие

Описание на
алгоритмите

https://sites.google.com/site/algoritmskazka/algoritmy-v-poslovicah-i-pogovorkah
ИТ ООП – 10.КЛАС , ВИДОЛОВА 14
Основни блокове
Име на блока Форма Пояснение
Начален блок начало Посочва от кой блок започва изпълн. на алг.

Краен блок край Посочва завършване на изпълнението на алг.

Блок за Съдържа имена на величини, които


вход
въвеждане получават стойност
Блок за изход Съдържа имена на величини, които се
извеждане извеждат
Безусловен Съдържа едно или повече елементарни
блок действия
Условен блок Служи за разклоняване на алгоритъма

Описание на Блок за обр. Съдържа име и фактически параметри на


алгоритмите
към подалг. подалгоритъм
ИТ ООП – 10.КЛАС , ВИДОЛОВА 15
Визуален редактор – draw.io

ИТ ООП – 10.КЛАС , ВИДОЛОВА 16


Алгоритъм на Евклид
 Описание: за намиране на най-големият общ делител на две цели
положителни числа А и В.
 Входни данни: А и В, А>0 и В>0;
 Резултат: да се намери най-големият общ делител на А и В;

ИТ ООП – 10.КЛАС , ВИДОЛОВА 17


Алгоритъм на Евклид

Намерете НОД(2,6)=?
Намерете НОД(9,6)=?
Описание на
алгоритмите

ИТ ООП – 10.КЛАС , ВИДОЛОВА 18


Езици за програмиране
Представя командите със Visual Basic
специални означения – код ,
1. Input “A=“; а
програма
2. Input “B=“; b
Има строги правила за запис
3. Input “C=“; с
Среда за програмиране
4. d=a;
 Създава програмата
5. IF b< d then d=b;
 Изпълнява
 Представя резултата от 6. If c<d then d=c;
изпълнението 7. Print ”Най-малкото число е:“; d
Описание на
алгоритмите

ИТ ООП – 10.КЛАС , ВИДОЛОВА 19


Размяна стойностите на две
променливи
начало начало

вход: а,b вход: а,b

p:=a a:=a+b
a:=b b:=a-b
b:=p a:=a-b

изход: а,b изход: а,b

край край
ИТ ООП – 10.КЛАС , ВИДОЛОВА 20
Структура на цикличните конструкции

 Инициализация – управляваща променлива


 Тяло
 Актуализация
 Условие за край
ИТ ООП – 10.КЛАС , ВИДОЛОВА 21
Определете резултатите за
зададените входни данни

ИТ ООП – 10.КЛАС , ВИДОЛОВА 22


Циклични блок-схеми F=1.2.3.4…n
начало

вход: n
 Условието ще се промени
на i > n.
F:=1
i:=1 i:=i + 1  Изходът от цикъла ще е при
условие “да”, а тялото се
да повтаря при “не”.
i<=n F:=F*i
не
изход: F
цикъл с предусловие

край ИТ ООП – 10.КЛАС , ВИДОЛОВА 23


Пресмятане на сумата S=1+2+3+4…+n
начало

вход: n

S:=0
I:=0

S:=S+I I:=I+1
да
изход: S
не
I<=n

край
ИТ ООП – 10.КЛАС , ВИДОЛОВА 24
Квадратно уравнение

ИТ ООП – 10.КЛАС , ВИДОЛОВА 25


Най- голямото число от три
числа
M - помощна променлива, на която
ще присвоим стойността на числата
и ще сравняваме

Входни данни за А, В и С
 9, 7, 11

 5, 11, 9

ИТ ООП – 10.КЛАС , ВИДОЛОВА 26


Създайте алгоритъм за намиране
на лицето и обиколката на
правоъгълник.

Опишете алгоритъма с псевдокод и


блок-схема.
Полезни ресурси

В P=?, S=? 1001 задачи


За любопитните

ИТ ООП – 10.КЛАС , ВИДОЛОВА 27

You might also like