Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
1

Вычислить сумму ряда с заданной точностью

08.02.2014, 15:46. Показов 1251. Ответов 12
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Program lab3;
Const eps=5e-5;
var h,s,p:real;
    f,n,n1,st,b:integer;
begin
p:=pi/3; h:=p; s:=h; n:=1; b:=1; n1:=2; st:=0;
while abs(h)>eps do
   begin
     st:=2*n+1;
     f:=f*(2*n1-1)*(2*n1-2);
     h:=exp(ln(p)*st)/f;
     s:=s-b*h;     
     n:=n+1;
     n1:=n1+1;
     b:=-b;
   end;
writeln ('сумма =',s:4:8);
writeln ('количество членов ряда =',n);
writeln ('заданная точность =',eps);
end.
Пожалуйста скажите тут то что не так... я просто не вижу ошибку. f - это факториал.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2014, 15:46
Ответы с готовыми решениями:

Вычислить сумму ряда с заданной точностью
Что-то набросал, но выдает ошибку Вещественное деление на 0 в 15 строке*, да и вообще слабовато...

Вычислить сумму ряда с заданной точностью
При заданном х=0.3 вычислить сумму N членов ряда с точностью e<=0.0001 Сравнить результаты со...

Вычислить сумму ряда с заданной точностью
При заданном х=0.75 вычислить сумму N членов ряда с точностью e<=0.0001 Сравнить результаты со...

Вычислить сумму ряда с заданной точностью
Помогите, пожалуйста! Найдите ошибку. Вычислить сумму ряда с точностью eps=10-4 ...

12
693 / 567 / 414
Регистрация: 31.03.2013
Сообщений: 1,029
08.02.2014, 15:52 2
Romero89, где задание?
0
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
08.02.2014, 16:10  [ТС] 3
Цитата Сообщение от Samhain Посмотреть сообщение
Romero89, где задание?
s=pi/3-(pi/3)^3 /3!+(pi/5)^5 /5!-...+(-1)^n * (pi/3)^(2n+1) /(2n+1)! +... вот собственно и задание. Надеюсь понятно написал.
0
3738 / 2689 / 616
Регистрация: 08.06.2007
Сообщений: 9,266
Записей в блоге: 4
08.02.2014, 16:36 4
Цитата Сообщение от Romero89 Посмотреть сообщение
Надеюсь понятно написал.
Непонятно. Надо писать формулой, тогда будет понятно.
Почему во втором члене pi/5, а в первом и третьем pi/3? Там что, чередование?
Или это просто разложение синуса в точке pi/3? Тогда в среднем члене тоже должно быть pi/5/
0
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
08.02.2014, 16:43  [ТС] 5
Цитата Сообщение от palva Посмотреть сообщение
Непонятно. Надо писать формулой, тогда будет понятно.
Почему во втором члене pi/5, а в первом и третьем pi/3? Там что, чередование?
Или это просто разложение синуса в точке pi/3? Тогда в среднем члене тоже должно быть pi/5/
Извиняюсь ошибся. Везде должно быть pi/3 меняется только степень и факториал, ну и знак - +. Да вы совершенно правы, это разложение синуса. Помогите завтра сдавать.
0
3738 / 2689 / 616
Регистрация: 08.06.2007
Сообщений: 9,266
Записей в блоге: 4
08.02.2014, 16:43 6
Лучший ответ Сообщение было отмечено Romero89 как решение

Решение

У вас не присвоено начальное значение переменной f.
По моим смутным понятиям, надо f:=1 где-то вверху поставить.
1
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
08.02.2014, 16:47  [ТС] 7
Цитата Сообщение от palva Посмотреть сообщение
У вас не присвоено начальное значение переменной f.
По моим смутным понятиям, надо f:=1 где-то вверху поставить.
Эх, вы меня выручили уже второй раз. Спасибо. Учился когда то давным давно на программиста (среднее спец), да уже всё подзабыл, щас вот заочно учусь о5 вспоминаю.
0
Модератор
63667 / 47245 / 32557
Регистрация: 18.05.2008
Сообщений: 114,488
08.02.2014, 16:53 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program lab3;
Const eps=5e-5;
var s,p:real;
     n:integer;
begin
p:=pi/3;
s:=p;
n:=1;
while abs(p)>eps do
 begin
  n:=n+1;
  p:=p*sqr(pi/3)/((2*n-1)*(2*n-2));
  s:=s+p;
 end;
writeln ('Сумма=',s:0:5);
writeln ('Количество членов ряда=',n);
writeln ('Полученная точность=',abs(p):0:5);
end.
0
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
08.02.2014, 17:00  [ТС] 9
Работает но выдаёт не то. sin(pi/3)=0.52 что у меня в коде что у вас совершенно другое. Господа помогите.
0
3738 / 2689 / 616
Регистрация: 08.06.2007
Сообщений: 9,266
Записей в блоге: 4
08.02.2014, 17:10 10
Цитата Сообщение от Romero89 Посмотреть сообщение
p:=p*sqr(pi/3)/((2*n-1)*(2*n-2));
Pascal
1
p:=-p*sqr(pi/3)/((2*n-1)*(2*n-2));
Добавлено через 5 минут
Цитата Сообщение от Romero89 Посмотреть сообщение
Работает но выдаёт не то. sin(pi/3)=0.52
Что-то вы странное пишете. У вас должен был вычислиться синус гиперболический от pi/3, а он больше единицы. Наверно еще где-то есть ошибки.
0
Модератор
63667 / 47245 / 32557
Регистрация: 18.05.2008
Сообщений: 114,488
08.02.2014, 17:13 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Romero89 Посмотреть сообщение
sin(pi/3)=0.52
Это с чего? sin(pi/3) в радианах=0,86603
А знак минус перед р я пропустил

Добавлено через 1 минуту
Вот запустите это
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program lab3;
Const eps=5e-5;
var s,p:real;
     n:integer;
begin
p:=pi/3;
s:=p;
n:=1;
while abs(p)>eps do
 begin
  n:=n+1;
  p:=-p*sqr(pi/3)/((2*n-2)*(2*n-1));
  s:=s+p;
 end;
writeln ('Ñóììà=',s:0:5);
writeln('sin(pi/3)=',sin(pi/3):0:5);
writeln ('Êîëè÷åñòâî ÷ëåíîâ ðÿäà=',n);
writeln ('Ïîëó÷åííàÿ òî÷íîñòü=',abs(p):0:5);
end.
0
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 18
08.02.2014, 17:14  [ТС] 12
Цитата Сообщение от palva Посмотреть сообщение
Pascal
1
p:=-p*sqr(pi/3)/((2*n-1)*(2*n-2));
Добавлено через 5 минут

Что-то вы странное пишете. У вас должен был вычислиться синус гиперболический от pi/3, а он больше единицы. Наверно еще где-то есть ошибки.
sqr это же квадрат, я писал в степени 2n+1 т.е. ((pi/3) в степени 2n+1)/(2n+1)!факториал.
0
Модератор
63667 / 47245 / 32557
Регистрация: 18.05.2008
Сообщений: 114,488
08.02.2014, 17:17 13
Romero89, Запусти мою последнюю программу и не мучайся.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2014, 17:17

Вычислить сумму ряда с заданной точностью
Вычислите сумму ряда с точностью 0.0001 Если можно, код попроще.

Вычислить сумму ряда с заданной точностью
Если можно попроще код.

Вычислить сумму ряда с заданной точностью
var k:integer; s,p:real; Function factorial(n:integer):integer; var f,k:integer; ...

Вычислить сумму ряда с заданной точностью
Ввести с клавиатуры x и точность вычисления Esp. Вычислить с заданной точностью сумму : ...


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

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

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