Читайте также:
|
|
Структура оператора имеет вид:
WHILE <условие> DO <оператор>;
WHILE, DO – зарезервированные слова (WHILE – пока; DO – выполнить);
<условие> – выражение логического типа;
<оператор> – произвольный оператор Турбо Паскаля.
Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу.
Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с предусловием.
Решение: Фрагмент программы с оператором цикла запишется в виде:
s:=0; i:=1;
while i<=10 do
Begin
s:=s+i;
i:=i+1;
End;
Writeln(‘s=’, s);
В примере рассматривается составной оператор цикла, тело цикла заключено в операторные скобки.
Оператор цикла REPEAT…UNTIL с постусловием
Структура оператора имеет вид:
REPEAT <тело_цикла> UNTIL <условие>;
REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);
<тело_цикла> – произвольная последовательность операторов Турбо Паскаля; <условие> – выражение логического типа.
Операторы, входящие в <тело_цикла>, выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.
Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с постусловием.
Решение: Фрагмент программы с оператором цикла запишется в виде:
s:=0; i:=1;
repeat
s:=s+i;
i:=i+1;
Until i>10;
Writeln(‘s=’,s);
В пример цикл выполняется пока переменная i£10, при i>10 цикл закончится.
Пример: Написать программу циклического алгоритма рис.11.
В цикле вычислить значение функции z= x*y при условии, что одна из переменных - x меняется в каждом цикле, а другая переменная- у не меняется и может быть любым целым числом.
Решение: Программа алгоритма цикла со счётчиком имеет вид:
PROGRAM PR5;
Var
x, y, z, i, n:integer;
begin
{циклический алгоритм}
writeln (‘ввести x, y, количество циклов-n’);
readln (x, y, n);
for i:=1 to n do {оператор цикла с параметрами}
begin
z:=x*y;
Writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z);
x:=x+1;
End; {конец оператора цикла с параметрами}
End.
Если неизвестно количество циклов, то следует выбрать любой из двух операторов цикла: с предусловием или с постусловием.
Пример: Пока y>x вычислить у=у-x,, если y=30, x=4. Вывести на экран количество циклов и значения переменной y в цикле. Алгоритм этой задачи представлен в виде блок-схемы рис.12.
Решение: Программа алгоритма цикла с предусловием имеет вид:
PROGRAM PR6;
Var
i, x, y: integer;
begin
{циклический алгоритм}
x:=4; y:=30; i:=0;
{оператор цикла с предусловием}
while y>x do
begin
y: = y – x;
i:=i+1;
readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);
end; {конец оператора}
end.
В примере используется оператор цикла с предусловием, который работает при условии y>x. Условие проверяется при входе в цикл.
Пример: Составитьпрограмму для алгоритма, представленного на рисунке 13, используя оператор цикла с постусловием. Цикл выполняется при условии y>x, но в конце оператора проверяется условие выхода из цикла (y<=x).
Решение: Программа алгоритма цикла с постусловием имеет вид:
PROGRAM PR7;
Var
i, x, y: integer;
begin
{циклический алгоритм}
x:=4; y:=30; i:=0;
{оператор цикла с постусловием}
repeat
y: = y – x;
i:=i+1;
readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);
until y<=x; {конец оператора}
end.
Дата добавления: 2014-12-19; просмотров: 39 | Поможем написать вашу работу | Нарушение авторских прав |