Правильно записанное условие - это половина решения Зеленивская Светлана Аполлинариевна
Здравствуйте все.
У меня такая проблемка(мож конечно окажется что я нуб нубом), но все же.
У меня есть программа на DELPHI
Вот ссылка на прогу
file.pro-street.us/download.php?file=56e168deec...
Вот ссылка на процедуру с кодом интересуюшую меня
paste.org.ru/?0d6lmp
Так в вот в чем заключается проблемка.
Когда я ввожу размер матрицы 2 на 2 и больше. Нажимаю нарисовать матрицу. Заполняю ее единичной и нахожу обратную мне надо найти погрешность расчетов(что и делает моя процедурка).
При нажатий показать точность выбивается ошибка 'Invalid floating point operation'. Ругается на строку 36(вставка кода).
При этом на другом компьютере ошибка не возникает... И это не первый раз ругательство при использований такого типа команды
edit1.Text:=FloatToStr(diag);
Подскажите в чем проблема.
Заранее спс=)
У меня такая проблемка(мож конечно окажется что я нуб нубом), но все же.
У меня есть программа на DELPHI
Вот ссылка на прогу
file.pro-street.us/download.php?file=56e168deec...
Вот ссылка на процедуру с кодом интересуюшую меня
paste.org.ru/?0d6lmp
Так в вот в чем заключается проблемка.
Когда я ввожу размер матрицы 2 на 2 и больше. Нажимаю нарисовать матрицу. Заполняю ее единичной и нахожу обратную мне надо найти погрешность расчетов(что и делает моя процедурка).
При нажатий показать точность выбивается ошибка 'Invalid floating point operation'. Ругается на строку 36(вставка кода).
При этом на другом компьютере ошибка не возникает... И это не первый раз ругательство при использований такого типа команды
edit1.Text:=FloatToStr(diag);
Подскажите в чем проблема.
Заранее спс=)
Например, задать перед 36-той строкой явно значение diag = 0; (или diag = 1.0) и посмотреть, будет ли вылетать.
У тебя процессор какой в компе? Может, специфически скомпилированный код (что маловероятно, но исключать нельзя) он не понимает. У меня программа не вылетает.
Windows XP SP3
в том то и прикол что на ноуте у одногрупника и на универских компах не ругается. Поэтому и решил спросить, мож кто знает в чем прикол(
Я то сдаю проги не на своем компе(слава богу в этом случае), но было интересно в чем прикол тут.
Спс тебе
и оно выбило ту же ошибку. =(
Э, стоп. Функция у тебя для типа данных Float, а ты ей кормишь double. Видимо, не может сделать преобразование типов.
Так ведь элементы матрица типа добле, и вывод обратной матрицы через FloatToStr. И прога нормально хавает дабл
Да мне тоже интересно =)
По идее, не должно вылетать.
Я не знаю, как в Delphi реализовано неявное преобразование типа.
Если время позволяет, напиши короткую программу:
diag:double;
str: string;
diag:=0;
str:=FloatToStr(diag);
И хорошо бы, ассемблерный код, в смысле на какой инструкции падает. (отладчик должен передавать управление)
Я спать.