Студопедия

КАТЕГОРИИ:


Архитектура-(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. На экран монитора выводится ](xkxn)/ Dx [+ 1 пар значений аргумента x с помощью оператора вывода, расположенного внутри тела цикла. Скобки ][ означают, что берётся целая часть от деления.

Пример. Вычислить значение функции y (x) = x 2+ 1,5 при изменении аргумента x в диапазоне xnxxk с шагом Dx. Вывести таблицу значений x и y.

Визуальное представление алгоритма решения задачи в виде цикла типа «ПОКА» с предусловием дано на рисунке 9.13

 

Рис. 9.13. Визуальное представление алгоритма табулирования функции в виде цикла типа «ПОКА» − цикл с предусловием

 

Это цикл с заданным числом повторений ](xkxn)/ Dx [ + 1. Перед первым выполнением цикла необходимо задать начальное значение аргумента x, равное xn, а затем ](xkxn)/ 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

 

Решение

  Блок 1. Переменной x присваивается значение 5, x =5.
цикл Блок 2. Вычисляется значение переменной y = x 2+2=52+2=27. Блок 3. На экран монитора выводятся значения переменных x = 5 и y = 27. Блок 4. Переменной x присваивается новое значение: x = x + 2 = 5 + 2 = 7. Блок 5. Выполняется проверка условия x ≤ 10; подставляя новое значение x = 7, получим 7 ≤ 10; условие выполняется, следовательно, после блока 5 выполняется блок 2.
цикл Блок 2. Вычисляется значение переменной с новым значением x = 7, y = x 2 + 2 = 72 + 2 = 51. Блок 3. На экран выводятся значения переменных x = 7 и y = 51. Блок 4. Переменной x присваивается новое значение: x = x + 2 = 7 + 2 = 9. Блок 5. Выполняется проверка условия x ≤ 10; подставляя новое значение x = 9, получим 9 ≤ 10; условие выполняется, следовательно, после блока 5 выполняется блок 2.
цикл Блок 2. Вычисляется значение переменной с новым значением x = 9, y = x 2+2=92+2=83. Блок 3. На экран выводятся значения переменных x = 9 и y = 83. Блок 4. Переменной x присваивается новое значение: x = x + 2 = 9 + 2 = 11. Блок 5. Выполняется проверка условия x ≤ 10; подставляя новое значение x = 11, получим 11 ≤ 10; условие не выполняется, следовательно, после блока 5 выполняется выход из данного фрагмента алгоритма.

Таким образом, данный фрагмент алгоритма описывает задачу табулирования (получение таблицы) функции y = f (х) = x 2+2. Вычисляются значения этой функции при параметре цикла х, изменяющемся с постоянным шагом Dx = 2 в заданном диапазоне от начального значения аргумента x n =5 до конечного значения xk = 10. На экран выводится ](xkxn)/ 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. Визуальное представление алгоритма накопления суммы

 

Решение.

  Блок 1. Переменной Y присваивается значение 0, Y = 0.
цикл Блок 2 представляет собой символ «подготовка». Его назначение − заголовок цикла (рис. 9.14, блок 4 и рис.9.15), в котором указывается начальное (i н=1), конечное значение параметра цикла i (iк =4) и шаг его изменения (i ш=1). Следовательно, на данном шаге параметр цикла принимает начальное значение i =1. Блок 3. Переменная y принимает новое значение y = y + i =0+1=1. После блока 3 выполняется блок 2.
цикл Блок 2. Согласно назначению блока 2, который представляет собой заголовок цикла (рис. 9.15), на следующем этапе переменная цикла i принимает новое значение, увеличенное на шаг i = i +1=1+1=2, после этого проверяется условие окончания циклического процесса путем сравнения текущего значения параметра цикла i и его конечного значения − i ≤ 4? На данном этапе условие 2 ≤ 4 выполняется, следовательно, блок 3 повторяется для нового значения i. Блок 3. Переменная y принимает новое значение y = y + i = 1+2=3. После блока 3 выполняется блок 2.
цикл Блок 2. Переменная цикла i принимает новое значение, увеличенное на шаг i = i +1=2+1=3, после этого проверяется условие окончания циклического процесса путем сравнения текущего значения параметра цикла i и его конечного значения − i ≤ 4? На данном этапе условие 3 ≤ 4 выполняется, следовательно, блок 3 повторяется для нового значения i. Блок 3. Переменная y принимает новое значение y = y + i =3+3=6. После блока 3 снова выполняется блок 2.
цикл Блок 2. Переменная цикла i принимает новое значение, увеличенное на шаг i = i + 1 = 3 + 1 = 4, после этого проверяется условие окончания циклического процесса путём сравнения текущего значения параметра цикла i и его конечного значения − i ≤ 4? На данном этапе условие 4 ≤ 4 выполняется, следовательно, блок 3 повторяется для нового значения i. Блок 3. Переменная y принимает новое значение y = y + i =6+4=10. После блока 3 снова выполняется блок 2.
  Блок 2. Переменная цикла i принимает новое значение, увеличенное на шаг i = i+1=4+1=5, после этого снова проверяется условие окончания циклического процесса путём сравнения текущего значения параметра цикла i и его конечного значения − i ≤ 4? На данном этапе условие 5 ≤ 4 не выполняется, следовательно, происходит окончание циклического процесса. После блока 2 в этом случае выполняется блок 4.
  Блок 4. На экран монитора выводится y = 10.  

 

Количество повторений цикла − 4.

Нетрудно увидеть, что в данном фрагменте описан алгоритм накопления суммы, в данном алгоритме y = 0+1+2+3+4.

Присвоение начального значения переменной y, в которой накапливается сумма, выполняется перед циклом. Вывод результата, поскольку он единственный, осуществляют после окончания работы цикла.

 

Тестовое задание 9.11.

Укажите, какие значения примут переменные a и b после выполнениия следующего фрагмента алгоритма (рис 9.18):

 

 

Рис. 9.18. Фрагмент схемы алгоритма к заданию 9.11

 

Решение.

Выполним алгоритм последовательно.

  Блок 1. а =1, b =1.
цикл Блок 2. a = 4? 1 = 4? Нет, следовательно, выполняем блок 3. Блок 3. a = a +1=1+1=2, b = b + a =1+2=3. После блока 3 согласно схеме алгоритма всегда выполняется блок 2.
цикл Блок 2. a = 4?, 2=4? Нет, следовательно, выполняем блок 3. Блок 3. a = a +1=2+1=3, b = b + a =3+3=6. После блока 3 всегда выполняется блок 2.
цикл Блок 2. a = 4? 3 = 4? Нет, следовательно, выполняем блок 3. Блок 3. a = a +1=3+1=4, b = b + a =6+4=10.
  Блок 2 a=4? 4=4? Да, следовательно, происходит выход из цикла.

 

Переменная b после окончания циклического процесса равна 10, а переменная а приняла значение 4. Данный алгоритм представляет собой «цикл с предусловием». Количество повторений тела цикла равно 3.

 




Поделиться с друзьями:


Дата добавления: 2014-10-22; Просмотров: 429; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.