Формат оператора
Repeat
Оператор 1;
Оператор 2;
…
оператор N
until выражение ;
В теле цикла может находиться произвольное число операторов без операторных скобок begin и end.
Пример 5.8. Программа вычисления функции y=x*sin(x) на отрезке [1,5]
c шагом 0,5.
Program prog5_8;
Сonst
h:real = 0.5; {шаг вычисления}
Var
x,y:real;
Begin
writeln('функция y=xsin(x) с шагом 0,5');
a:=1; b:=5; x:=a;
Repeat
writeln('x=',x:4:2;'y=',x*sin(x));
x:=x+h;
until x>=b;
end.
Пример 5.9. Вычислить с заданной точностью выражение y= |tg x –x| методом деления отрезка пополам
Programprog5_10;
UsesWinCrt;
Var
x,y,eps:real;
Begin
writeln ('Введите значение точности ');
write ('для вычисления функции tg x – x ');
readln(eps);
writeln ('Введите интервал вычисления ');
write ('для вычисления функции tg x – x ');
readln (x);
Repeat
y:= abs((sin(x)/cos(x))- x)<=eps;
writeln('x=',x:10:8, ' ', 'y=', y:10:8);
x:=x/2;
until abs((sin(x)/cos(x))- x)<=eps;
end.
Оператор цикла с предусловием(цикл while do). Цикл с предусловием целесообразно использовать в программе, если надо выполнить многократно некоторое число операторов, а число повторов заранее не известно и определяется самим ходом вычисления. Примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле. В общем виде цикл имеет следующий формат:
while условие do
Begin
{оператор}
End.
где "условие" - это выражение логического типа,
"оператор" - одиночный или составной оператор.
В цикле while вначале вычисляется условие. Если оно имеет значение true, то оператор выполняется и выражение вычисляется заново. Если выражение имеет значение false, то цикл while завершается и выполнение программы продолжается с оператора, следующим за оператором цикла.
Пример 5.10. Программа возведения числа в степень.
Program Prog5_9;
uses WinCrt;
сonst
h:=1;
Var
a,b:real;
k:integer;
Begin
writeln('возведение чисел от 1 до 10 в степень к );
read(a,k);
while a<=10 do{ Проверка условия}
Begin
k:=exp(k*ln(a)); {возведение в степень}
writeln('a=',a:4:2,' ','k=', k:4:2);
a:=a+h;
end;
end.
Оператор цикла выполняется до тех пор, пока логическое выражение не примет значение false и в отличие от цикла с постусловием, цикл выполняется при значении логического выражения true.
Вложенные циклы.Если телом цикла является циклическая структура, то такие циклы называют вложенными (или сложными). Цикл, содержащий в себе другой цикл, называется внешним. Цикл содержащийся в теле другого цикла, называется внутренним.
Внутренний и внешний циклы могут быть любыми из трех рассмотренных (for, while или repeat). При этом правила организации (построения) как внешнего, так и внутреннего циклов остаются такими же, как и для простого цикла каждого из этих видов.
При построении вложенных циклов необходимо, чтобы все операторы внутреннего цикла должны полностью лежать в теле внешнего цикла. Возможная глубина вложенности циклов (количество уровней) ограничивается только памятью ЭВМ.
Параметры циклов, расположенных на разных уровнях вложенности, изменяются не одновременно. Вначале все свои значения изменит параметр цикла самого “глубокого” уровня при фиксированных (начальных) значениях параметров циклов с менее “глубоким” уровнем. Затем изменяется на один шаг значение параметра цикла следующего уровня вложенности и снова
полностью выполняется самый внутренний цикл и т.д. до тех пор, пока параметры циклов всех уровней не примут все требуемые значения.
При этом, если в сложном цикле с глубиной вложенности k число повторений циклов на каждом уровне равно N0,N1,…,Nk соответственно, то общее количество повторений тела самого внутреннего цикла равно N=N0·N1·…·NK.
Операторы завершения цикла.Выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.
В языке Pascal определена стандартная процедура break для передачи управления на оператор следующий за оператором цикла.
Процедура continue обеспечивает досрочное завершение очередного повторения тела цикла и передачу управления в конец тела цикла.
Дата добавления: 2015-01-13; просмотров: 1133;