Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Цикл с постусловием

Читайте также:
  1. Оператор цикла с постусловием (repeat until)
  2. Оператор цикла с постусловием.
  3. Цикл с постусловием
  4. Цикл с постусловием

Цикл с постусловием – это цикл Repeat. Он имеет вид:

REPEAT

<оператор 1>; ... <оператор N>

UNTIL <логич.выражение>

Оператор Repeat организует повторяющееся выполнение нескольких операторов до тех пор, пока не станет истинным условие, стоящее в Until-части. Тело цикла обязательно выполняется хотя бы один раз. Таким образом, в этом цикле логическое выражение – это условие выхода из цикла. В первом цикле выполняется тело цикла, затем вычисляется логическое выражение, если оно ЛОЖЬ, то цикл повторяется и снова проверяется логическое выражение. Цикл завершится, когда значение логического выражения станет ИСТИНА. Все правила записанные для оператора WHILE действительны для оператора REPEAT.

Тело цикла полностью REPEAT совпадает с телом цикла WHILE. Однако если в операторе REPEAT оно ограничивается служебными словами-скобками REPEAT и UNTIL, то в цикле WHILE тело цикла определяется составным оператором, образованным при помощи операторных скобок Begin и end.

При создании циклических алгоритмов Турбо Паскаль позволяет использовать процедуры Continue и Break. Процедура Continue досрочно завершает очередной шаг цикла, передает управление на заголовок. Процедура Break реализует немедленный выход из цикла.

ПРИМЕР 1: Величину Y=A·X2требуется вычислить для следующих значений X:0,2,4,6,8,10. Следовательно, цикл необходимо повторить шесть раз. Программу с использованием этого оператора назовем “OREPEAT”.

 

Program OREPEAT;

Uses Crt;

Const A=2;

XMIN=0; {Минимальное значение X}

XMAX=10; { Максимальное значение X }

HX=2; {Шаг, может быть вещественным}

Var X,Y:Integer;

Begin

ClrScr;

X:=XMIN; {Начальное значение аргумента}

REPEAT

Y:=A*Sqr(X);

Writeln(‘X=’:4,X:3,’ A=‘, A,‘ Y=’:5,Y:4);

X:=X+HX; {Изменение значения аргумента}

Until X>XMAX; {Постусловие, условие выхода из цикла}

Readln;

End. {OREPEAT}

 

Перед циклом произойдет присваивание аргументу X начального значения XMIN. Далее будет выполняться тело цикла – последовательность операторов между служебными словами repeat (повторять) и until (до тех пор пока). На его первом шаге будет вычислено значение Y для X=XMIN и распечатаются результаты:

«X=0 Y=0»

После этого произойдет изменение величины аргумента: к первоначальному его значению XMIN будет добавлен шаг HX. После этого все операторы тела цикла окажутся выполненными и осуществится проверка условия выхода из цикла. Поскольку на момент первой проверки X=XMIN+HX=2, что меньше XMAX=10, то цикл будет повторен еще раз: будет вычислено значение Y для X=XMIN+HX, распечатаются эти значения X и Y, после чего произойдет увеличение аргумента, он станет равным X=XMIN+2*HX=4, поскольку и в этом случае условие выхода из цикла не выполняется, то цикл REPEAT совершит еще один свой очередной шаг.

Такие операции будут совершаться до тех пор, пока (until) условие выхода из цикла не окажется выполненным, когда X станет равным 12. В этом случае исполнится оператор, следующий после оператора repeat_until. В нашей программе таким оператором является процедура Readln, поэтому результаты программы будут сохраняться на экране до нажатия клавиши Enter.



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

Условие выхода из цикла repeat_until проверяется в конце каждого его шага поэтому он называется циклом с постусловием и выполняется один раз даже тогда, когда условие выхода из цикла выполняется еще до его начала.

 

Блок-схема REPEAT_UNTIL

 

 

ПРИМЕР 2: Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, то на экран выводится результат суммирования.

Program ss;

Var x, s: integer;

Begin

S: =0;

Repeat

Write (‘Ввести число’);

Readln (x);

If x<>999 then s: =s+x;

Until x=999;

Writeln (‘Сумма введенных чисел’, s);

End.


Дата добавления: 2015-07-08; просмотров: 252 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Цикл с предусловием| FOR и FOR

mybiblioteka.su - 2015-2018 год. (0.006 сек.)