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

2.2.3. Вычисление суммы членов бесконечного ряда

Пример 14. Найти сумму бесконечного ряда:

Условие выхода из цикла: sin(nx)/n

В этом примере будем использовать оператор while-do.

Общий вид оператора while-do:

While логическое_выражение do

begin

оператор1;

оператор2;

операторn;

end;

Выполнение оператора while-do:

Если значение логического_выражения равно true (истина), то выполняются операторы цикла, в противном случае происходит выход из цикла.

Программа Схема алгоритма

P rogram Prim14;

var

a,s,x,eps : real;

n : integer;

begin

writeln('Введите x, eps');

readln(x,eps);

s:=0;

n:=1;

a:=sin(x);

while abs(a)>eps do

begin

s:=s+a;

n:=n+1;

a:=sin(n*x)/n;

end;

writeln('s=', s:8:3);

end.

Исходные данные: Результат:

x = 3.48; eps = 0.0001 s= -0.168

Пример 15. Найти сумму ряда

Условие выхода из цикла: xn/n!

Указания. 1. В качестве начальных приближений переменных выберем следующие значения:

s:=0; n:=1; a:=x; где а - очередной (текущий) член ряда.

2. Каждый последующий член ряда будем получать умножением предыдущего члена на дробь x/n и умножать на –1, т.к. ряд знакопеременный, т.е. будем вычислять по формуле: a:= -a*x/n.

Программа Схема алгоритма

P rogram Prim15;

var

a,s,x,eps : real;

n : integer;

begin

writeln('Введите x,eps');

readln(x,eps);

s:=0;

n:=1;

a:=x;

while abs(a)>eps do

begin

s:=s+a;

n:=n+1;

a:= -a*x/n;

end;

writeln('s=', s:8:3);

end.

Исходные данные: Результат:

x = 1.3; eps = 0.0001 s= 0.727

2.3. Сложные циклы

Сложные циклы – это циклы, содержащие внутри себя другие циклы, называемые вложенными.

Цикл, не входящий в другие циклы, но содержащий в себе другие циклы, называется внешним циклом.

Цикл, входящий в другие циклы, но не содержащий в себе другие циклы, называется внутренним циклом.

2.3.1. Пример алгоритма, содержащего вложенный цикл

Пример 16. Вычислить элементы вектора C(n), который является произведением матрицы А(n,n) на вектор B(n). Причем элементы вектора B(n) вычисляются по формулам:

где i=1,2,…,n.

Указания.

1. Для вычисления элементов вектора B нужно организовать циклический процесс, внутри которого присутствует разветвление.

2. Для организации разветвления можно использовать значение логического выражения (i mod 2) = 0. Если его значение равно true, т.е. остаток от деления значения индекса на 2 равен нулю, то индекс чётный, иначе – нечётный.

3. Элементы вектора C рассчитываются по формулам:

.

4. Для вычисления элементов вектора C используются два цикла: внутренний с параметром j и внешний с параметром i.

Пусть элементы матрицы A(n,n) и вектора B(n)вещественные числа и пусть n<=10.

На следующей странице представлена схема алгоритма, реализующего процесс решения данного примера.