Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osnova_Pascal1.doc
Скачиваний:
5
Добавлен:
05.12.2018
Размер:
423.94 Кб
Скачать

Циклы с пред и пост условием:

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

Цикл с постусловием (оператор repeat):

Синтаксис конструкции цикл с постусловием.

REPEAT <оператор 1; оператор 2; ... оператор n;> UNTIL <условие>

REPEAT (рипит) - повторяй.

UNTIL (ан’тил) - до тех пор, пока не станет истинным условие.

Принцип работы оператора REPEAT - повторяй выполнение операторов, стоящих между словами REPEAT и UNTIL до тех пор, пока не станет истинным условие.

С начала компьютер по очереди выполняет операторы, стоящие после слова REPEAT, пока не дойдёт до слова UNTIL. После чего проверяет истинность условия, стоящего после UNTIL. Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и так далее.

Если условие оказывается истинным, то работа оператора REPEAT прекращается и компьютер переходит к выполнению следующего по порядку оператора.

Таким образом, инструкции, находящиеся между REPEAT и UNTIL, выполняется до тех пор, пока условие ложно (значение выражения равно FALSE).

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

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

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

Блок схема

Язык программирования паскаль

PROGRAM название программы

VAR описание переменных

BEGIN

RЕADLN (ввод данных);

REPEAT

ОПЕРАТОР 1 ;

ОПЕРАТОР 2 ;

ОПЕРАТОР n ;

UNTIL (условие)

WRITELN (вывод результата)

END.

Пример:

Возведите число a в степень n (число и значение степени вводится с клавиатуры).

PROGRAM vozvedenie v stepen ;

VAR a : INTEGER ;

n : INTEGER ;

i : INTEGER ;

otvet : INTEGER ;

BEGIN

WRITELN (‘введите число a ’);

READLN (a);

WRITELN (‘введите значение степени n ’);

READLN (n);

otvet := 1;

i := 1;

REPEAT

otvet := otvet *a ;

i := i + 1;

UNTIL i > n ;

WRITELN (a , ‘в степени ‘ , n , ‘ = ‘, otvet);

END.

Задача. Написать программу поиска суммы положительных чисел предшествующих первому нулю.

program g;

var s,x:integer;

Begin

repeat

write('x=');

read(x);

if x>0 then s:=s+x;

until x=0;

writeln('s=',s);

readln

end.

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