Алгоритмы циклической структуры
Алгоритмы циклической структуры являются наиболее распространённым видом алгоритмов. В алгоритмах циклической структуры в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаясятелом цикла.
Классическим примером использования структуры «Цикл» является задача табулирования функции. Задача табулирования (получение таблицы) некоторой функции y=f(x) сводится к вычислению значений этой функции при параметре циклах, изменяющемся с постоянным шагомDxв заданном диапазоне от начального значения аргументаxnдо конечного значенияxk. На экран монитора выводится ](xk–xn)/Dx[+ 1 пар значений аргументаxс помощью оператора вывода, расположенного внутри тела цикла. Скобки ][ означают, что берётся целая часть от деления.
Пример.Вычислить значение функции y(x) = x2+ 1,5 при изменении аргумента x в диапазонеxn≤x≤xkс шагомDx. Вывести таблицу значенийxиy.
Визуальное представление алгоритма решения задачи в виде цикла типа «ПОКА» с предусловием дано на рисунке 9.13
Рис. 9.30. Визуальное представление алгоритма табулирования функции в виде цикла типа «ПОКА» − цикл с предусловием
Это цикл с заданным числом повторений ](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.31. Визуальное представление алгоритма табулирования функции в виде цикла типа «ДЛЯ», или цикла с параметром
На рисунке 9.14 блок 4 для большей наглядности изображён в «развёрнутом» виде. Общепринятым является компактное изображение такого блока в виде символа «Подготовка» (рис. 9.15). Именно такое представление мы будем использовать в дальнейшем. Если dxотсутствует, то по умолчаниюdx = 1.
Рис. 9.32. Представление цикла с параметром символом «Подготовка»
Приведем несколько тестовых заданий с решениями.
Тестовое задание 9.9.
Укажите, какие результаты будут выведены на экран монитора при выполнении следующего фрагмента алгоритма (рис. 9.16):
Рис. 9.33. Рисунок к заданию 9.9
Решение
| Блок 1. Переменной xприсваивается значение 5,x=5. |
1 цикл | Блок 2. Вычисляется значение переменной y=x2+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 цикл | Блок 2. Вычисляется значение переменной с новым значением x = 7,y =x2 + 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. |
3 цикл | Блок 2. Вычисляется значение переменной с новым значением x = 9,y =x2+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(х) =x2+2. Вычисляются значения этой функции при параметре цикла х, изменяющемся с постоянным шагомDx= 2 в заданном диапазоне от начального значения аргументаxn=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.34. Визуальное представление алгоритма накопления суммы
Решение.
| Блок 1. Переменной Yприсваивается значение 0,Y= 0. |
1 цикл | Блок 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. Согласно назначению блока 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. |
3 цикл | Блок 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. |
4 цикл | Блок 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.35. Фрагмент схемы алгоритма к заданию 9.11
Решение.
Выполним алгоритм последовательно.
| Блок 1. а=1, b=1. |
1 цикл | Блок 2. a = 4? 1 = 4? Нет, следовательно, выполняем блок 3. Блок 3. a = a+1=1+1=2, b=b+a=1+2=3. После блока 3 согласно схеме алгоритма всегда выполняется блок 2. |
2 цикл | Блок 2. a = 4?, 2=4? Нет, следовательно, выполняем блок 3. Блок 3. a = a+1=2+1=3, b=b+a=3+3=6. После блока 3 всегда выполняется блок 2. |
3 цикл | Блок 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.
- Информатика
- Режим доступа к электронному аналогу печатного издания: http://www.Libdb.Sssu.Ru
- Содержание
- Предисловие
- Основные понятия информатики
- Понятие информации
- Свойства информации
- Понятие количества информации
- Предмет и задачи информатики
- Информационное общество
- Вопросы и тестовые задания для самоконтроля
- Системы счисления и представление информации в эвм
- Представление (кодирование) данных
- Понятие об основных системах счисления
- Перевод чисел из одной системы счисления в другую
- Представление чисел в различных системах счисления
- Двоичная арифметика
- Арифметические действия над двоичными числами
- Представление чисел в эвм
- Примеры представления целых чисел в шестнадцатиразрядных двоичных кодах
- Представление десятичных чисел в четырёхразрядном коде Грея
- Кодирование информации в эвм
- Базовая таблица кодировки ascii
- Вопросы и тестовые задания для самоконтроля
- Логические основы построения эвм
- Основы алгебры логики
- Операции сравнения
- Примеры операторов сравнения в разных языках программирования
- Логические операции
- Основные логические операторы
- Результаты, возвращаемые логическими операциями
- Основы элементной базы эвм
- Условные обозначения и диаграммы работы логических элементов
- Rs-триггер
- Элементы теории множеств
- Элементы теории графов
- Типы вершин блок-схем алгоритмов
- Вопросы и тестовые задания для самоконтроля
- Технические средства реализации информационных процессов
- История развития эвм
- Классификация эвм
- Архитектура эвм
- Состав персонального компьютера
- Внешние устройства
- Вопросы и тестовые задания для самоконтроля
- Системное программное обеспечение эвм
- Базовые понятия ос
- Классификация операционных систем
- Файловая структура эвм
- Примеры общепринятых расширений для популярных типов файлов
- Файловые системы Microsoft Windows
- Драйверы устройств
- Служебные программы
- Обзор операционных систем unix и Linux
- Обзор операционных систем Windows
- Вопросы и тестовые задания для самоконтроля
- Прикладное и инструментальное программное обеспечение
- Прикладное программное обеспечение общего назначения
- Прикладное программное обеспечение специального назначения
- Инструментальное по
- Нумерация версий программ
- Правовой статус программ
- Текстовые редакторы и процессоры
- Программы подготовки презентаций
- Вопросы и тестовые задания для самоконтроля
- Электронные таблицы
- Основные понятия электронных таблиц Excel
- Ввод, редактирование и форматирование данных
- Вычисления в таблицах
- Диаграммы
- Вопросы и тестовые задания для самоконтроля
- Модели решения функциональных и вычислительных задач
- Моделирование как метод познания
- Классификация моделей
- Классификация видов моделей
- Компьютерное моделирование
- Информационные модели
- Примеры информационных моделей
- Базы данных
- Искусственный интеллект
- Вопросы и тестовые задания для самоконтроля
- Основы алгоритмизации
- Основные этапы компьютерного решения задач
- Понятие алгоритма и его свойства
- Исполнители алгоритмов
- Способы описания алгоритмов
- Обозначение и функциональное назначение наиболее часто употребляемых символов в схемах данных и программ
- Базовые управляющие структуры алгоритмов (основные алгоритмические конструкции)
- 2) Альтернатива (ветвление);
- 3) Итерация1 (цикл).
- Алгоритмы линейной структуры
- Алгоритмы ветвящейся структуры
- Алгоритмы циклической структуры
- Способы комбинации базовых управляющих структур (основных алгоритмических конструкций)
- Примеры комбинации основных алгоритмических структур
- Вопросы и тестовые задания для самоконтроля
- Основы программирования на языках высокого уровня
- Основные понятия языков программирования
- Примеры использования имён
- Операторы в арифметических и логических выражениях
- Типы данных и операторы описания переменных
- Некоторые базовые типы переменных
- Описание переменных в разных языках
- Синтаксис операторов описания сложных типов переменных
- Основные операторы
- Синтаксис некоторыхоператоров
- Вопросы и тестовые задания для самоконтроля
- Основные операторы языка visual basic for applications
- Оператор присваивания
- Примеры использования оператора присваивания
- Условный операторIf … then
- Оператор выбора варианта*
- Операторы цикла
- Оператор циклаFor … next
- Математические функции
- Краткие сведения о математических функциях в vba и Паскале
- Функции обработки строк*
- Краткие сведения о строковых функциях
- Функции преобразования данных
- Краткие сведения о функциях преобразования данных
- Вопросы и тестовые задания для самоконтроля
- Технологии программирования
- Концепция программирования
- Характеристика трудоёмкости разработки программ
- Структурное и модульное программирование
- Рекурсивные алгоритмы *
- Объектно-ориентированное программирование
- Вопросы и тестовые задания для самоконтроля
- Языки и системы программирования
- Уровни языков программирования
- Системы программирования
- Классификация языков программирования
- Процедурные языки программирования
- Объектно-ориентированные языки
- Декларативные языки
- Языки программирования для баз данных и компьютерных сетей
- Языки моделирования *
- Вопросы и тестовые задания для самоконтроля
- Основные понятия компьютерной графики
- Виды компьютерной графики
- Графические форматы
- Цветовые модели *
- Программные средства создания растровых изображений
- Программы векторной графики
- Программные средства обработки трехмерной графики
- Вопросы и тестовые задания для самоконтроля
- Основные понятия баз данных
- Задачи, решаемые с помощью баз данных
- Классификация бд
- Реляционная модель данных
- Свойства полей базы данных
- Типы данных
- Безопасность и объекты баз данных
- Проектирование баз данных *
- Вопросы и тестовые задания для самоконтроля
- Средства автоматизации проектных, опытно-конструкторских и научно-исследовательских работ.
- Задачи, решаемые с помощью систем автоматического проектирования
- Программные продукты MathWorks
- Сапр в легкой промышленности
- Вопросы и тестовые задания для самоконтроля
- Основы компьютерных сетей
- Основы передачи данных
- Назначение и классификация сетей
- Сетевая модель osi/iso
- Сетевое оборудование
- Основные стандарты и протоколы
- Т Вопросы и тестовые задания для самоконтроля
- Глобальная сеть интернет
- Подключение к Интернет
- Службы Интернет
- Поиск информации в Интернете
- Наиболее известные и популярные поисковые системы
- Поиск с использованием языка запросов *
- Логические операторы
- Вопросы и тестовые задания для самоконтроля
- Основы информационной безопасности
- Угрозы информационной безопасности
- Методы и средства защиты информации
- Правовые основы информационной безопасности
- Ответственность за преступления в области информационных технологий
- Криптографические механизмы защиты информации
- Компьютерные вирусы и вредоносные программы
- Методы защиты от вирусов
- Вопросы и тестовые задания для самоконтроля
- Библиографический список
- Учебное издание информатика Учебное пособие