КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритмы циклической структуры
Алгоритмы циклической структуры являются наиболее распространённым видом алгоритмов. В алгоритмахциклической структуры в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Классическим примером использования структуры «Цикл» является задача табулирования функции. Задача табулирования (получение таблицы) некоторой функции y = f (x) сводится к вычислению значений этой функции при параметре цикла х, изменяющемся с постоянным шагом Dx в заданном диапазоне от начального значения аргумента xn до конечного значения xk. На экран монитора выводится ](xk – xn)/ Dx [+ 1 пар значений аргумента x с помощью оператора вывода, расположенного внутри тела цикла. Скобки ][ означают, что берётся целая часть от деления. Пример. Вычислить значение функции y (x) = x 2+ 1,5 при изменении аргумента x в диапазоне xn ≤ x ≤ xk с шагом Dx. Вывести таблицу значений x и y. Визуальное представление алгоритма решения задачи в виде цикла типа «ПОКА» с предусловием дано на рисунке 9.13
Рис. 9.13. Визуальное представление алгоритма табулирования функции в виде цикла типа «ПОКА» − цикл с предусловием
Это цикл с заданным числом повторений ](xk – xn)/ Dx [ + 1. Перед первым выполнением цикла необходимо задать начальное значение аргумента x, равное xn, а затем ](xk – xn)/ Dx [ + 1 раз выполнить вычисление и вывод значений функции y. При каждом новом выполнении цикла необходимо изменять аргумент на величину шага, равного Dx. Чтобы процесс не был бесконечным, необходимо задать условие повторения или окончания цикла. В схеме циклического алгоритма присутствуют обязательные блоки в этих структурах: установка начального значения параметра (блок 4), проверка условия достижения конечного значения параметра (блок 5), изменение параметра (блок 8). Телом данного циклического процесса являются блоки 5, 6, 7 и 8. Параметром данного цикла является переменная x. Представим данную схему циклического алгоритма с помощью цикла типа «ДЛЯ», или цикла с параметром, который является модификацией цикла «ПОКА» для ситуации, когда заранее известно количество повторений некоторых действий. В этом случае все три необходимых блока – блок 4, блок 5 и блок 8 – собираются в один блок – блок 4 (рис. 9.14), в котором указываются начальное и конечное значения параметра и шаг изменения.
Рис. 9.14. Визуальное представление алгоритма табулирования функции в виде цикла типа«ДЛЯ», или цикла с параметром
На рисунке 9.14 блок 4 для большей наглядности изображён в «развёрнутом» виде. Общепринятым является компактное изображение такого блока в виде символа «Подготовка» (рис. 9.15). Именно такое представление мы будем использовать в дальнейшем. Если dx отсутствует, то по умолчанию dx = 1.
Рис. 9.15. Представление цикла с параметром символом «Подготовка»
Приведем несколько тестовых заданий с решениями. Тестовое задание 9.9. Укажите, какие результаты будут выведены на экран монитора при выполнении следующего фрагмента алгоритма (рис. 9.16):
Рис. 9.16. Рисунок к заданию 9.9
Решение
Таким образом, данный фрагмент алгоритма описывает задачу табулирования (получение таблицы) функции y = f (х) = x 2+2. Вычисляются значения этой функции при параметре цикла х, изменяющемся с постоянным шагом Dx = 2 в заданном диапазоне от начального значения аргумента x n =5 до конечного значения xk = 10. На экран выводится ](xk – xn)/ Dx [+ 1=3 пар значений аргумента x с помощью блока вывода, расположенного внутри тела цикла. Результатом выполнения данного циклического алгоритма является следующий список значений (аргумента x и функции y):
5 27 7 51 9 83
Так как в алгоритме сначала выполняется действие, а потом проверка окончания циклического процесса, следовательно, в данном алгоритме реализована разновидность базовой управляющей структуры «цикл с постусловием» типа «ДО». Блоки 2÷5 являются телом цикла. Переменная x − параметр цикла. Количество повторений цикла − 3. Этот же алгоритм может быть реализован в виде «цикла с предусловием» (рис. 9.13) и «цикла с параметром» (рис. 9.14).
Тестовое задание 9.10. Укажите, какие результаты будут выведены на экран монитора при выполнении следующего фрагмента алгоритма (рис. 9.17):
Рис. 9.17. Визуальное представление алгоритма накопления суммы
Решение.
Количество повторений цикла − 4. Нетрудно увидеть, что в данном фрагменте описан алгоритм накопления суммы, в данном алгоритме y = 0+1+2+3+4. Присвоение начального значения переменной y, в которой накапливается сумма, выполняется перед циклом. Вывод результата, поскольку он единственный, осуществляют после окончания работы цикла.
Тестовое задание 9.11. Укажите, какие значения примут переменные a и b после выполнениия следующего фрагмента алгоритма (рис 9.18):
Рис. 9.18. Фрагмент схемы алгоритма к заданию 9.11
Решение. Выполним алгоритм последовательно.
Переменная b после окончания циклического процесса равна 10, а переменная а приняла значение 4. Данный алгоритм представляет собой «цикл с предусловием». Количество повторений тела цикла равно 3.
Дата добавления: 2014-10-22; Просмотров: 458; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |