READLN(N);
S:=0; WHILE S<N do BEGIN X:=RANDOM(11); S:=S+X; END; END.
Оператор цикла REPEAT
Это цикл с постусловием. Он имеет следующую структуру:
REPEAT <Тело цикла> UNTIL <условие>
Все операторы, входящие в тело цикла, повторяются, пока не выполнится условие выхода из цикла, стоящее после слова UNTIL. После этого цикл заканчивает свою работу. В тело цикла можно включать любое количество операторов, не оформляя их, как составной оператор.
Пример: Составить программу, которая генерировала бы случайные числа в диапазоне от 0 до 10 включительно до тех пор, пока их сумма не превысит некоторое число N.
VAR X,S,N:INTEGER; BEGIN WRITE(‘Введите число N=’); READLN(N); S:=0; REPEAT X:=RANDOM(11); S:=S+X; UNTIL S>N; END.
Сравнивая три циклических оператора можно отметить следующее: · Если точно известно, сколько раз нужно повторять цикл, то лучше использовать оператор FOR. · Если проверку условия повторения цикла следует выполнить до выполнения оператора, то следует использовать цикл WHILE. · Если требуется, чтобы тело цикла повторялось хотя бы один раз, а условие выхода из цикла нужно проверить после выполнения всех операторов тела цикла, то целесообразно использовать цикл REPEAT. · Для бесконечного повторения цикла можно использовать: WHILE TRUE DO <оператор> или REPEAT <тело цикла> UNTIL FALSE.
|