Проверьте правильность задачи..., на сумму ряда |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Проверьте правильность задачи..., на сумму ряда |
Crash_Devil |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Условие:
Вычислить сумму ряда с точностью ε=10(в -5 степени) Ряд представлен в прикрепленном файле. Текст программы: program z1; const e=0.00001; var s{Сумма ряда},n{член ряда},x,x1{Переменная}:real; i,k:integer;{счетчик} begin s:=0; i:=2; Write('VVedite x(<=1.01): ');Read(x); n:=((i*sqr(x))+1)/(sqr(i+1)); s:=s+n; REPEAT i:=i+1; x1:=Power(x,i);n:=((x1*i)+1)/(sqr(i)); if odd(i)=false{чет} then begin s:=s+n; i:=i+1;end else s:=s-n; i:=i+1; until n<e; writeln(s:20:12); end. Эскизы прикрепленных изображений |
volvo |
Сообщение
#2
|
Гость |
Во-первых, ты не привел свою реализацию функции Power. А во-вторых я переписал программку по-другому, и вот что получилось (в твою программу добавил вычисление Power через exp(i * ln(x))):
Твоя программа: Цитата VVedite x(<=1.01): 1 -4.907396669029 VVedite x(<=1.01): 0.7 -0.179428755969 VVedite x(<=1.01): 0.5 -0.114767705942 VVedite x(<=1.01): 0.3 -0.110536721367 Моя программа: Цитата X = 1 Смотри сам, но почему-то у меня вызывает сомнение результат работы твоей программы. Откуда такая отрицательная сумма при X = 1?0.484380786041 X = 0.7 0.346899755541 X = 0.5 0.272062898495 X = 0.3 0.215163742135 (собственно код пока не смотрел) |
Crash_Devil |
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Когда я делал через експаненту, то ошибку выдавало деления на ноль,и вообще это я добавил услови что вводимое число должно быть меньше либо равно 1.1, просто если другое вводишь получается вещественное переполнение.
Помогите плиз, как правильно надо делать? |
volvo |
Сообщение
#4
|
Гость |
Я сделал вот так:
program z1;Вроде нигде не ошибся... |
Crash_Devil |
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
А почему нельзя к Х применять числа большие 1.1, как понял я - там получается очень большое число, которое не влезает в границы типа real, а может и нет, интересно как оно на самом деле?
|
volvo |
Сообщение
#6
|
Гость |
Цитата А почему нельзя к Х применять числа большие 1.1 Потому что при X большем чем 1 ряд расходится. И как ты собрался искать сумму расходящегося ряда? |
Crash_Devil |
Сообщение
#7
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Понятно. Спасибо!
|
Текстовая версия | 8.05.2024 9:41 |