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

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

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

> итерационные циклы, бесконечная сумма
Hunt666
сообщение 3.12.2006 18:53
Сообщение #1


Пионер
**

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

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


помогите разобраться
вот задачка:
вычислить приближенное значение бесконечной суммы.Нужное приближение считается полученным если сумма первых нескольких слагаемых , и очередное слагаемое оказалось по модулю меньше данного положительного e .


X+1*X^3/(2*3) + 1*3X^5/(2*4*5) + 1*3*5*X^7/(2*4*6*7)+ 1*3*5*7*X^9/(2*4*6*8*9)+...... и тд

const MaxIter = 500;
var x, eps : double;
c, y : double;
n : integer;
done : boolean;
begin
writeln('vvedite x u tochnost:');
readln(x, eps);
if sqr(x)>=1 then writeln('x ne podhodit')
else
done := true;
c := x; y := c;
n := 0;
while abs© > eps do begin c := c*sqr(x)*x/(2*n + 1)/(2*n + 3);
y := y + c;
inc(n);
if n > MaxIter then begin
writeln('piad pacxoditcia!');
done := false; break
end
end;
if done then
writeln('Dlia argumenta ', x , 'znachenie funkcii: ' , y , ' vicheslino s tochnostiu', eps, ' za ', n, ' iteraciy');
readln;
end.

количество итераций у меня вседа =0, и я очень не уверен в правильности c := c*sqr(x)*x/(2*n + 1)/(2*n + 3);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
klem4
сообщение 3.12.2006 19:39
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Вот как-то так это должно выглядеть :

uses crt;

const
eps = 1E-3;

var
s, next: Single;
x, x2, p, ch, zn, t: Integer;

begin
clrscr;

write('x = '); readln(x);

s := x;

x2 := x * x;

ch := x;

p := 1;

t := 1;

zn := 1;

repeat


ch := ch * x2 * p; // chislitel

zn := zn * (t + 1) * (t + 2) div t; // znamenatel

next := ch / zn; // ocherednoi chlen summi

s := s + next;

p := p + 2;
t := t + 2;

until abs(next) < eps;

writeln('s = ', s:2:3);

readln;
end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Hunt666
сообщение 3.12.2006 19:51
Сообщение #3


Пионер
**

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

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


я еще забыл указать X^2<1

у меня постоянно выдает ошибку на строчке
 zn := zn * (t + 1) * (t + 2) div t;

operand type do not match operator

Сообщение отредактировано: Hunt666 - 3.12.2006 19:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 3.12.2006 20:04
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Поменял integer на real ? Теперь вместо div поставь просто "/". Для вещественных чисел операция div не определена ...

Точнее лучше просто zn и t объяви как Integer;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Hunt666
сообщение 3.12.2006 20:44
Сообщение #5


Пионер
**

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

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


type mismatch теперь вот такую выдает ошибку на той же строчке

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

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

 



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