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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2010, 22:14   #1
ivil19
 
Регистрация: 04.03.2010
Сообщений: 6
По умолчанию Найти сумму ряда с точностью до 0.0001 и перевод формулы n-ого члена

Всем доброго времени суток!!

Прошу помочь с решением задачи по теме "Циклические алгоритмы". Проблема даже скорее заключается не в сути решения, а в правильном переводе алгебраической формулы в Pascal.

Текст задачи: Найти сумму ряда с точностью e=10^(-4) [десять в минус 4 степени], общий член которого an=1/((3n-2)(3n+1)).

Есть решение подобной задачи: найти сумму ряда с точностью e=10^(-4), общий член которого an=n!/n^n.

Исходник решения:

********************
program lab6;
var
sum,an:real;
n:integer;
begin
clrscr; {очистка экрана}
sum:=0; {сначала обнулим сумму}
an:=1; {очередной (первый) элемент равен единице}
n:=1; {номер элемента}
while an>0.0001 do {запускаем цикл с предусловием}
begin
sum:=sum+an; {считаем сумму}
n:=n+1; {изменяем номер элемента}
an:=an*(exp(n*(ln(n/(n+1))))); {изменяем элемент}
end;
writeln('Сумма ',n,' элементов равна =',sum:7:6);
end.
********************

Проблема в следующем: что мне написать вместо выделенной жирным шифтом строки? И что, может быть, необходимо включить в код помимо этого?
ivil19 вне форума Ответить с цитированием
Старый 04.03.2010, 22:25   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Ну во первых, приведенная задача решена не правильно, ибо там факториал числа n, не вижу чтобы он где-то вычислялся.
Вместо черного подставляй:
Код:
an=an*(1/((3n-2)*(3n+1)))
Вот только что-то мне кажется задачка то по другому решается... ну да ладно...
Базиля вне форума Ответить с цитированием
Старый 04.03.2010, 22:32   #3
ivil19
 
Регистрация: 04.03.2010
Сообщений: 6
По умолчанию

тут перед кодом вступление:
Решение.
При определении суммы членов ряда следует использовать рекуррентную формулу, в нашем случае рекуррентная формула имеет вид: an+1=an*(n/(n+1))n При составлении программы считать, что точность достигнута, если аn<10^-4
ivil19 вне форума Ответить с цитированием
Старый 04.03.2010, 22:42   #4
ivil19
 
Регистрация: 04.03.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Ну во первых, приведенная задача решена не правильно, ибо там факториал числа n, не вижу чтобы он где-то вычислялся.
Вместо черного подставляй:
Код:
an=an*(1/((3n-2)*(3n+1)))
Вот только что-то мне кажется задачка то по другому решается... ну да ладно...
Это точно? Просто всегда был с паскалем в товарищах, а этот пример решения меня поставил в ступор
ivil19 вне форума Ответить с цитированием
Старый 05.03.2010, 02:40   #5
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
то точно? Просто всегда был с паскалем в товарищах, а этот пример решения меня поставил в ступор
Что именно поставило в ступор?
Я щас тут подумал, наверное будет сложение, а не умножение т.е:
Код:
an:=an+(1/((3n-2)*(3n+1)))
Базиля вне форума Ответить с цитированием
Старый 05.03.2010, 06:50   #6
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Цитата:
наверное будет сложение, а не умножение т.е
я бы сказал не будет ни того не другого будет просто
Код:
an:=(1/((3n-2)*(3n+1)))
Google2010 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти бесконечную сумму ряда с заданной точностью логарифм Паскаль, Turbo Pascal, PascalABC.NET 1 23.07.2009 07:17
Найти сумму ряда с точностью e, если дан общий член этого ряда JiLiYa Общие вопросы C/C++ 2 18.02.2009 11:11
Найти сумму ряда с точностью Е=10^-3 Добрый Кот Паскаль, Turbo Pascal, PascalABC.NET 2 12.12.2007 12:04