3. 3
Определение
Алгоритм – система правил, четко описывающая
последовательность действий, которые
необходимо выполнить для решения задачи, т.е.
для получения результата из исходных данных.
Выходные
данные
(результат)
Исходные
(входные)
данные
Алгоритм
1 действие
2 действие
3 действие
4 действие
5 действие
4. 4
Свойства алгоритмов
Все алгоритмы обладают следующими свойствами:
1. Дискретность.
Алгоритм должен представлять процесс решения задачи
как последовательное выполнение простых шагов.
2. Результативность.
После точного выполнения всех шагов непременно
должен быть получен результат.
ШАГ 1 ШАГ 2 ШАГ 3
Алгоритм
1 действие
2 действие
3 действие
Результат
5. 5
Свойства алгоритмов
3. Массовость.
Алгоритм решения задачи разрабатывается в общем виде,
то есть он должен быть применим для некоторого
класса задач, различающихся лишь исходными
данными.
Алгоритм
1 действие
2 действие
3 действие
4 действие
5 действие ...
ЗАДАЧА 1
ЗАДАЧА 2
ЗАДАЧА 3
КЛАССЗАДАЧ
6. 6
Свойства алгоритмов
4. Конечность.
Каждое действие в отдельности и алгоритм в целом
должны завершаться за конечное число шагов.
ШАГ 1 ШАГ 2 ШАГ 3
ШАГ 1 ШАГ 2 ШАГ ∞
Правильно
Неправильно
7. 7
Свойства алгоритмов
5. Однозначность (детерминированность).
Каждое правило алгоритма должно быть чётким,
однозначным, то есть при одинаковых исходных
данных результат работы должен быть один и тот же.
Правильно Неправильно
Сделай
один шаг
вперед
Сделай
что-нибудь
9. 9
Способы записи алгоритмов
Словесный (вербальный) – алгоритм
описывается на естественном языке.
Обычно используется для алгоритмов, ориентированных
на исполнителя-человека.
Исполнитель – объект, который выполняет алгоритм.
Например:
Алгоритм приготовления бутерброда с сыром:
1. Отрезать ломтик хлеба.
2. Намазать отрезанный ломтик хлеба маслом.
3. Отрезать ломтик сыра.
4. Положить отрезанный ломтик сыра на отрезанный
и намазанный маслом ломтик хлеба.
10. 10
Способы записи алгоритмов
Псевдокод – алгоритм описывается на условном
алгоритмическом языке, включающем как элементы
языка программирования, так и фразы естественного
языка, общепринятые математические обозначения
и др.
Например:
Программа «Здравствуй, Мир!»:
алг ЗДРАВСТВУЙМИР
нач
вывод ('Здравствуй, Мир!‘)
кон алг ЗДРАВСТВУЙМИР
Программный – алгоритм описывается на
определенном языке программирования строго по
правилам этого языка программирования.
11. 11
Способы записи алгоритмов
Графический – алгоритм описывается с помощью
блок-схем.
Начало
алгоритма
Действие
Ввод данных
1
да
Ветвление
нет
1
Конец
алгоритма
Вывод данных
Подпрограмма
Используемые
геометрические
фигуры
соответствуют
одному шагу
алгоритма и
имеют
стандартный
смысл.
Порядок выполнения
действий
указывается
стрелками.
13. Алгоритм на естественном языке:
1. Ввести значения сторон a, b, с.
2. Рассчитать полупериметр по
формуле:
3. Найти площадь треугольника по
формуле Герона:
4. Вывести S.
13
Пример 1 построения алгоритма
Задача 1: По формуле Герона найти площадь треугольника
со сторонами a, b, с.
Начало
Ввод a, b, с
Конец
Вывод S
p:=(a + b + c)/2
: ( )( )( )S p p a p b p c
2
a b c
p
: ( )( )( )S p p a p b p c
Алгоритм в виде
блок-схем:
14. 14
Пример 2 построения алгоритма
Задача 2: Найти максимальное из двух чисел a и b.
Начало
Ввод a, b
Конец
Вывод max
max:=a max:=b
да нет
a > b
Алгоритм в виде
блок-схем:Алгоритм на естественном
языке:
1. Ввести значения чисел a и b.
2. Проверить а больше b.
3. Если ДА, присвоить
переменной max
значение а.
4. Если НЕТ, присвоить
переменной max
значение b.
5. Вывести переменную max.
15. 15
Пример 3 построения алгоритма
Задача 3: Найти котангенс угла a. Замечание: ctg 0 не
существует.
Начало
Ввод a
Конец
Вывод i
i:= ctg a
да
нет
a > 0
Алгоритм на естественном
языке:
1. Ввести значение a.
2. Проверить а больше 0.
3. Если ДА, найти котангенс а
4. Присвоить переменной i
найденное значение.
5. Вывести значение
переменной i.
6. Осуществить выход из
программы.
7. Если НЕТ, осуществить
выход из программы.
Алгоритм в виде блок-схем:
16. 16
Пример построения циклического
алгоритма (цикл с предусловием)
Задача: Вычислить сумму n чисел (n > 2) a1, a2,…, an.
S:= S + ai
да
i < n
нет
i:= i + 1
Начало
S:= 0, i:=1
Ввод ai
1
1
Конец
Вывод S
Обозначения:
S – искомая сумма;
i – номер числа в
последовательности;
n – количество чисел в
последовательности.
тело
цикла
17. 17
Пример построения циклического
алгоритма (цикл с постусловием)
Задача: Вычислить сумму n чисел (n > 2) a1, a2,…, an.
S:= S + ai
да
i > n
нет
i:= i + 1
Начало
S:= 0, i:=1
Ввод ai
1
1
Конец
Вывод S
Обозначения:
S – искомая сумма;
i – номер числа в
последовательности;
n – количество чисел в
последовательности.
тело
цикла