Оператор цикла с последующим условием
Цикл с последующим условием используется в тех случаях, когда заранее неизвестно число повторений цикла. Общий вид оператора:
Repeat
Оператор 1;
Оператор2;
…
Оператор N;
until условие;
Здесь repeat, until – зарезервированные слова; условие - выражение логического типа.
Оператор цикла с последующим условием действует следующим образом. Операторы циклической части выполняются повторно до тех пор, пока значение логического выражения ложно. Если логическое выражение принимает значение истина, то цикл прекращает свою работу и управление передается на следующий оператор. Если логическое выражение сразу имеет значение истина, то цикл повторяется один раз. Если в операторах цикла не предусмотрено изменение логического выражения и оно все время имеет значение ложь, то цикл будет бесконечным.
Пример. Составить программу нахождения суммы сходящегося ряда с точностью е. Расчет суммы закончить, когда слагаемое по модулю станет меньше заданной точности. В качестве значения е можно взять 0.1, или 0.01, или 0.001.
В данном примере необходимо составить рекуррентную формулу, позволяющую каждое следующее слагаемое вычислять через предыдущее. N! – это выражение равно 1·2·3·…·n. Рекуррентная формула представлена ниже.
Var
s, x, y, e: real;
n: integer;
Begin
WriteLn(‘введите х, е');
ReadLn(x, e);
s := x; (*первоначальная сумма*)
n: = 0;
y := x; (*первое слагаемое*)
Repeat
n := n + 1;
y := y *x * x / (2 * n * (2 * n + 1));
s := s + y;
until abs(y) <= e;
WriteLn(‘сумма= ’,s:12:5,’ при n= ‘,n ,’ y=’,y:12:5);
End.
Вложенные циклы.Циклы могут быть вложены один в другой. При использовании вложенных циклов необходимо соблюдать следующие правила:
– счетчики вложенных циклов должны быть разными;
– вложенный цикл должен полностью находиться внутри внешнего цикла;
– счетчик внутреннего цикла меняется быстрее счетчика внешнего цикла.
Ввод – вывод числовых матриц.Ввод элементов матриц можно осуществлять по одному элементу, по элементам строк, всех элементов. Пусть даны три матрицы А, В, С.
Var
a: array [1..2, 1..3] of real;
c, b: array [1..3, 1..2] of integer;
i, j: integer;
Begin
(*Ввод элементов матрицы по одному элементу*)
WriteLn (‘Ввод матрицы В по одному элементу’);
for i := 1 to 3 do
for j := 1 to 2 do
Begin
Write(‘введите элемент матрицы b[’, i, ‘,’,j,’]’);
ReadLn (b[i, j]);
End;
…
При выполнении данной группы операторов на экран будет выведено:
Дата добавления: 2017-01-29; просмотров: 1355;