Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ГОСТу.doc
Скачиваний:
19
Добавлен:
14.11.2019
Размер:
10.65 Mб
Скачать

6. Лабораторная работа №3: Циклический процесс

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

6.1. Общие сведения

Процесс называется циклическим, если вычисления в нём многократно повторяются по одним и тем же формулам, при разных значениях входящих в них переменных. Различают циклы со списком (или со счётчиком) и итерационные. Для первой схемы число выполненных циклов заранее известно или подсчитывается с помощью некоторой переменной (счётчика), для которой задаются начальное и конечное значения, а так же шаг, с которым меняется эта переменная при каждом новом повторении цикла. Переменная, меняющая своё значение при выполнении цикла, называется параметром, а сам цикл - циклом с параметром. В итерационном процессе вычислений число повторений цикла заранее неизвестно. Исходя из принципов структурного программирования, циклические алгоритмы могут быть построены по схеме с предусловием, с использованием блока модификации (цикл с параметром) и на основе схемы с постусловием.

В цикле с параметром задаётся переменная, выполняющая роль параметра цикла, её начальное и конечное значения, приращение (шаг изменения значения параметра цикла).

Блок-схема алгоритма цикла с параметром представлена на рис. 6.1.

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

Условные циклы предназначены для организации итерационных вычислительных процессов. Они подразделяются на циклы с предусловием и циклы с постусловием. В цикле с предусловием перед выполнением тела цикла осуществляется проверка значения логического выражения или переменной логического типа, если значение этих величин удовлетворяют условию работы цикла, то выполняется тело цикла, в противном случае, выполняется следующий за циклом оператор. Таким образом, операторы тела цикла с предусловием могут быть не выполнены ни одного раза. На рис. 6.2 (а) представлена блок-схема алгоритма цикла с предусловием.

Цикл с постусловием предназначен для организации циклических алгоритмов, в которых проверка условия работы цикла выполняется после исполнения операторов тела цикла. По этой причине, операторы тела цикла всегда будут выполнены хотя бы один раз. На рис. 6.2 (б) представлена блок-схема алгоритма цикла с постусловием.

Рис. 6.2 - Блок-схема алгоритма цикла с предусловием и с постусловием

6.2. Цикл с параметром

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

For i:=n To k Do <Оператор>;

где i - параметр цикла;

n - начальное значение параметра цикла;

k - конечное значение параметра цикла;

<Оператор> - оператор, являющийся телом цикла;

For, To, Do - служебные слова.

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

Например: For i:=1 To 20 Do <Оператор>;

При выполнении данного цикла, параметр i (целочисленный) будет при каждой итерации (повторении) принимать последовательно значения 1, 2, …,20. Приращение (шаг изменения значения) параметра для такого цикла всегда равен 1. Начальное значение параметра всегда должно быть меньше конечного.

Если же i, n, k символьного типа n и k имеют значения, например, 'A' и 'Z' соответственно, то переменная i принимает последовательные значения в порядке букв алфавита: 'А', 'В', 'С', ... ,'Z'.

Возможна и другая конструкция цикла For.

For i:=n DownTo k Do <Оператор>;

Отличие заключается в том, что приращение параметра для такого цикла всегда равно -1 и начальное значение всегда должно быть больше конечного.

Если оператор, содержащийся в теле оператора For, изменяет значение параметра, то это является ошибкой. После выполнения оператора For значение параметра становится неопределенным, если только выполнение оператора For не было прервано с помощью оператора перехода.

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

Например:

For i:=n DownTo k Do

Begin

<Оператор 1>;

<Оператор 2>;

<Оператор N>;

End;

Пример 1. Определение суммы квадратов чисел от 1 до 9.

Program Example_6_1;

Uses Crt; {Подключаем модуль}

Var

Num,Sqnum,Sum:Integer; {Описываем переменные}

Begin {Начало программы}

ClrScr; {Очистка экрана}

Sum:=0; {Начальная сумма равна нулю}

For Num:=1 To 9 Do {Задаем цикл по Num}

Begin {Используем операторные скобки}

Sqnum:=Sqr(Num); {результат от (Num2) в Sqnum}

Sum:=Sum+Sqnum; {Накопление суммы}

End; {Закрываем операторные скобки}

WriteLn ('Сумма = ',Sum); {Выводим результат}

End. {Конец программы}