Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 10.01.2021
Сообщений: 1
1

Вычислить сумму с точностью eps = 0.0001 и сравнить результат с вычисленным через стандартную функцию

10.01.2021, 11:10. Показов 374. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите решить задачу на Паскале. Вычислить y = 1 - x^2/2! + x^4/4! - ... + (-1)^n*x^2*n/(2*n)! + ... с точностью eps = 0.0001 и сравнить результат с вычисленным через стандартную функцию значением y = cos (x).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2021, 11:10
Ответы с готовыми решениями:

Построить блок-схему и написать код в Pascal)
Задание №1. Составить программу для вычисления прибыли по вкладу в зависимости от введенного срока...

Нужно перевести код из Turbo Pascal в Pascal ABC.NET
Доброго времени суток. На форуме находил похожие темы, но к сожалению так и не смог разобраться....

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы
Вот код, он должен рисовать работающею мельницу. uses graphABC,crt; type point=record ...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net?
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode:...

2
Модератор
63394 / 47082 / 32451
Регистрация: 18.05.2008
Сообщений: 114,122
10.01.2021, 13:54 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const e=0.0001;
var n:integer;
    x,t,s:real;
begin
write('x=');
readln(x);
n:=0;
t:=1;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=-t*x*x/(2*n-1)/(2*n);
  s:=s+t;
 end;
writeln('S=',s:0:5);
write('cos(x)=',cos(x):0:4)
end.
0
Модератор
8414 / 4164 / 2877
Регистрация: 17.08.2012
Сообщений: 13,282
10.01.2021, 14:30 3
Ряд:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
y=\sum_{n=0}^{\infty }\frac{(-1)^nx^{2n}}{(2n)!}=\sum_{n=0}^{\infty }a_n<br />

Рекуррентное соотношение для членов ряда:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\boxed{a_0=\frac{(-1)^0x^0}{0!}=1};\ \ \ a_n=\frac{(-1)^nx^{2n}}{(2n)!};\ \ \ a_{n-1}=\frac{(-1)^{n-1}x^{2n-2}}{(2n-2)!};<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\frac{a_n}{a_{n-1}}=\frac{\frac{(-1)^nx^{2n}}{(2n)!}}{\frac{(-1)^{n-1}x^{2n-2}}{(2n-2)!}}=\frac{-x^2}{2n(2n-1)}=\frac{x^2}{4n(0.5-n)}\ \Rightarrow \ \boxed{a_n=\frac{x^2a_{n-1}}{4n(0.5-n)}}<br />

Пишем программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const
  eps = 0.0001;
var
  x, a, y: real;
  n: integer;
begin
  write('x = ');
  readln(x);
  a := 1;
  y := a;
  n := 0;
  while abs(a) > eps do
    begin
      inc(n);
      a := a * x * x / 4 / n / (0.5 - n);
      y := y + a
    end;
  writeln('y = ', y:0:12);
  writeln('Ошибка = ', abs(y - cos(x)):0:12);
  readln
end.
При x > 33 программа начинает врать, а при x > 40 - нагло врать. Это происходит потому, что при увеличении n значение x2n поначалу растёт быстрее, чем (2n)!, и очередной член ряда при достаточно большом x может стать меньше веса последнего значащего разряда суммы, и сумма, начиная с некоторого n, перестанет изменяться. Так как cos(x) - функция периодическая, то можно привести значение x, например, к интервалу [-2*pi..2*pi]:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const
  eps = 0.0001;
var
  x, a, y, cosx: real;
  n: integer;
begin
  write('x = ');
  readln(x);
  cosx := cos(x);
  x := 2 * pi * frac(x / 2 / pi);
  a := 1;
  y := a;
  n := 0;
  while abs(a) > eps do
    begin
      inc(n);
      a := a * x * x / 4 / n / (0.5 - n);
      y := y + a
    end;
  writeln('y = ', y:0:12);
  writeln('Ошибка = ', abs(y - cosx):0:12);
  readln
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2021, 14:30

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Перевести в код Pascal ABC из кода Pascal Delphi
Помогите перевести в код ABC а то с Delphi вообще не знаком. Задание было такое: Записать в файл...

Перевести в код Pascal ABC из кода Pascal Delphi
procedure TForm1.Button1Click(Sender: TObject); const n=8; var x:array of real; y,z:array of...

Нужно перевести код из Turbo Pascal в Pascal ABC
Program n5; { Задача. Описать функцию less(f) от непустого файла f ...

Переписать код из Turbo Pascal в pascal ABC
очень плохо знаю Turbo Pascal, а времени на изучение нет, а его надо переписать в Pascal ABC, буду...

Переписать код из Turbo Pascal в Pascal ABC
Переписать код из Turbo Pascal в Pascal ABCprogram zadacha; uses crt, graph; const m=150; var...

Переписать код из Turbo Pascal в Pascal ABC
program zadacha; uses crt, graph; const m=50; var gd,gm,i,j,s1,s2,c1,c2: integer;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.