Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
31
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

Оператор цикла Repeat…Until

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

Формат:

Repeat

<тело цикла>;

Until <условие>;

Условие – выражение булевского типа. При написании условия допустимы булевские операции (And, Or, Not) и операции отношения. Операторы, заключенные между словом Repeat и Until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат выражения –False, тело цикла выполняется еще раз, если результат – True, то происходит выход из цикла.

Особенности выполнения оператора Repeat

  1. Тело цикла выполняется, по крайней мере, один раз, так как условие проверяется после выполнения тела цикла.

  2. Тело цикла выполняется пока условие False.

  3. В теле цикла может находиться произвольное число операторов без операторных скобок Begin …End.

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

Например:

D:=1; S:=0;

Repeat

S:=S+D;

Until (D>100);

{бесконечный цикл}

D:=1; S:=0;

Repeat

S:=S+D;

D:=D+1; {изменение переменной, влияющей на условие}

Until (D>100);

{цикл имеет завершение}

  1. Чтобы прервать выполнение оператора Repeat досрочно, необходимо использовать процедуру Break, которая прерывает выполнение циклов. Процедура Continue начинает новую итерацию цикла, даже если предыдущая не была завершена.

Примеры решения задач

  1. Составить программу ввода отрицательного числа.

Var X:Integer;

Begin

Repeat

Write(‘Введите отрицательное число’);

ReadLn(X);

If X>=0 Then WriteLn(‘Введено неправильное число’);

Until X<0;

End.

  1. Просуммировать натуральные числа от 1 до 50 и вывести результат вычислений на экран.

Var I,Sum:Integer;

Begin

Sum:=0;

I:=0;

Repeat

I:=I+1;

Sum:=Sum+I;

Until I=50;

WriteLn(‘Сумма чисел от 1 до 50 = ’),Sum;

End.

  1. В подъезде N ступенек. Сколько шагов будет сделано, если шагать через 3 ступеньки (один шаг – три ступеньки).

Var S, KS, N: Byte;

{S-подсчет количества ступенек, KS-количество шагов}

Begin

S:=0; KS:=0;

Repeat

S:=S+3;

KS:=KS+1;

Until I>N;

WriteLn(‘Количество шагов= ’,KS);

End.

Примеры для самостоятельного решения:

  1. Составить программу ввода натурального числа в интервале от N до M.

  2. начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.

Оператор повтора While

Этот оператор называется циклом с предусловием, т.к. проверка условия осуществляется до начала очередной итерации.

Формат:

While <условие> Do

<тело цикла>;

Цикл выполняется, пока условие истинно. Как только условие нарушается, выполнение цикла завершается

Особенности выполнения оператора While

  1. Так как условие проверяется до начала выполнения тела цикла, цикл может ни разу не выполнится.

  2. Тело цикла выполняется пока условие True.

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

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

Например:

While True Do Write(‘Бесконечный цикл’);

While 1=1 Do Write(‘Бесконечный цикл’);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]