IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> вычисление суммы членов бесконечного числового ряда, верно ли я все сделал? необходим взгляд опытного программиста
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Собственно сама задача:
Составить программу вычисления суммы членов бесконечного числового ряда с погрешностью Е=10^-4. Определить количество членов ряда,сравнить полученное значение суммы со значением функции y=Ln(x),x=1.5.

формула суммы ряда фото: Прикрепленное изображение
мое творение:
 
Program primer;
{Ln(x)}
var
a:real; {n-й член ряда}
b:real; {ошибка}
n:integer; {число итераций}
s:real; {сумма ряда}
x:real; {аргумент}
begin
write('x=');
readln(x);
write('точность e=');
readln(e);
s:=0;
n:=1;
a:=x; {0й член}
while abs(a)>e do begin
s:=s+a;
n:=n+1;
a:=(x-1)*n*n/(n*x*n*n);
end;
writeln('сумма ряда=',s:6:5);
writeln('точность=',e:6:5);
writeln('число членов=',n);
writeln('Ln(',x:6:5,')=',Ln(x):6:5);
writeln('расхождение=',abs(Ln(x)-s):6:5);
readln;
end.



гуру гляньте пожалуйста, правильно ли я мыслю?

Сообщение отредактировано: dim0n -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Формулу в порядок приведи, хотелось бы видеть, с правильной ли ты формулой работаешь вообще... Кстати, твоя программа компилироваться не будет - переменная E не описана... И еще: E - это не ошибка, а точность. Ошибка вычисляется по другому...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


исправил... wub.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


В таком случае (раз ты выбрал эту формулу), я бы сделал так:

    s:=0;
n:=1;
a:=1;
while abs(a)>e do begin
a:=a * (x-1) / x;
s:=s+a/n;
n:=n+1;
end;
Сравни, за сколько итераций находится решение у тебя и за сколько - в моем варианте...

А вообще тут напрашивается использование repeat/until. Сделал действие, посчитал член последовательности, тут же сравнил его с погрешностью. Если не надо считать дальше - вышел, не начиная следующую итерацию цикла. Вот так я делал: http://volvo71.narod.ru/faq_folder/math.htm#taylor_ln
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +



А можете написать полностью программу от начала,до конца? Я просто не могу понять что и куда писать? Буду очень благодарен
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Зачем от начала до конца? Вот основа:
    write('x='); readln(x);
write('e='); readln(e);
s:=0;
n:=1;
a:=1;
repeat
a := a * (x-1) / x;
s := s + a/n;
n := n+1;
until a / n < e;
, дальше выводи что тебе нужно... Сумма посчитана, номер члена, который меньше погрешности - тоже.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


блин,всё равно въехать не могу:-( я не знаю как сама задача решается и поэтому обратился на этот форум. Мне просто нужен код программы от program до end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.11.2024 10:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name