Repeat повторяй

операторы операторы

until <условие>; до тех пор, пока условие не будет верным

Есть небольшое отличие в организации цикла repeat по сравнению с while: для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin... end. Зарезервированные слова repeat и until действуют как операторные скобки.

Конструкция repeat... until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий. это гарантирует хотя бы одно выполнение действий до завершения цикла.

Например,

a) repeat b) repeat

read (Number); i:= i+1;

Sum:= Sum+Number; writeln (Sqr(i))

until Number=-1 until Number=-1

Задача. Определить, является ли введенное число простым.

Алгоритм решения этой задачи будет следующий. При помощи операции mod проводим проверку всех целых чисел от 2 до введенного числа Number. Мы проверяем является ли очередное проверяемое число делителем нашего числа (значит, остаток от деления введенного числа на проверяемое число равен нулю). Если такой делитель найден, значит, цикл досрочно завершает свою работу на некотором i-том шаге. Если делитель не найден, значит цикл проверил все числа и значение переменной цикла i будет равно конечному значению, т.е. Number. Поэтому, после записи цикла следует анализ значения переменной i и выводится соответствующее сообщение.

Примечание. Напомним, что простым называется число, которое не имеет делителей кроме 1 и самого себя.

Цикл не может продолжаться бесконечно, так как любое число всегда делится само на себя.

Program Prostoe;

Uses

Crt;

Var

i, {возможный делитель}

Number: integer; {исследуемое число}

Begin

ClrScr;

writeln (‘Какое число должно быть проверено? ‘);

read (Number);

i:= 1;

repeat

i:= i+1;

until Number mod i = 0;

if Number=i

then

writeln (Number,’ является простым‘)

else

writeln (Number,’ делится на ‘,i);

readln;

End.

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

Задание. Выберите две задачи, решенных Вами с помощью цикла с предусловием, и решите их с помощью цикла с постусловием.


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



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