Błąd dzielenia przez zero

Błąd dzielenia przez zero
R7
  • Rejestracja: dni
  • Ostatnio: dni
0

Znalazłem taki kod do obliczania wyznacznika macierzy. Problem występuje wtedy gdy na przekątnej macierzy znajduje się liczba 0. Wywala błąd dzielenia przez zero. Jak można tego uniknąć

Kopiuj
for k:=1 to n-1 do
 for l:=k+1 to n do
   for m:=k+1 to n do
     I[l,m] := I[l,m] - I[l,k]/I[k,k] * I[k,m];
det:=1;
for k:=1 to n do det := det * I[k,k];

Dzięki za pomoc

Artur
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
for k:=1 to n-1 do
 for l:=k+1 to n do
   for m:=k+1 to n do
   begin
     if I[k,k]<>0 then
        I[l,m] := I[l,m] - I[l,k]/I[k,k] * I[k,m]
     else
        //instrukcje jakie mają być wykonane w przypadku wystąpienia dzielenia przez zero 
   end;
//nio i trzeba jeszcze poniższy fragment nieco zmodyfikować, ale to zależy od Ciebie jak chcesz to zrobić
det:=1;
for k:=1 to n do det := det * I[k,k];
Odysseus
  • Rejestracja: dni
  • Ostatnio: dni
0
rafal733 napisał(a)

Znalazłem taki kod do obliczania wyznacznika macierzy. Problem występuje wtedy gdy na przekątnej macierzy znajduje się liczba 0.

Kopiuj


Znakiem tego kod jest do bani :/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.