
- •Понятие алгоритма и его свойства
- •Детерминированность. Процесс применения правил к исходным данным (путь решения задачи) определен однозначно или по другому - каждый шаг однозначно определяется состоянием системы
- •Формальность - инструкции алгоритма могут выполняться формально (бездумно)
- •Определение алгоритма на основе рекурсивных функций
- •Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)
- •Правила выполнения соединений
- •Линейный алгоритм
- •Разветвляющийся алгоритм
- •Циклический алгоритм
- •Гост 19.701-90;
- •Объекты алгоритма
- •Разработать алгоритм задачи: «ввести два числа, найти их среднее арифметическое, выдать результат» Разработать алгоритм задачи: «ввести два числа, найти среднее геометрическое, выдать результат»
- •Вставить пропущенный текст в программу определения количества нечетных чисел в последовательности, вводимой с клавиатуры до тех пор, пока не будет введена единица.
- •Ввести X
- •Конец пока
Циклический алгоритм
Циклический алгоритм
Циклический алгоритм содержит цикл – многократно выполняемые действия.
Ц
икл)
содержит некоторую последовательность
операций, выполняемую многократно.
цикл
Циклические алгоритмы (повторение).
Алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий называется циклическим. Причем каждая последовательность действий повторяется при изменении каких-либо величин, которые носят название параметров цикла.
Примеры составления схем циклических алгоритмов.
Пример 5. Составить схему алгоритма вычисления значения функции
при
Р е ш е н и е. Сначала рассмотрим словесно-формульный способ записи, в котором порядок решения задачи можно представить в следующем виде:
1.
2.
.
3. Вывод
4.
5.
.
6. Вывод
7.
8.
.
9. Вывод
10. Конец.
В
этом алгоритме этапы вида 1-3 выполняются
последовательно несколько раз (4-6; 7-9).
Это и есть циклический алгоритм. Более
компактную запись алгоритма можно
получить, если ввести проверку условия
<6.
В этом случае
1. =2.
2. .
3. Вывод
4. Проверка <6,
если Да - перейти в п.5;
если Нет - перейти в п.7.
5. = +2.
6. Перейти в п.2.
7. Конец.
Описание алгоритма решения этой задачи графическим способом
представлено
схемой алгоритма (рис.6), из
которой
очевидно, что повторяемый участок
(цикл) состоит из блоков 3-6. Причем при
x=2
и
выводится на печать искомая величина
,
z=ax2+bx+c
аргумента заданному диапазону и
изменяется
значение аргумента, с
которым это новое значение аргумента
входит
в новый цикл. Цикл выполнятся
три раза, то есть до тех пор пока
x=x+2
в блоке решения 5.
Этот алгоритм иногда называют
циклическим
алгоритмом со счетчиком.
Здесь в в блоке 2 задается начальное
значение счетчика . В блоках 3, 4 значения
Рис.6 функции вычисляется и выводится на печать. В блоке 5 проверяется содержимое счетчика. В блоке 6 изменяется содержимое счетчика.
Составим для предыдущего примера схему алгоритма (рис.7), используя для его организации блочный символ-граница цикла.
В блоке 2 задается начальное
значения аргумента. Блоки 3,7
предназначены для организации
x=2
ражают начало и конец цикла.
z=x2+bx+c
параметр цикла ( в данном случае i )
и
его значения. Блоки 4 - 6 входят
в циклическую конструкцию и все
x=x+2
Цикл начинается при значении
параметра
цикла i=1.
В блоках 4 и 5 вычисляется и
выводится
на печать значения
.
В блоке 6 аргумент получает значение
Рис.7 = +2=4. Параметр цикла i в блоке 7
получает значение 1 плюс значение шага 1, то есть i=2. Так как это значение параметра цикла не превосходит его конечного значения, равного 3 (блок 7), то выполняются вычисления в блоках, принадлежащих телу цикла. Выполняются действия в блоках 4, 5, в результате которых вычисляется и выводится на печать значение . В блоке 6 изменяется значение аргумента , который принимает значение =6. После этого параметр цикла i принимает значение i=3. Так как и это значение не превосходит конечного значения i, то опять выполняются блоки в теле цикла, а аргумент принимает значение 8. При этом параметр цикла i принимает значение 4. Так как это больше конечного значения i, то происходит выход из цикла и управление передается в блок 8, где и заканчивается вычислительный процесс.
Кроме рассмотренного простого циклического алгоритма (в котором один цикл) встречаются задачи, использующие несколько циклов, причем внутри одного могут находиться другие циклы. Алгоритм такой структуры называется алгоритмом со структурой вложенных циклов. Цикл, охватывающий другие циклы, называется внешним, а вложенные в него циклы - внутренними. Параметры этих циклов изменяются не одновременно, то есть для каждого значения параметра внешнего цикла параметр внутреннего цикла принимает последовательно все свои значения.
С
хемы
правильного и неправильного вложения
циклов
Рассмотрим пример составления схемы алгоритма с использованием
вложенных циклов.
Пример 6. Вычислить сумму положительных элементов матрицы А, размером 5х5.
Р е ш е н и е. Схема алгоритма представлена на рис.8. Из схемы видно,
что после ввода элементов матрицы А, состоящей из
25
элементов (блок 2), необходимо «обнулить»
нача-
льное значение ячейки S, в которую будет помещено
S=0
нтов матрицы. Далее открываются два цикла с пара-
метрами i и j. Причем цикл с параметром j является
внутренним. Тело цикла содержит два блока (6 и 7) -
блок решения (6), в котором осуществляется проверка
элементов матрицы А на положительность и блок
процесс,
в котором суммируются найденные положи-
тельные элементы матрицы. Для каждого значения
S=S+A(I,J
все значения параметра j внутреннего цикла. Иначе
говоря, проверка элементов матрицы и суммиро-
вание положительных элементов будет осущест-
вляться по строкам. Переход к новой строке
будет происходить всякий раз как только проработает
цикл с значением параметра j равным пяти.
В
блоке (10) выводиться значение полученной
суммы положительных элементов массива А.
Рис.8
Различают два типа структур цикла: цикл с параметром или с повторением и цикл с условием. Циклический алгоритм позволяет компактно описать большое число одинаковых вычислений над разными данными для получения необходимого результата.
Циклы
с параметром используют тогда, когда
количество повторов тела цикла заранее
известно. Схематично такой цикл и
Циклы с условием используются тогда, когда число повторений заранее неизвестно, но задано условие окончания цикла. Причем, если условие окончания цикла проверяется перед выполнением тела цикла, то такие циклические структуры называют циклами с предусловием («Выполнять пока» рис. 4), а если проверка условия происходит после выполнения тела цикла – циклами с постусловием («Выполнять до тех пор пока не» рис.5).
Рис. 4 |
Рис. 5 |
Рис. 6 |
Управляющие структуры
Следование
Альтернатива, неполная альтернатива
Множественный выбор
Цикл с параметром
Цикл с предусловием
Цикл с постусловием
Каждая структура имеет единственный вход и единственный выход.