
- •Основы алгоритмизации и программирования Этапы решения задач на компьютере
- •Понятие алгоритма. Исполнители алгоритмов. Свойства алгоритмов
- •Типы алгоритмов и формы их представления
- •Разработка алгоритмов методом пошаговой детализации. Вспомогательный алгоритм
- •Разветвляющиеся алгоритмы. Команда ветвления
- •Циклические алгоритмы. Команда повторения
- •Примеры создания алгоритмов
- •Программирование
- •Языки программирования. Компиляция и интерпретация
- •Классификация языков программирования
- •Имя и значение переменной в программировании
- •Типы переменных в программировании
- •Объектно-ориентированный подход в информационных технологиях
- •Вопросы для самоконтроля
Разветвляющиеся алгоритмы. Команда ветвления
Существует
широкий круг задач, при решении которых
необходимо сделать определенный выбор
в зависимости от выполнения некоторых
условий. Процесс решения таких задач
описывается алгоритмом, тип
которого
определяется как ветвящийся
(разветвляющийся). В
разветвляющихся алгоритмах принцип
линейного автоматического перехода от
команды к команде, от действия к действию
в порядке естественного следования не
является всеобщим, так как иногда
возникает необходимость произвольного
перехода к предписанию, то есть нарушения
линейности переходов. Ветвящиеся
алгоритмы допускают два способа
представления –
графический и словесный.
При графическом
представлении алгоритма ветвление
(развилка, выбор дальнейших действий)
организуется с помощью логического
элемента (ромб
с записанным внутри условием), имеющего
один вход и несколько (в простейшем
случае – два) выходов. Назначениелогического
элемента – проверказаданного условия.
В
зависимости от выполнения (истинности)
или невыполнения (ложности) проверяемого
условия возможен выход соответственно
на ветвь «Да» или «Нет». Пример:
Задача:
вычислить у
=|х|.
Дано: х
– значение аргумента.
Требуется: у
- значение функции.
Условие:
Составим
алгоритм решения данной задачи в
графической форме. На схеме наглядно
проявляется важноесвойство
ветвящихся алгоритмов: их
исполнение всегда проходит только по
одному из возможных путей, который
определяется конкретными текущими
условиями, причем в каждом случае от
начала алгоритма (входа) до его конца
(выхода). Это свойство присуще всякому
логически правильно составленному
алгоритму и является признаком правильной
организации ветвлений.
Циклические алгоритмы. Команда повторения
При
составлении алгоритмов решения достаточно
большого круга задач нередко возникает
потребность в неоднократном повторении
одних и тех же команд. Алгоритм,
составленный с использованием многократных
повторений одних и тех же действий
(циклов), называется циклическим. Однако
«неоднократно» не значит «до бесконечности».
Организация циклов, никогда не приводящая
к остановке в выполнении алгоритма (так
называемое «зацикливание»),
является
нарушением требования его результативности
– получения результата за конечное
число шагов.
Рассмотрим графическое
представление циклического
блока алгоритма. В него входят в качестве
базовых следующие структуры: логический
элемент с проверкой условия Р
и блок S,
называемый телом
цикла. Здесь
тело цикла S
расположено после проверки условия Р
(цикл
с
предусловием),
поэтому
может случиться, что при определенных
условиях блок S
не выполнится ни разу. Такой вариант
организации цикла, управляемый
предусловием, называется цикл-пока.
При
словесном представлении алгоритма
команда, организующая повторение в
цикле-пока,
имеет вид:
Пока
Р>0, повторять 8
Конец
цикла
Таким
образом, если Р
не выполняется, то предусмотрен выход
из цикла на команду записанную после
строки «Конец
цикла».
Здесь условие Р
– это условие на продолжение цикла.
Возможен другой случай, когда тело
цикла S
выполняется по крайней мере один раз и
будет повторяться до тех пор, пока не
выполнится условие Р.
Такая организация цикла, когда тело
цикла, расположено перед проверкой
условия Р,
носит название цикла с
постусловием или
цикла-до.
Истинность
условия Р
в этом случае – причина окончания цикла.
Словесная форма команды, организующая
цикл-до,
приведена ниже:
Повторять
S
пока не Р
Конец
цикла
Возможна
ситуация с постусловием и при организации
цикла-пока.
Итак, цикл-до
завершается, когда условие Р
становится истинным, а цикл-пока
– когда Р
становился ложным, т.е. цикл-до
выполнятся «до» истинности условия, а
цикл-пока
выполняется пока – указанное выражение
остается истинным Современные языки
программирования имеют достаточный
выбор операторов, реализующих как
цикл-пока,
так и циклы-до.
Отметим основное
отличительное свойство циклических
алгоритмов: количество
действий, исполняемых в процессе
выполнения алгоритма, может существенно
превышать количество команд, из которых
организован цикл. Чтобы в этом убедиться,
достаточно алгоритм «проиграть», то
есть выполнить его шаг за шагом при
некоторых наборах допустимых исходных
данных.
Рассмотрим один из часто
встречающихся вариантов цикла – так
называемого цикла с параметром. Его
характерная особенность – изменение
управляющей переменной цикла с заданным
шагом Для примера рассмотрим задачу
табулирования функции на заданном
интервале изменения ее аргумента Задача
построить таблицу значений функции
y=tgxна
отрезке [А,В]
с шагом Н.
Дано:
А
– начальное значение аргумента; В
– конечное значение аргумента; Н
– шаг изменения аргумента.
Требуется:
у
– значения функции.
Условие:
у
= tg х,
где х
= А,
А+Н,…,
В.
Представим алгоритм решения задачи
табулирования функции в графическом
виде (цикл с постусловием).
Здесь тело
цикла состоит из двух команд – вычисление
у
и печать значения аргумента х
и соответствующего ему значения функции
у.
Команда
х:=
х+Носуществляет
переход к следующему значению аргумента
х,
являющегося вместе с тем параметром
цикла его управляющей переменной.
Проверка условия, стоящая после выполнения
тела цикла, показывает, что это цикл-до.
Следовательно,
это проверка на окончание работы цикла
при достижении значений х > В.