Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр_3_циклы_часть1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
736.77 Кб
Скачать

Краткие теоретические сведения

Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. Изменяющаяся в цикле переменная называется параметром цикла.

Для организации цикла необходимо выполнить следующие действия:

1) задать перед циклом начальное значение параметра цикла;

2) изменять параметр перед каждым новым повторением цикла;

3) проверять условие повторения цикла;

4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.

В языке Паскаль существует 3 вида циклов:

1) цикл с параметром или цикл типа for,

2) цикл с предусловием или цикл типа while,

3) цикл с постусловием или цикл типа repeat ... until.

Оператор цикла с параметром

Блок-схема, соответствующая циклу с параметром, представлена на рис. 1.

Здесь i – параметр цикла; i0 – начальное значение параметра; iTконечное значение параметра; iSшаг приращения параметра (в случае языка Pascal +1 либо –1).

Циклическая ветвь блок-схемы выполняется для всех i, начиная с i0 и кончая iT с шагом iS (т.е. для i0 , i0+iS , i0+2iS , i0+3iS , … ). Как только i выйдет за пределы интервала [i0 ,iT], повторения прерываются и программа выходит из цикла.

Рис. 1 Блок-схема цикла с параметром

 Оператор цикла с параметром на языке Pascal имеет следующий формат:

For i:=i0 to iT do <оператор>

Здесь For, to, do – зарезервированные слова («для», «до», «выполнить»);

i (параметр цикла) - переменная типа INTEGER (точнее, в общем случае, любого порядкового типа);

i0 (начальное значение) и iT (конечное значение параметра) – константы или выражения того же типа;

<оператор> - произвольный оператор языка Pascal (тело цикла). В качестве оператора может выступать расширенный оператор с операторными скобками beginend.

Шаг приращения параметра при этом постоянен и равняется +1.

При выполнении оператора For вначале вычисляется выражение i0 и выполняется присваивание i:=i0 . После этого циклически повторяется:

-  проверка условия i<= iT ; если условие не выполнено, то оператор For прекращает свою работу;

-выполнение тела цикла <оператор>;

-наращивание переменной цикла на единицу.

Если условие не выполняется в самом начале работы оператора For, то исполняемый оператор не будет выполнен ни разу.

Существует и другая форма записи оператора For, при которой шаг приращения параметра принимает значение –1. В этом случае оператор For будет иметь следующий вид:

For i:=i0 downto iT do <оператор>

Пример 1. Вычислить функцию f=x+e -x при х=0, 1, 2, …, 10 и распечатать полученные значения в табличном виде.

Возможный текст программы:

Цикл с предпроверкой условия

Оператор цикла с предпроверкой условия WhileDo схематично представлен в виде блок-схемы на рис.2 и имеет следующий формат:

While <условие> Do <оператор>

Здесь While, Do – зарезервированные слова («Пока [выполняется условие]», «делать»);

<условие> - выражение логического типа;

<оператор> - произвольный оператор, составляющий тело цикла (включая случай расширенного оператора).

Если условие имеет значение “Истинно” (True), то выполняется <оператор>, после чего проверка условия повторяется. Если условие имеет значение “Ложь” (False), то оператор While прекращает свою работу. 

Рис.2 Блок-схема цикла с предпроверкой условия

 Данный оператор может быть использован в тех случаях, когда заранее не известно предстоящее число повторений.

Пример 2. Дан бесконечный ряд вида

Найти сумму данного бесконечного ряда с заданной точностью e=0.01, т.е. продолжать процесс суммирования до тех пор, пока модуль разности между суммами для k-го и (k+1)-го шага не станет меньше e.