2. Для заданой точности eps:
| Код | program Project2;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
const eps = 0.001;
var a, s, x, u, p, y, z, dx : real; f : longint; n, k : integer;
begin setconsoleoutputcp(1251); write('введите начало и конец отрезка '); readln(y, z); dx := (z - y) / 10; x := y; writeln('x сумма ряда sin(x)'); while x <= z do begin a := 1; f := 1; k := 1; s := 1; n := 1; repeat a := a * x * x; f := f * (2 * n) * ( 2 * n + 1); k := -k; u := k * a / f; s := s + u; inc(n); until abs(u) < eps; p := sin(x) / x; write(x:3:5, ' '); write(s:3:5, ' '); writeln(p:3:5); x := x + dx; end; readln; end.
|
На отрезке [1..2] дает погрешность в 0,00001 1. Для заданного количества слагаемых:
| Код | program Project2;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
var a, s, x, u, p, y, z, dx : real; f : longint; n, count, k : integer;
begin setconsoleoutputcp(1251); write('введите начало и конец отрезка '); readln(y, z); write('введите число слагаемых '); readln(count); dx := (z - y) / 10; x := y; writeln('x сумма ряда sin(x)'); while x <= z do begin a := 1; f := 1; k := 1; s := 1; for n := 1 to count do begin a := a * x * x; f := f * (2 * n) * ( 2 * n + 1); k := -k; u := k * a / f; s := s + u; end; p := sin(x) / x; write(x:3:5, ' '); write(s:3:5, ' '); writeln(p:3:5); x := x + dx; end; readln; end.
|
На отрезке [1..2] при count = 5 вообще не дает погрешности |