Оператор repeat. Процедуры INC и DEC

Вечные циклы

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

Пример использования:

t:=true;

while t do

begin

x:=100;

if x<10 then t:=false;

end;

Инструкция repeat, как и инструкция while, используется в программе если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов во время разработки программы неизвестно и может быть определено только во время работы программы, т. е. определяется ходом вычисления. В общем виде инструкция repeat записывается так:

Repeat

{инструкции}

until условие;

где условие – выражение логического типа, определяющее условие завершения цикла.

Инструкция repeat выполняется следующим образом: сначала выполняются инструкции, следующие за словом repeat. Затем проверяется условие (вычисляется значение выражения условие). Если условие ложно (значение выражения условие равно FALSE), то инструкции цикла (инструкции, находящиеся между repeat и until) выполняются еще раз. Если условие истинно (значение выражения условие равно TRUE), то выполнение цикла прекращается. Таким образом, инструкции, находящиеся между repeat и until выполняются до тех пор, пока условие ложно (значение выражения условие равно FALSE).

Пример использования:

x:=0;

repeat

x:=x+1;

until x=10;

Алгоритм, соответствующий инструкции repeat, представлен на Рисунок 18 - Блок-схема, соответствующая инструкции repeat.

Рисунок 18 - Блок-схема, соответствующая инструкции repeat

Обратите внимание.

Инструкции цикла, находящиеся между repeat и until, всегда будут выполнены хотя бы один раз.

Для того чтобы цикл завершился, необходимо, чтобы инструкции цикла, находящиеся между repeat и until, изменяли значения переменных, входящих в выражение условие

Процедура INC увеличивает порядок на 1 или N и соответствует утверждению X:=X+1 или X: = X + N.

procedure Inc(var X [; N: Longint ]),

где X - переменная порядкового типа, N - выражение типа целого числа.

Процедура DEC уменьшает на 1 или N от переменной и соответствует утверждению X: = X - 1, или X: = X - N.

procedure Dec(var X[; N: Longint]),
где X - переменная порядкового типа, N - выражение типа целого числа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: