Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка 205, Floating point overflow 
V
    Опции темы
Zorak
Дата 4.11.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Вот есть программа, написана мной =)....
Код

program zad_7_2;
uses crt;
const n=2; eps=0.000001;
var a:array[1..n,1..n] of real;
    b,t,x,xk,m:array[1..n] of real;
    i,j,k:integer;y,s1,s2,s,s3,l:real;
Begin
clrscr;
a[1,1]:=1;a[1,2]:=1;b[1]:=0;
a[2,1]:=-3;a[2,2]:=-2;b[2]:=1;
{a[3,1]:=2;a[3,2]:=4;a[3,3]:=7;b[3]:=13;}
{for i:=1 to n do begin
for j:=1 to n do begin
                 write('Vvedit element a[',i,',',j,']=');
                 readln(a[i,j]);
                 end;
                  end;
for i:=1 to n do begin
                 write('Vvedit vilnuy chlen b[',i,']=');
                 readln(b[i]);
                 end;}

repeat
 for i:=1 to n do begin
                  s1:=0;s2:=0;
                  for j:=1 to i-1 do s1:=s1+a[i,j]*xk[j];
                  for j:=i+1 to n do s2:=s2+a[i,j]*xk[j];
                  xk[i]:=(b[i]-s1-s2)/a[i,i];
                  end;
 k:=k+1;
 s:=0;
 for i:=1 to n do begin
                  s:=s+sqr(xk[i]-x[i]);  <----------- ЗДЕСЬ--------------
                  x[i]:=xk[i];
                  end
until sqrt(s)<eps;
for i:=1 to n do writeln('x[',i,']=',xk[i]:5:2);
writeln('Kilkist iteraciy=',k);

writeln('');
writeln('Vector-nevyazka:');
for i:=1 to n do begin
                 s:=0;
                 for j:=1 to n do begin
                                  s:=s+a[i,j]*x[j];
                                  end;
                 m[i]:=abs(b[i]-s);
                 writeln('             ',m[i]:5:3);
                 end;
for i:=1 to n do begin
                 l:=sqr(m[i]);
                 s3:=s3+l;
                 end;
writeln('');
writeln('Nevyazka: ',sqrt(s2):5:3);

readln;
end.

в метке, которой я оставил в коде (<-----) появляеться ошибка 205: Floating point overflow, почему там ета ошибка и как ее убрать ??? Скадите пжлста)...
 З,Ы. Заранее спасибо


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
volvo877
Дата 5.11.2008, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Zorak @  4.11.2008,  20:51 Найти цитируемый пост)
почему там ета ошибка

Потому что перед попыткой возведения в квадрат xk[ i ] =  -3.51665492765662E+19, x[ i ] = -2.34443661843775E+19 , соответственно их разность равна -1.17221830921887E+19, что при попытке возведения в квадрат (и сложения с предыдущим значением S = 6.10709228652981E+0037) выходит за границы типа (тип Real способен хранить числа до 1.7Е+38).

Цитата(Zorak @  4.11.2008,  20:51 Найти цитируемый пост)
и как ее убрать
Ограничивать число итераций... Вылет происходит при k = 111, то есть на 111-ой итерации, ограничь число итераций до 50, скажем, и если требуемая точность не достигнута за это время, выдавай сообщение о невозможности решения...

Чуть-чуть отсрочить падение программы (чтоб она продержалась немного больше 14 тысяч итераций) можно, если включить использование сопроцессора и добавить строку
Код
type real = extended;
,  тем самым расширив диапазон значений до 1.1Е+4932. Но потом программа все равно "вылетит"...

PM MAIL   Вверх
Zorak
Дата 5.11.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



ого) честно - удивлен =)... не ожидал такого ответа).. спасибо, я понял) ушол переделывать....


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Sergas
Дата 13.11.2008, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.10.2008

Репутация: нет
Всего: нет



А если пишет Error 207: Invalid ... operation,
Что значит?
Код

program laba3;
uses graph, crt;
var gd,gm, L, i:integer;
    d,x,a,y:real;
    stroka:string;
begin
 clrscr;
 writeln ('Vvedite shag');
 write ('d=');
 readln(d);
 x:=1;
 L:=50;
 i:=-9;
 a:=4;
 writeln ('  X         Y');
 while x<=a do
  begin
   y:=ln(x);
   writeln(x:6:3,y:10:3);  {nado ispravit'}
   x:=x+d;
  end;
 readln;
 gd:=detect;
 gm:=0;
 InitGraph(gd,gm,'c:\bp\bgi');
 SetBkColor(white);
 SetColor(blue);



 OutTextxy(330, 15,'y');
 line (320, 460, 320, 20);
 line (315, 30, 320, 20);
 line (325, 30, 320, 20);

 OutTextxy(610, 250,'x');
 line (20, 240, 620, 240);
 line (610, 235, 620, 240);
 line (610, 245, 620, 240);

 OutTextxy(330, 245, '0');

 {delim na otrezki}
 while L<=600 do
 begin
  line (L, 239, L, 241);
  L:=L+30;
 end;
 L:=30;
 while L<=460 do
 begin
  line (319, L, 321, L);
  L:=L+30;
 end;

 {podpisi Y}
 begin
  i:=7;
  L:=30;
 end;
  while L<240 do
   begin
    str(i:1, stroka);
    outtextxy (330, L, stroka);
    L:=L+30;
    i:=i-1
   end;
 begin
  i:=-1;
  L:=270;
 end;
  while L<460 do
   begin
    str(i:1, stroka);
    outtextxy (330, L, stroka);
    L:=L+30;
    i:=i-1
   end;
 {Podpisi X}
 begin
  i:=-9;
  L:=50;
 end;
  while L<320 do
   begin
    str(i:1, stroka);
    outtextxy (L, 250, stroka);
    L:=L+30;
    i:=i+1
   end;
 begin
  i:=1;
  L:=350;
 end;
  while L<=590 do
   begin
    str(i:1, stroka);
    outtextxy (L, 250, stroka);
    L:=L+30;
    i:=i+1
   end;

 d:=1;
 x:=-15;
 a:=15;

 while x<=a do
 begin
 {ВОТ ЗДЕСЬ ОШИБКУ ВЫДАЁТ}   putpixel(320+trunc(x*10),240-trunc(ln(x)*10),4);
  x:=x+0.001;
 end;


 readln;
 closegraph;
end.

PM MAIL   Вверх
volvo877
Дата 13.11.2008, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Sergas @  13.11.2008,  09:04 Найти цитируемый пост)
А если пишет Error 207: Invalid ... operation,
Что значит?
Значит, что Ln(отрицательное_число) - это неправильно. Где ты видел логарифм отрицательного числа?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

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

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.