IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Динамические матрицы в процедуре, Есть проблема с динамическими данными...
P-Tigr
сообщение 15.03.2005 22:43
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Столкнулся с одной проблемой, 2 дня уже бьюсь... что делать - не знаю...
Если коротко, то дело вот в чем.
Я написал процедуру для подсчета определителя матрицы любого порядка (методом Гаусса). И там над матрицей выполняются различные преобразования (складывания строк и т.д.).
Причем - внимание - по условию задания матрица должна быть обязательно динамической!
Процедура работает нормально, определитель находит, НО в то же время изменяет исходную матрицу, а этого нельзя допустить!! Происходит это, как мне кажется, из-за того, что такие матрицы - ссылки на память, поэтому передать ее в процедуру строго по значению нельзя...

Замучился я с этими динамическими структурами... blink.gif
Please, умные люди, help me!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
P-Tigr
сообщение 16.03.2005 6:23
Сообщение #2





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Извините пожалуйста, еще 1 вопрос, помогите разобраться!
Почему при вводе некоторых данных, например
1 1 1
1 1 1
1 1 1
в блоке функции нахождения определителя:
for j:=0 to high(AC)-1 do
   begin
     for i:=j+1 to high(AC) do
       begin
         mn1:=AC[i,j]; mn2:=AC[j,j];
// ОШИБКА - в следующей строке   генерируется      
         mnoj:=mn1/mn2;
         for jk:=0 to high(AC) do
           begin
             AC[i,jk]:=AC[i,jk]-AC[j,jk]*mnoj;
           end;
       end;
   end;
в строке
mnoj:=mn1/mn2;

появляется ошибка, связанная с плавающей запятой:
"Invalid floating point operation" или "Floating divizion by zero".
ПОЧЕМУ?

P.S.1. Ошибка появляется и при вводе разных чисел, но правда не всегда - очень странно...
P.S.2. Я присоединил к письму exe-файл в rar-архиве - чтоб удобней было тестировать.


Прикрепленные файлы
Прикрепленный файл  Project1.rar ( 177.06 килобайт ) Кол-во скачиваний: 115
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
P-Tigr   Динамические матрицы в процедуре   15.03.2005 22:43
volvo   P-Tigr, давайте так: вы можете показать код процед...   15.03.2005 22:55
P-Tigr   Вот выдержки из кода: type TDMas = array of rea...   15.03.2005 23:08
P-Tigr   Причем кроме вышеописанной проблемы, при данных до...   15.03.2005 23:10
volvo   Компилятор какой? Delphi или FPC? Турбо-Паскаль от...   15.03.2005 23:11
P-Tigr   Естессно, Delphi ver 6   15.03.2005 23:12
volvo   Естественно, что я переношу тему в раздел Дельфи :...   15.03.2005 23:14
P-Tigr   :D Just OK. I'm sorry, первый раз на форуме...   15.03.2005 23:16
P-Tigr   Thanks, Volvo!   15.03.2005 23:20
volvo   Значит, предложение такое: при входе в функцию выч...   16.03.2005 1:14
P-Tigr   Извините пожалуйста, еще 1 вопрос, помогите разобр...   16.03.2005 6:23
volvo   Это не связано с вводимыми данными... Только с тем...   16.03.2005 9:16
volvo   P-Tigr, небольшая поправочка: Выход за пределы мас...   16.03.2005 11:42
P-Tigr   ОК, ошибка "Floating divizion by zero" у...   16.03.2005 18:40
volvo   Вам надо еще раз поставить 2 за "внимательнос...   16.03.2005 19:16
P-Tigr   Блин... Спасибо за помощь! :) Буду учиться :)   16.03.2005 20:02
$ad!st   вопрос не в тему... а что такое матрица??? вобщем ...   16.03.2005 23:24
klem4   http://forum.pascalnet.ru/index.php?showtopic=2694...   16.03.2005 23:26


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 11:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"