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

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

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.


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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
0.484380786041
X = 0.7
0.346899755541
X = 0.5
0.272062898495
X = 0.3
0.215163742135
Смотри сам, но почему-то у меня вызывает сомнение результат работы твоей программы. Откуда такая отрицательная сумма при X = 1?

(собственно код пока не смотрел)
 К началу страницы 
+ Ответить 
Crash_Devil
сообщение 19.12.2007 14:17
Сообщение #3





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

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


Когда я делал через експаненту, то ошибку выдавало деления на ноль,и вообще это я добавил услови что вводимое число должно быть меньше либо равно 1.1, просто если другое вводишь получается вещественное переполнение.
Помогите плиз, как правильно надо делать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2007 15:22
Сообщение #4


Гость






Я сделал вот так:
program z1;
const e=0.00001;
var
s, next, chisl: real;
x: real;
i, sign: integer;

begin
write('X = '); readln(x);
s := 0;
sign := 1; i := 1; chisl := x;
repeat
chisl := chisl*x; { <--- Это заменяет возведение в степень через функцию }
next := ((i + 1) * chisl + 1) / sqr(1.0*i + 1);
inc(i);
s := s + sign * next;
sign := -sign; { <--- Меняем знак следующего члена ряда }
until abs(next) < e;
writeln(s:20:12);
end.

Вроде нигде не ошибся...
 К началу страницы 
+ Ответить 
Crash_Devil
сообщение 19.12.2007 15:52
Сообщение #5





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

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


А почему нельзя к Х применять числа большие 1.1, как понял я - там получается очень большое число, которое не влезает в границы типа real, а может и нет, интересно как оно на самом деле?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2007 16:03
Сообщение #6


Гость






Цитата
А почему нельзя к Х применять числа большие 1.1
Потому что при X большем чем 1 ряд расходится. И как ты собрался искать сумму расходящегося ряда? smile.gif
 К началу страницы 
+ Ответить 
Crash_Devil
сообщение 19.12.2007 17:05
Сообщение #7





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

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


Понятно. Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 25.06.2025 8:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"