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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 11:51   #1
ВСЁПРОСТО
Новичок
Джуниор
 
Регистрация: 24.08.2010
Сообщений: 1
По умолчанию Invalid floating point operation ужасная ошибка

написала программку и входе выполнения выскакивает ошибка 207 Неверная операция с плавающей точкой (Invalid floating point operation), помогите пожалуйста, очень надо.
Вот кусочек текста:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  maxd : extended;
  i, t, maxn, k:integer;
  a:array[1..10] of extended;
  w:array[1..10] of extended;
  w1:array[1..10] of extended;
  d:array[1..10] of extended;
  x:array[1..10] of integer;
  f:array[1..10] of extended;
begin
........
for i:=1 to s do w1[i]:=w[i];
    repeat
      for k:=1 to s do begin
        d[k]:=a[k]*w1[k];
        if d[k]> maxd then begin maxd:=d[k]; maxn:=k; x[k]:=x[k]+1; end;
      end;
       x[maxn]:=x[maxn]+1;
       w1[maxn]:=1-w[maxn];
       t:=t+1;
      for k:=1 to s do
       f[t]:= f[k]+d[k];
      f[t]:=f[t]+maxd;
until    t<=G  ;
в выделенном месте застревает программа (((

Последний раз редактировалось Stilet; 25.08.2010 в 10:50.
ВСЁПРОСТО вне форума Ответить с цитированием
Старый 24.08.2010, 12:04   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Значение одного из операндов (a[k] или w1[k]) или результирующее значение (d[k]) выходит за пределы допустимых значений для типа Extended.
Допустимые значения всех числовых типов приведены в справке.
А на какой итерации (шаге) непорядок надо смотреть в отладке.
Скандербег вне форума Ответить с цитированием
Старый 24.08.2010, 15:03   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
for i:=1 to s do w1[i]:=w[i]; //W1 мы заполнили
repeat
for k:=1 to s do begin
d[k]:=a[k]*w1[k]; //а кто заполнит A
i
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.08.2010, 15:32   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,725
По умолчанию

Можно попробывать заюзать дерективы сопроцессора.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
invalid floating point operation Mikhail91 Общие вопросы C/C++ 5 24.03.2010 00:05
Ошибка: invalid floating point operation Willow Помощь студентам 3 24.01.2010 18:42
Вылезает ошибка with massage 'Invalid floating point operation' подскажите как устранить. Herly Помощь студентам 2 09.01.2010 18:56
Invalid floating point operation Skytis Помощь студентам 3 07.05.2008 12:16
Возникает ошибка Invalid floating point operation Иринкаа Помощь студентам 3 29.11.2007 22:10