
- •5.1. Понятие алгоритма
- •5.1.1. Алгоритм и его свойства
- •5.1.2. Способы описания алгоритма
- •Изображение алгоритма в виде блок-схемы
- •Виды алгоритмов
- •Контрольные задания:
- •5.2. Компьютер как формальный исполнитель алгоритмов
- •5.2.1. Исполнитель и система команд исполнителя
- •5.2.2. Компьютер — автоматический исполнитель алгоритмов
- •Контрольные задания:
- •5.3. Алгоритмические конструкции:
- •5 Рис. 5.8. Линейный алгоритм .3.1. Линейный алгоритм
- •5.3.2. Разветвляющийся алгоритм
- •5.3.3. Циклические алгоритмы
- •5.3.3.1. Цикл со счетчиком
- •5 Рис. 5.17. Цикл с предварительным условием .3.3.2. Циклы с условием
- •Контрольные задания:
5.2.2. Компьютер — автоматический исполнитель алгоритмов
Представление информационного процесса в форме алгоритма позволяет поручить его автоматическое исполнение различным техническим устройствам, среди которых особое место занимает компьютер. При этом говорят, что компьютер исполняет программу (последовательность команд), реализующую алгоритм.
Алгоритм, записанный на "понятном" компьютеру языке программирования, называется программой.
Контрольные задания:
1. Кого или что называют исполнителем алгоритма?
2. С какой задачей может справиться только человек?
3. Как вы понимаете высказывание Норберта Винера: «Любая машина стоит лишь столько, сколько стоит человек, который на ней работает»?
4. Опишите достоинства и недостатки исполнителя «Робот» и исполнителя «Человек», выполняющих перевод текста с иностранного языка на русский по следующему алгоритму:
1) прочитать первое предложение на иностранном языке;
2) поочередно перевести все слова предложения на русский язык;
3) составить из полученных слов фразу на русском языке и записать ее;
4) если не все предложения переведены, то взять первое непереведенное предложение и перейти к п. 2; иначе выполнить п. 5;
5) закончить работу.
5. Что называют программой?
5.3. Алгоритмические конструкции:
следование, ветвление, повторение.
Как было сказано в пункте 5.1.4. алгоритмы имеют три вида: линейный, разветвляющийся и циклический. Рассмотрим их более подробно.
5 Рис. 5.8. Линейный алгоритм .3.1. Линейный алгоритм
Существует большое количество алгоритмов (например, рассмотренный в вашей домашней работе алгоритм "Переводчик"), в которых команды должны быть выполнены последовательно одна за другой. Такие последовательности команд будем называть сериями, а алгоритмы, состоящие из таких серий, линейными.
Алгоритм, в котором команды выполняются последовательно одна за другой, называется линейным алгоритмом.
На блок-схеме хорошо видна структура линейного алгоритма, по которой исполнителю (человеку) удобно отслеживать процесс его выполнения (Рис. 5.8).
Рассмотрим несколько примеров линейных алгоритмов.
ПРИМЕР 5.1. Имеется две ячейки памяти А и В. Поменять местами содержимое этих ячеек.
РЕШЕНИЕ:
Прежде чем начать решать данную задачу, давайте себе представим следующую ситуацию. У нас имеется две клетки. В первой находится кошка, во второй – мышка. Нам нужно пересадить животных. Одновременно кошку и мышку сажать в одно место нельзя (кошка съест мышку). Как же быть? Нужна ещё одна клетка. Первое, что мы сделаем – это пересадим в пустую клетку одного из животных. В освободившуюся клетку посадим второе животное. Теперь со спокойной душой можно посадить в освободившуюся клетку первое животное. Пустая клетка осталась пустой. Она выполняла промежуточные функции.
Точно также поступим и с ячейками А и В. Введём ячейку С (Рис. 5.9).
А
В
2
1 3
С
н
ачало
ввод
A, B
C=A
A=B
B=C
вывод
А, В
конец
Рис. 5.9. Алгоритм решения задачи примера 5.1.
ПРИМЕР 5.2. Зная длины трех сторон треугольника, вычислите его площадь и периметр.
РЕШЕНИЕ:
Пусть
a,
b,
c
- длины сторон треугольника. Необходимо
найти S - площадь треугольника, Р -
периметр. Для нахождения площади можно
воспользоваться формулой Герона:
,
где r
- полупериметр.
Входные данные: a, b, c. Выходные данные: S, Р.
Итак, составляем блок-схему (Рис. 5.10).
начало
ввод
a, b, c
P=a+b+c
r=P/2
вывод
P, S
конец
Рис. 5.10. Алгоритм решения задачи из примера 5.2.
Примечание. В этих блоках знак "=" означает не математическое равенство, а операцию присваивания. Переменной, стоящей слева от оператора, присваивается значение, указанное справа. Причем это значение может быть заранее определенным либо вычисляться при помощи математического выражения. Например, операция P=a+b+с – имеет смысл (переменной P присвоить значение а+b+с, а выражение а+b+с=P – бессмыслица).
ПРИМЕР 5.3. Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка.
Входные данные: R – радиус основания цилиндра, h – высота цилиндра, ρ –плотность материала слитка.
Выходные данные: m – масса слитка, V – объем, S – площадь основания.
Формулы для расчётов:
S=2πR;
V=πR2h;
m=ρV.
ПРИМЕР 5.4. Заданы длины двух катетов в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника и величину его углов.
Входные данные: а, b – длины катетов.
Выходные данные: с – длина гипотенузы, S – площадь треугольника, α, β –углы.
Формулы для расчётов:
;
β=arctg(b/a);
α=π/2-β;
S=ab/2.
ПРИМЕР 5.5. Имеется три ячейки памяти А, В и С. Поменять их содержимое местами в любом направление.
Домашнее задание:
Составить блок-схемы к оставшимся примерам самостоятельно.