Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

Подмогните студенту! Рекурсия.   Найти похожие ветки 

 
MGWarlock ©   (2005-03-10 15:14) [0]

Недавно столкнулся с такой вещью, как рекурсия. Решил написать программу нахождения определителя матрицы. Написал. Но вот работает эта программа как-то странно. Определитель вечно равен нулю. Ошибку в своем коде я найти не смог. Подскажите правильный алгоритм, или хотя бы ткните пальцем в то место, где я облажался.



TMatrix= array [1..100,1..100] of integer;
...

{Находение Минора матрицы NxN по первой строке и столбцу "Stolb"}

Function GetMinor(Var B: TMatrix; N, Stolb: integer): TMatrix;
VAR i,j,row,col: integer;
   Buf: TMatrix;
Begin
 col:=1;
 For j:=1 to N do
 Begin
   If j<>Stolb then
   Begin
     For i:= 2 to N do
     Begin
       Buf[i-1,col]:= B[i,j];
     End;
     col:=col+1;
   End;
 End;
Result:= Buf;
End;

{Нахождение определителя матрицы NxN}
Function Determinant(Var A: TMatrix; N: integer) : integer;
Var i: integer;
   Buf: TMatrix;
   Det: integer;
Begin
 Det:=0;
 If N=2 then det:= A[1,1]*A[2,2]-A[1,2]*A[2,1] else
 Begin
   For i:=1 to N do
   Begin
     Buf:= GetMinor(A,N,i);
     Det:= Det+ Determinant(Buf,N-1);
   End;
 End;
End;


 
Fay ©   (2005-03-10 15:28) [1]

См. [1]


 
GuAV ©   (2005-03-10 15:28) [2]

Похоже, в GetMinor всё неправильно. И где умножение минора на элемент и знак ?

Кстати, IMHO лучше не сдвигать столбцы, а создать параметр рекурентной фции ExcludeColumns типа set of
1..100; (я так решал, ещё на паскале :) )

Чтобы найти и выявить ошибки, кроме F9, нужно исспользовать ещё F5, F7, F8


 
MGWarlock ©   (2005-03-10 16:10) [3]

Огромное спасибо. Исправлюсь.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.034 c
14-1110301938
SomeMan
2005-03-08 20:12
2005.03.27
Задачка


3-1109080112
denis24
2005-02-22 16:48
2005.03.27
Проблема с Fibplus 5.3.0


6-1106827836
AlexG
2005-01-27 15:10
2005.03.27
Проблема с установкой callback-функции на функцию WinInet...


3-1109784056
Алексей Петухов
2005-03-02 20:20
2005.03.27
blob поля в ms access и ado


1-1110852340
diabolik_krsk
2005-03-15 05:05
2005.03.27
Tmenu + TResourceStream + TBitmap





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский