Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка Invalid floating point operation(Delphi)

49K
24 июня 2009 года
drenchick
5 / / 20.06.2009
Eсть процедура умножения матриц:
[ code ] [ /code ]procedure TForm1.MMUL(A, B : TMatrIx; out C : TMatrIx);
label fInIsh;
var I,g,n:Integer;
e:real;
begIn
e:=0;
If (GetColCount(A)=1)and(GetRowCount(A)=1)and(GetColCount(B)=1)and(GetRowCount(B)=1) then begIn
SetLength(C,1,1);
C[0,0]:=RoundTo(A[0,0]*B[0,0],-ExactItude);
goto fInIsh;
end;
If (GetColCount(A)=1)and(GetRowCount(A)=1) then begIn
MMULC(a[0,0],B,C);
goto fInIsh;
end;
If (GetColCount(B)=1)and(GetRowCount(B)=1) then begIn
MMULC(b[0,0],A,C);
goto fInIsh;
end;
If GetColCount(A)=GetRowCount(B) then begIn
SetLength(C,GetColCount(B),GetRowCount(A));
for I:=0 to Length(c)-1 do
for g:=0 to Length(c[0])-1 do begIn
for n:=0 to GetColCount(A)-1 do
e:=e+RoundTo(A[n,I]*B[g,n],-ExactItude);
c[g,I]:=e;
e:=0;
end;
end
else
raIse EMathError.Create('Длина строки первой матрицы и высота столбца второй матрицы неравны');
fInIsh:
end;
[/code]

Есть элемент кода вызывающий процедуру:
SetLength(XX_1X_,mx+1,n);
SetLength(XX_1,mx+1,mx+1);
setlength(X_,n,mx+1);
MMUL(XX_1,X_,XX_1X_);

Помогите кто- нибудь выяснить причину! Это срочно ппц. Бокалаврская в 9 сдаетса изза этого неработает ничего((((
просто вродебы все правильно А[MxN] multiply В[NxK]= С[MxK].
6
24 июня 2009 года
George
4.1K / / 05.01.2007
Господи Боже, когда это кончится. Оформьте код и скажите, в какой строке ошибка. Искать неохота. У Вас глюк где то с числом с плавающей запятой - это видно из названия.
49K
25 июня 2009 года
drenchick
5 / / 20.06.2009
ошибка воттут
e:=e+RoundTo(A[n,I]*B[g,n],-ExactItude);
6
25 июня 2009 года
George
4.1K / / 05.01.2007
что возвращает
 
Код:
RoundTo(A[n,I]*B[g,n],-ExactItude);
?
точно ли адекватное значение? Посмотрите отладчиком

ps. Оформьте код тэгами [ code ] [ /code ] без пробелов внутри скобок. Иначе нарушаете правила форума.
49K
25 июня 2009 года
drenchick
5 / / 20.06.2009
та вроде все хорошо.. а без этого некак несправитса не


что возвращает
Код:
RoundTo(A[n,I]*B[g,n],-ExactItude);
?
точно ли адекватное значение? Посмотрите отладчиком

незнаю, должен возвращать умноженный эл -т строки на соответств столбец
6
25 июня 2009 года
George
4.1K / / 05.01.2007
вот и проверьте, возвращает ли. Должен то должен, только программы не всегда работают так, как должны, а точнее авторам иногда кажется, что должны, а на самом деле не так. Бегом в отладчик.
49K
25 июня 2009 года
drenchick
5 / / 20.06.2009
пишет wrong expression , и undeclarated identifier e. непонятно . E: real; Просто эта процедура работает для умножения матриц например X''*X а нехочет умножать ((X''*X)^-1)*X. Воттакие дела(
247
25 июня 2009 года
wanja
1.2K / / 03.02.2003
Лично у меня такая ашыпка как правило возникает, когда я забываю что-нибудь инициализировать.
49K
25 июня 2009 года
drenchick
5 / / 20.06.2009
эх я там коечто подправил и возникает теперь АКСЭС ВАЙОЛЭЙШОН! гонево какоето... помогите..

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог