Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Ход работы. Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы
Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла. Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу. Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла. Начальные установки могут явно не присутствовать в программе, их смысл состоит в том, чтобы до входа в цикл задать значения переменным, которые в нем используются. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. В языке C++ существует 3 вида циклов: 1) цикл с параметром или цикл типа for, 2) цикл с предусловием или цикл типа while, 3) цикл с постусловием или цикл типа do... while. Во всех циклах повторяющаяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в фигурные скобки, образуя составной оператор. Также во всех типах циклов условие продолжения цикла заключается в круглые скобки. Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение, как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, return и goto. Цикл с параметром или цикл типа for. Для цикла типа for заголовок цикла состоит из трех разделов: инициализации (присваивания начальных значений), проверки условия повторения, модификации (изменения параметров). Разделителем между разделами заголовка цикла типа for служит точка с запятой.
Рисунок 3.1 - Структурная схема оператора цикла с параметром (for)
Основная форма цикла for имеет следующий вид:
for(< список_инициализации>; < условие_продолжения>; < переход_к_следующей_итерации>) < тело_цикла>;
Все три параметра цикла for должны быть разделены точкой с запятой. Перед выполнением цикла выполняются операторы, содержащиеся в первом параметре < список_инициализации> оператора for, затем осуществляется проверка условия продолжения цикла (обычное условное выражение, определяющее, при каких условиях цикл будет продолжен) в параметре < условие_продолжения>, если данное условие принимает истинное значение, то выполняются операторы, образующие тело цикла (< тело_цикла>). Изменение (приращение) обычно используется для изменения параметра цикла каждый раз при повторении цикла. Если условие продолжения принимает ложное значение, то работа цикла завершается, и выполняются операторы, следующие за телом цикла. После выполнения последнего оператора в теле цикла, выполняются < переход к следующей итерации> операторы третьего параметра цикла for. После чего снова производится проверка условия продолжения и процесс повторяется. Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных занятой (операцией «последовательное выполнение»). Областью действия переменных, объявленных в части инициализации цикла, является цикл. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). Рисунок 3.2 - Фрагмент диаграммы деятельности UML, описывающей действия оператора for в C++
В качестве параметра цикла необязательно использовать целочисленный счетчик. Далее показан фрагмент программы, выводящей на экран все буквы английского алфавита: unsignet char ch; for(ch = ‘A’; ch < = ‘Z’; ch++) cout < < ch; Cледующий фрагмент программы показывает как вывести на печать квадраты вещественных чисел от -2 до 3 с шагом 0.1: double x; for(x = -2.; x < = 3.; x += 0.1) cout < < x*x < < endl; С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. Далее показано, как можно найти сумму натуральных чисел от 1 до 10: S = 0; for(i = 1; i < 11; i++) S += i; с использованием операции «запятая» и операции постфиксного инкремента данная задача может быть решена следующим образом: for(S = 0, i = 1; i < 11; S += i++); Цикл for может быть вложенным. В качестве примера рассмотрим программу, печатающую таблицу умножения целых чисел от 0 до 9:
|