Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 20:49   #1
Ania Lunee
Новичок
Джуниор
 
Регистрация: 17.05.2012
Сообщений: 15
По умолчанию Floating point overflow

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

Код:
uses crt;
var xn,xk,dx,x,s,e,si,i:real;
n:integer;
Function f(x:real):real;
begin
f:=0.5*ln((x+1)/(x-1));
end;
begin
clrscr;
repeat
write('vvedite nachalo intervala |x|>1 xn=');
readln(xn);
until xn>1;
repeat
write('vvedite konec intervala x>',xn:0:1,' xk=');
readln(xk);
until (xk>xn)and(xn>1);
repeat
write('vvedite shag tabulacii dx>0 no <',xk-xn:0:1,' dx=');
readln(dx);
until (dx>0)and(dx<xk-xn);
write('vvedite tochnost e=');readln(e);
clrscr;
x:=xn;

writeln('tabulirovanie finkcii y=Arth(x) dlyaя |x|<1');
writeln('na intervale [',xn:0:1,';',xk:0:1,'] s shagom ',dx:0:1);
writeln('-------------------------------');
writeln('| x | S | arth | N |');
writeln('-------------------------------');
while x<=xk+dx/2 do
begin
s:=0;
si:=x;
n:=0;
i:=i+1;
while abs(si)>e do
begin
dx:=dx+1;
si:=si*x*x;
s:=1/((s+si)*(2*i+1));
end;
writeln('|',x:4:1,' |',s:8:4,' |', f(x):8:4,' |', dx:3,'|');
x:=x+dx;
end;
writeln('---------------------------------');
readln;
end.

Последний раз редактировалось Stilet; 18.05.2012 в 21:19.
Ania Lunee вне форума Ответить с цитированием
Старый 18.05.2012, 21:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так:
Код:
while x<=xk+dx/2 do  begin
        s:=0;
        si:=x;sl:=1;
        n:=0;
        i:=i+1;
        while abs(s-sl)>e do begin
                sl:=s;
                dx:=dx+1;
                si:=si*x*x;
                s:=1/((s+si)*(2*i+1));
        end;
        writeln('|',x:4:1,' |',s:8:4,' |', f(x):8:4,' |', dx:3:2,'|');
        x:=x+dx;
end;
Это ядро кода
Sl еще одна переменка типа Реал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2012, 21:49   #3
Ania Lunee
Новичок
Джуниор
 
Регистрация: 17.05.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А так:
Код:
while x<=xk+dx/2 do  begin
        s:=0;
        si:=x;sl:=1;
        n:=0;
        i:=i+1;
        while abs(s-sl)>e do begin
                sl:=s;
                dx:=dx+1;
                si:=si*x*x;
                s:=1/((s+si)*(2*i+1));
        end;
        writeln('|',x:4:1,' |',s:8:4,' |', f(x):8:4,' |', dx:3:2,'|');
        x:=x+dx;
end;
Это ядро кода
Sl еще одна переменка типа Реал
она стала выполняться, но ряда не получается, не табулируется вобщем, а я не понимаю в чем дело
Ania Lunee вне форума Ответить с цитированием
Старый 18.05.2012, 21:57   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

я конечно извиняюсь но....
это
Цитата:
Код:
while abs(si)>e do
begin
dx:=dx+1;
si:=si*x*x;
s:=1/((s+si)*(2*i+1));
end;
не Arth(x);
вот Arth(x):
Код:
while abs(1/(si*(2*i+1)))>e do
begin
si:=si*x*x;
s:=s+1/(si*(2*i+1));
i:=i+1;
end;
Да и у вас куча непонятных переменных!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 18.05.2012, 22:01   #5
Ania Lunee
Новичок
Джуниор
 
Регистрация: 17.05.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
я конечно извиняюсь но....
это
не Arth(x);
вот Arth(x):
Код:
while abs(1/(si*(2*i+1)))>e do
begin
si:=si*x*x;
s:=s+1/(si*(2*i+1));
i:=i+1;
end;
Да и у вас куча непонятных переменных!
так она не выполняется(

вот я пробывала еще исправлять- так выполняется, но не правильно как то табулируется

Код:
uses crt;
var xn,xk,dx,x,s,e,si,i,sl:real;
    n:integer;
Function f(x:real):real;
begin
f:=0.5*ln((x+1)/(x-1));
end;
begin
clrscr;
repeat
write('vvedite nachalo intervala |x|>1 xn=');
readln(xn);
until xn>1;
repeat
write('vvedite konec intervala x>',xn:0:1,' xk=');
readln(xk);
until (xk>xn)and(xn>1);
repeat
write('vvedite shag tabulacii dx>0  no <',xk-xn:0:1,' dx=');
readln(dx);
until (dx>0)and(dx<xk-xn);
write('vvedite tochnost e=');readln(e);
clrscr;
x:=xn;

writeln('tabulirovanie finkcii y=Arth(x) dlyaя |x|>1');
writeln('na intervale [',xn:0:1,';',xk:0:1,'] s shagom ',dx:0:1);
writeln('-------------------------------');
writeln('|  x  |    S    |  arth   | N |');
writeln('-------------------------------');
while x<=xk+dx/2 do  begin
        s:=0;
        si:=x;sl:=1;
        n:=0;
        i:=i+1;
        while abs(s-sl)>e do begin
                sl:=s;
                dx:=dx+1;
                si:=si*x*x;
                s:=1/((s+si)*(2*i+1));
        end;
        writeln('|',x:4:1,' |',s:8:4,' |', f(x):8:4,' |', dx:3:2,'|');
        x:=x+dx;
end;

writeln('---------------------------------');
readln;
end.

Последний раз редактировалось Stilet; 18.05.2012 в 22:10.
Ania Lunee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
is not a valid floating point value nexzis Помощь студентам 3 22.11.2010 13:55
Чтение файла в массив и построение графика TChart, floating point overflow А здесь смотрели? vitalyisaev2 C++ Builder 1 09.11.2010 21:36
Floating point exception Gorbunov89 Общие вопросы C/C++ 0 19.12.2009 23:05
s not a valid floating point value prod87 Помощь студентам 1 02.12.2009 20:57
Delphi, "Floating point overflow" что делать? xMass Помощь студентам 12 02.04.2009 01:37