Оглавление Оператор while. Вычисление cos(x) разложением в ряд.


Задача.

Программа вводит значение допустимой погрешности eps, число х ( по модулю меньшее 0,7 ) и вычисляет приближенное значение cos(x), используя разложение cos(x) в ряд по формуле:
              x2    x4    x6            x2*n
cos(x) = 1 - --- + --- - --- + ... + -------- + ...
              2!    4!    6!          (2*n)! 
 
Приближение считается полученным, если очередное слагаемое по модулю < eps.

Обсудим план решения.

Текст программы:
Program Cosin1;
var n: word; Cosa: double; xx, slagaem: double; eps,cos1: double;
begin
  n:=0; cosa:= 1; slagaem:= 1;
  writeln('Вычислим косинус заданного угла.');
  write('Введи угол (в радианах, <= 0.7)'); readln(xx);
  write('Введи допустимую погрешность (1E-5)--> '); readln(eps);
  Repeat
    slagaem := -slagaem*sqr(xx)/((n+1)*(n+2));
    Cosa := Cosa + slagaem;
    inc(n,2);
  until abs(slagaem) < eps;
    cos1:= cos(xx);
    writeln('Cosa = ',cosa,' Cos(x) = ',cos1);
    writeln('Погрешность факт. = ',abs(cosa - cos1));
  readln;
end.
---- Результат работы: -----
Вычислим косинус заданного угла.
Введи угол (в радианах, <= 0.7)0.71
Введи допустимую погрешность (1E-5)--> 1e-6
Cosa =  7.58361875956345E-0001 Cos(x) =  7.58361875990508E-0001
Погрешность факт. =  3.41634498468579E-0011
Rambler's Top100
Hosted by uCoz