Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Ошибка: Invalid floating point operation   Найти похожие ветки 

 
russko ©   (2004-04-21 18:15) [0]

Почему при попытке считать данные из динамического массива после нескольких итераций возникает ошибка:
Invalid floating point operation
Как от этого избавиться?


 
Palladin ©   (2004-04-21 18:17) [1]

исправить эту ошибку


 
russko ©   (2004-04-21 18:19) [2]

Каким образом? Локально не даст нужный результат


 
Palladin ©   (2004-04-21 18:26) [3]

ты задал общий вопрос и получил общий ответ, вряд ли кто то из посетителей данного форума сидит рядом с тобой и видит что у тебя происходит


 
russko ©   (2004-04-21 18:28) [4]

Я же объяснил что в процессе работы один и тот же массив переписывается и затем на каждой итерации из него считываются данные и где-то на 8 итерации при считывании значения 0 возникает эта ошибка


 
Digitman ©   (2004-04-21 18:31) [5]


> russko ©   (21.04.04 18:28) [4]


про встроенный в Делфи отладчик что-нибудт слышал ?
имеешь ли хоть малейшие представления о принципах ПОШАГОВОЙ отладки программы ?


 
russko ©   (2004-04-21 18:33) [6]

да знаю я всё это, мне бы не хотелось её обрабатывать, мне хотелось бы от неё избавиться


 
Palladin ©   (2004-04-21 18:33) [7]

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


 
Андрей Сенченко ©   (2004-04-21 18:34) [8]

от нее - от программы ?


 
Digitman ©   (2004-04-21 18:35) [9]

Пациент:
Доктор, у меня в левом ухе звенит, хотя не должно ... как от этого избавиться ?

Доктор:
(поставь себя на место доктора - дай ответ пациенту на абсолютно абстрактный его вопрос, да так чтобы без уточнений предыстории ухо у пациента сразу же перестало звенеть ... можешь воспользоваться проверенным методом - назначить ему прием Таблетки № 7 ... проверенная панацея !)


 
Тимохов ©   (2004-04-21 18:35) [10]

скорее от работы


 
russko ©   (2004-04-21 18:36) [11]

Вот пример:
if (a[i_k,length(a[0])-1]<0) and (abs(a[i_k,length(a[0])-1])>abs(max))  then....


 
Тимохов ©   (2004-04-21 18:36) [12]

вопрос один одного глупее.
но объекдиняет их одно - полное отсутсвие исходного кода.
Вы из ГРУ что ли все? Тайна?


 
Digitman ©   (2004-04-21 18:38) [13]


> russko ©   (21.04.04 18:36) [11]


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

и долго ты еще намерен шматки-обрывки кода  бросать сюда ?


 
Тимохов ©   (2004-04-21 18:38) [14]


> russko ©   (21.04.04 18:36) [11]

абсолютно корректный код (может скобок не хватает - не считал).


 
russko ©   (2004-04-21 18:39) [15]

Хотите весь код, реализующий решение задач квадратичного программирования?


 
Palladin ©   (2004-04-21 18:39) [16]

Медицина не стоит на месте... таблетка №9, помогает избавится от звона в ушах и соплей в носу одновременно...


 
sniknik ©   (2004-04-21 18:41) [17]

> Вот пример:
вреш ты все "после нескольких итераций" ... этот пример вообще не работает, и не комплится. даже проверять, вставлять в пустой проект нет смысла, и так ясно.


 
Digitman ©   (2004-04-21 18:42) [18]


> russko ©   (21.04.04 18:39) [15]


ты не ответил на вопрос : на основании чего ты привел именно эту строчку ?

даже если так, головой ты в состоянии поработать, разделив однострочное выражение на многострочный его эквивалент с целью САМОСТОЯТЕЛЬНО сузить круг поиска источника проблемы ?


 
russko ©   (2004-04-21 18:42) [19]

function kluch_el(a:tmatrix):tvector;
var
i_k,j_k:integer;
k:tvector;
max,min,mm:extended;
max_Nomer,min_Nomer:integer;
flag:boolean;
begin
{0-noieaao, 1-no?iea}
  k[0]:=0;
  k[1]:=0;
  mm:=0;
  max:=0;
 // i_k:=2;
  for i_k:=3 to length(a)-1 do  begin
  try
   mm:=abs(a[i_k,length(a[0])-1]);
  except mm:=0; end;
     if (a[i_k,length(a[0])-1]<0) and (mm>abs(max))  then
              begin
              if proverka(a,zapr,i_k)=1 then
                 begin
                 max_Nomer:=i_k;
                 max:=a[i_k,length(a[0])-1];
                 end;

              end;   end;

 try
  if  max=0 then begin
                 k[0]:=0;
                 k[1]:=0;
                 result:=k;
                 exit;
                 end else
                     k[0]:=max_Nomer;
            except   k[0]:=max_Nomer;
            end;

  flag:=false;

  for j_k:=1 to length(a[0])-2 do
    if  a[max_Nomer,j_k]>0 then
      begin
         min:=a[2,j_k]/a[max_Nomer,j_k];
         flag:=true;
      end;

   for j_k:=1 to length(a[0])-2 do
      if (a[max_Nomer,j_k]>0) and (a[2,j_k]/a[max_Nomer,j_k]<=min) then
        begin
           min_Nomer:=j_k;
           min:=a[2,j_k]/a[max_Nomer,j_k];
        end;

  if flag then begin
      k[1]:=min_Nomer;

//       for i:=1 to ii+jj do
//      if ((zapr[i-1][0]=k[0]-2)and(zapr[i-1][1]=k[1]))or((zapr[i-1][0]=k[1])and(zapr[i-1][1]=k[0]-2)) then begin
                                                                                            //        i_k:=3;
                                                                                               //        goto 11;
       result:=k;                                                                                      // end;
      end else begin k[0]:=-1;k[1]:=-1;result:=k;exit;
         end;
end;


 
sniknik ©   (2004-04-21 18:43) [20]

> Хотите весь код, реализующий решение задач квадратичного программирования?
обычно необходим код связанный с ошибкой, когдато я даже пример отдельное приложение писал с "выделенным" глюком, лиш бы помогли.
вам это видимо не нужно, лиш бы потрепаться...


 
Тимохов ©   (2004-04-21 18:44) [21]

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


 
russko ©   (2004-04-21 18:45) [22]

Эта функция вызывается n-ое кол-во раз, кто знаком с симплекс-методом поймёт


 
russko ©   (2004-04-21 18:45) [23]

Мож кому на мыло кинуть всю прогу?


 
Palladin ©   (2004-04-21 18:46) [24]

а где объявления типов? комментарии про ошибку и наконец человеческое форматирование кода?


 
Digitman ©   (2004-04-21 18:46) [25]

безобразный, крайне тяжело читаемый код !

и - одному Пушкину известно, что такое a[], zapr[]


 
Тимохов ©   (2004-04-21 18:46) [26]

второй вопрос за сегодня (может и больше) в котором на дурацкий вопрос отвечают исключительно мастера и я :)))

ребята, ваше общество меня компрометирует (шутка :)))

Автору.
Автор! Ты хочешь чтобы тебе помогли?
Или так - потрепаться?
Выдели клюк - через отладчик.
Если не поймешь сам, то покажи его нам.


 
sniknik ©   (2004-04-21 18:46) [27]

кода из [11] в [19] нет, значится и ощибки тоже, это у тебя брат галюны.


 
Тимохов ©   (2004-04-21 18:48) [28]


> russko ©   (21.04.04 18:45) [22]

Я по нему лекции (раза два) читал.
Но симплекс-методом тут слабо пахнет.
может вам готовый код найти - их уйма, я свой куда-то выкладывал.


 
Digitman ©   (2004-04-21 18:48) [29]

...---..--.-.---.--.-.-.-.--.

кто знаком с азбукой Морзе , тот поймет


 
russko ©   (2004-04-21 18:53) [30]

function kluch_el(a:tmatrix):tvector;
var
i_k,j_k:integer;
k:tvector;
max,min,mm:extended;
max_Nomer,min_Nomer:integer;
flag:boolean;
begin
{0-noieaao, 1-no?iea}
  k[0]:=0;
  k[1]:=0;
  mm:=0;
  max:=0;
 // i_k:=2;
  for i_k:=3 to length(a)-1 do  begin
{вот здесь при i_k=9 возникает ошибка, функция до этого вызывалась раз 5 и нормально}  
   mm:=abs(a[i_k,length(a[0])-1]);
       if (a[i_k,length(a[0])-1]<0) and (mm>abs(max))  then
              begin
              if proverka(a,zapr,i_k)=1 then
                 begin
                 max_Nomer:=i_k;
                 max:=a[i_k,length(a[0])-1];
                 end;

              end;   end;

 try
  if  max=0 then begin
                 k[0]:=0;
                 k[1]:=0;
                 result:=k;
                 exit;
                 end else
                     k[0]:=max_Nomer;
            except   k[0]:=max_Nomer;
            end;

  flag:=false;

  for j_k:=1 to length(a[0])-2 do
    if  a[max_Nomer,j_k]>0 then
      begin
         min:=a[2,j_k]/a[max_Nomer,j_k];
         flag:=true;
      end;

   for j_k:=1 to length(a[0])-2 do
      if (a[max_Nomer,j_k]>0) and (a[2,j_k]/a[max_Nomer,j_k]<=min) then
        begin
           min_Nomer:=j_k;
           min:=a[2,j_k]/a[max_Nomer,j_k];
        end;

  if flag then begin
      k[1]:=min_Nomer;

//       for i:=1 to ii+jj do
//      if ((zapr[i-1][0]=k[0]-2)and(zapr[i-1][1]=k[1]))or((zapr[i-1][0]=k[1])and(zapr[i-1][1]=k[0]-2)) then begin
                                                                                            //        i_k:=3;
                                                                                               //        goto 11;
       result:=k;                                                                                      // end;
      end else begin k[0]:=-1;k[1]:=-1;result:=k;exit;
         end;
end;


 
russko ©   (2004-04-21 18:54) [31]

type  tmatrix=array of array of extended;
     tvector=array [0..1] of integer;
     tvector1=array of extended;


 
sniknik ©   (2004-04-22 08:50) [32]

ну чтож начало есть, осталось только узнать с каким параметром (данные и размерность) вызывалось это в 6й раз (ошибочный), чтобы проверить. потому как на глаз, это мне чегото не "разбирается", дригим видно тоже.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.268 c
1-1082450584
Романов Р.В.
2004-04-20 12:43
2004.04.11
Организовать последовательное выполнение приложений


11-1066745911
puky
2003-10-21 18:18
2004.04.11
MHXPStyle + D5


3-1079535500
Vilux
2004-03-17 17:58
2004.04.11
Какой SQL запрос или может компонент какой поможет?


1-1079958830
RodAM
2004-03-22 15:33
2004.04.11
Переход D5 - D7


1-1082384472
pantel
2004-04-19 18:21
2004.04.11
Написание Form Designer а