Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 17:47   #1
Lilen
Пользователь
 
Регистрация: 04.10.2012
Сообщений: 20
По умолчанию Программа подсчета суммы ряда

найти сумму ряда: 1-x^2/2! + x^4/4 - ... + (-1)^n * (x^2*n)/(2n!)
конечным результатом должно быть выражение cosx, т.е. какое-то значение косинуса. Написала программу, не работает, уже вся измучилась, не знаю что делать, выдает 207 ошибку после запуска. Помогите, пожалуйста, исправить программу...

Program summarada;
uses crt;
var n,i,x:integer;
a,s,R:real;

function fact(x:integer):longint;
var z:longint;
i:integer;
begin
z:=1;
for i:=1 to n do
z:=z*i;
fact:=z;
end;

Function Pow (A,B:Real):Real;
{ vozvedenie v stepen }
Var T:Real;
Begin
T := Abs(A);
If A < 0 Then Pow := (-1)*Exp(B*Ln(T))
Else Pow := Exp(B*Ln(T));
End;
begin
ClrScr;
writeln('vvedite kolichestvo clagaembIh n = ');
readln(n);
writeln('vvedite x = ');
readln(x);
S:=0;
for i:=1 to n do
begin
a:=(Pow (x, 2*n)) / (2*fact(x));
S:=S+(exp(ln(-1)*i))*a;
end;
R:=1+S;
writeln('SUMMA = ', R);
readkey;
End.
Lilen вне форума Ответить с цитированием
Старый 04.10.2012, 18:12   #2
MadHamster
Пользователь
 
Аватар для MadHamster
 
Регистрация: 13.01.2011
Сообщений: 28
По умолчанию

Вы пытаетесь взять логарифм от -1...
MadHamster вне форума Ответить с цитированием
Старый 04.10.2012, 20:19   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Который раз наблюдаю принципиальную ошибку в решении подобных задач - попытка решить в лоб.
Предлагаю поступить так:
1. Зайти в раздел: Полезная литература. Паскаль. Сразу перейдите на последнюю страницу.
2. Скачайте книжку: Т.А. Павловская, Программирование на ЯВУ. Паскаль. (и поскорее, пока никто другой не скачал )
3. Открываете на стр. 54 и читаете как решить подобную задачу)
4. Используем приведенный код и дорабатываем до своего.
5. Получаем удовольствие.

В общем случае: Это ряд Тейлора. Каждый последующий член может быть получен из предыдущего путем умножения на некоторый коэффициент:
a(n+1) = K*a(n) - тут в скобках индексы.

В вашем случае общий вид члена ряда:
a(n) = ((-1)^n)*(x^2n)/(2*n)!.

Коэфициент:
K= a(n+1)/a(n) = -1/((2*n+1)*(2*n+2)).

И т.д. ....
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна программа подсчета контрольной суммы и корректирующих байт sidor_ii Фриланс 14 24.12.2011 13:24
программа которая должна вычислять суммы всех членов ряда постоянно получаетd в ответе 1.Что не так? mariew13 Помощь студентам 0 24.02.2011 20:15
программа для вычисления суммы ряда Vitalina69 Общие вопросы Delphi 2 01.12.2010 19:47
программа в паскале на вычесление суммы ряда RaZ.OK2 Помощь студентам 25 28.11.2010 22:02