1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Crash_Devil |
19.12.2007 11:02
Сообщение
#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 |
19.12.2007 13:54
Сообщение
#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 |
19.12.2007 14:17
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Когда я делал через експаненту, то ошибку выдавало деления на ноль,и вообще это я добавил услови что вводимое число должно быть меньше либо равно 1.1, просто если другое вводишь получается вещественное переполнение.
Помогите плиз, как правильно надо делать? |
| volvo |
19.12.2007 15:22
Сообщение
#4
|
|
Гость |
Я сделал вот так:
program z1;Вроде нигде не ошибся... |
| Crash_Devil |
19.12.2007 15:52
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
А почему нельзя к Х применять числа большие 1.1, как понял я - там получается очень большое число, которое не влезает в границы типа real, а может и нет, интересно как оно на самом деле?
|
| volvo |
19.12.2007 16:03
Сообщение
#6
|
|
Гость |
Цитата А почему нельзя к Х применять числа большие 1.1 Потому что при X большем чем 1 ряд расходится. И как ты собрался искать сумму расходящегося ряда? |
| Crash_Devil |
19.12.2007 17:05
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Понятно. Спасибо!
|
![]() ![]() |
|
Текстовая версия | 8.12.2025 11:03 |