Список форумов Шадринский форум -> Программирование -> Delphi, Pascal, C, C# -> Error 207: Invalid floating point operation
Начать новую тему   Ответить на тему   вывод темы на печать

Error 207: Invalid floating point operation

Автор
Сообщение
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:30.40
Ответить с цитатой
Проблемка следующая:
Есть две окружности, перемещающиеся по экрану с постоянной скоростью, x,x2,y,y2 - координаты центров, r,r2 - радиусы. При попытке определить момент их столкновения вылетает указанная ошибка в следующем куске кода.


uses graph, crt; 
var  
Dr,Md,x,y,r,x2,y2,r2,xs1,ys1,xs2,ys2,rx,ry :integer; 
sx,sy: string;
rasst: real;
begin
  randomize;
  Dr:= Detect;
  InitGraph(Dr,Md,'');
  x:=Random(GetMaxX);
  y:=Random(GetMaxY);
  r:=Random(10)+5;
  x2:=Random(GetMaxX);
  y2:=Random(GetMaxY);
  r2:=Random(10)+5;
  repeat
    xs1:=Random(4)-2;
    ys1:=Random(4)-2;
    xs2:=Random(4)-2;
    ys2:=Random(4)-2;
  until ((xs1<>0) or (ys1<>0)) and ((xs2<>0) or (ys2<>0));
  repeat
    SetColor(2);
    Circle(x,y,r);
    SetColor(14);
    Circle(x2,y2,r2);
    x:=x+xs1;
    y:=y+ys1;
    x2:=x2+xs2;
    y2:=y2+ys2;
    if ((x-r<0) or (x+r>GetMaxX)) then xs1:=-xs1;
    if ((y-r<0) or (y+r>GetMaxY)) then ys1:=-ys1;
    if ((x2-r2<0) or (x2+r2>GetMaxX)) then xs2:=-xs2;
    if ((y2-r2<0) or (y2+r2>GetMaxY)) then ys2:=-ys2;
    rx:=abs(x2-x);
    ry:=abs(y2-y);
    rasst:=sqrt(sqr(rx)+sqr(ry));
    if rasst<(r+r2) then
    begin
      xs1:=-xs1;
      xs2:=-xs2;
      ys1:=-ys1;
      ys2:=-ys2;
    end;
    delay(10);
    cleardevice;
  until keypressed;
  CloseGraph;
end.



Ошибка показывается в третьей строке.
Если надо - покажу весь код, но он как раз работает без нареканий.
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713


Последний раз редактировалось: Вельхеор (2013.02.26 16:57.15), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:49.56
Ответить с цитатой
Вельхеор
а точно там в третей строке всё правильно? почемуто я думал что когда точки сталкиваются - у них координаты одинаковые получаются. соответственно нафиг лишние действия?
может так получится: if x=x2 and y=y2 then обработка .
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Fakir
Шадринский лавочник™


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 12665
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:54.05
Ответить с цитатой
тип какой у r и r2 ?
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:55.16
Ответить с цитатой
Ken't
у меня не точки, а окружности (сталкиваются краями, соответственно координаты центров не совпадают и приходится считать расстояние между точками (центрами) и сравнивать с суммой радиусов).
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:55.32
Ответить с цитатой
глючить может если rasst - имеет тип данных отличный от real.
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:56.12
Ответить с цитатой
Fakir
r, r2: integer;
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:56.14
Ответить с цитатой
Вельхеор
сорри, понял.
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:56.47
Ответить с цитатой
Ken't
rasst как раз таки real.
короче щас будет весь код
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Fakir
Шадринский лавочник™


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 12665
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:57.05
Ответить с цитатой
Ken't писал(а):
сли rasst - имеет тип данных отличный от real.

Ну воот, а я хотел меееедлено подвести человека к этому, чтоб сам дошел ))
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 16:58.34
Ответить с цитатой
Fakir
я как-то в курсе, что sqrt возвращает вещественное число
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dio
Шаман-заводчанин


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 29757


Статус: Offline
СообщениеДобавлено: 2013.02.26 16:59.40
Ответить с цитатой
Дают о себе знать корни педовские: 2 коммерсанта программированию учат.
_________________
Йа - водоросль.
Посмотреть профиль Отправить личное сообщение
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:00.51
Ответить с цитатой
Dio
а че тут путаться то, в паскале?
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
kolesa Warning: 1
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 20.10.2011
Сообщения: 2939


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:01.03
Ответить с цитатой
Посмотреть профиль Отправить личное сообщение
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:04.07
Ответить с цитатой
ага, студента 4 курса по специальности ПОВТ

Добавлено спустя 2 минуты 43 секунды:

а главное - я бы понял, если бы под корнем могло оказаться отрицательное число, но... rx, ry - положительные, их квадраты тем более, сумма двух положительных чисел думаю отрицательной стать не может...
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:04.23
Ответить с цитатой
Выведи rx и ry перед этим. Может понятно станет, что там )
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:13.07
Ответить с цитатой
Leon
выводил, они считаются нормально (всегда неотрицательные)
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:21.22
Ответить с цитатой
Вельхеор писал(а):
sqr(rx)+sqr(ry)

вот это выражение в паскале возвращает отрицательное значение
соответственно и извлечение корня не проходит
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:22.27
Ответить с цитатой
Ken't


сумма квадратов отрицательная?

я сначала подумал про отрицательное, но блин.
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:24.12
Ответить с цитатой
Вельхеор писал(а):
rx, ry - положительные

да. а под корнем - херь.

сам проверь, знаешь как ведь?

Добавлено спустя 50 секунд:

Leon писал(а):
сумма квадратов отрицательная?

да. я эту сумму квадратов отдельной переменной сделал. и значение смотрю в момент остановки. отрицательное.
сам в шоке
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Fakir
Шадринский лавочник™


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 12665
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:25.37
Ответить с цитатой
А говорят, что педовское образование ни кому не нужно. Вот ведь, пригодилось.
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:27.08
Ответить с цитатой
люблю паскаль

Добавлено спустя 27 секунд:

зря я стер свой пост про отрицательное

Добавлено спустя 55 секунд:

может sqr-ы тоже в скобки засунуть
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:27.38
Ответить с цитатой
Leon
самое ржачное: rx*rx +ry*ry - тоже отрицательное
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:28.13
Ответить с цитатой
Fakir писал(а):
А говорят, что педовское образование ни кому не нужно. Вот ведь, пригодилось.


по идее, любые знания когда-нибудь пригодятся. Особенно, если вечно жить.
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:28.44
Ответить с цитатой
как вариант такая конструкция sqrt(abs(sqr(rx)+sqr(y)))
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2013.02.26 17:29.18
Ответить с цитатой
Вельхеор

и пропала ошибка?
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:31.51
Ответить с цитатой
короче, не смейтесь:
rasst:=sqrt(ABS(sqr(rx)+sqr(ry))); вроде работает )))

Добавлено спустя 1 минуту 7 секунд:

есть подозрение что просто компы слишком умные для паскаля )))
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:33.02
Ответить с цитатой
ха! сработала такая конструкция: sqrt(abs(abs(sqr(rx))+abs(sqr(ry)))

Добавлено спустя 46 секунд:

Ken't
такая работает через раз, а если еще и sqr каждый в abs засунуть - вроде всегда
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:34.09
Ответить с цитатой
Вельхеор
debug ->watch очень полезный инструмент.

ps ну вот теперь у меня на компе будет паскаль
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Вельхеор
Писатель


Пол: Пол:Муж.
Зарегистрирован: 10.02.2011
Сообщения: 580
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:35.07
Ответить с цитатой
Ken't
ага, когда про него помнишь. в паскале последний раз писал 2 курса назад
_________________
Рано или поздно, так или иначе...
---
Контактная информация:
Email: maltsev080192@gmail.com
Тел: +790259два8три99
Discord: Xopc#1713
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Ken't
вуглускр


Пол: Пол:Муж.
Зарегистрирован: 03.12.2004
Сообщения: 23569
Откуда: Алушта, ЮБК

Статус: Offline
СообщениеДобавлено: 2013.02.26 17:36.00
Ответить с цитатой
Вельхеор писал(а):
в паскале последний раз писал 2 курса назад


а я 12 лет назад )))
_________________
Запчасти для иномарок. Новые, контрактные ДВС, КПП, кузовщина.
+7 912 52 9-OO-39
9-OO-39
www.avtotron45.ru
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 1 из 3
Начать новую тему   Ответить на тему   вывод темы на печать
На страницу 1, 2, 3  След.
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Delphi, Pascal, C, C# -> Error 207: Invalid floating point operation

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы