Witam, moim zadaniem jest napisanie programu rozwiązującego układ równać metodą eliminacji Jordana. Napisałem kod, który już przy pierwszej pętli działa nie poprawnie i nie wiem gdzie leży błąd. Załączam część kodu w której występuje problem.
program jordans_method;
uses
crt;
type
tablica = array [1..4, 1..5] of real;
var
a : tablica;
i,j : integer;
begin
clrscr;
WriteLn('Program wyszukuje rozwiazania ponizszego ukladu rownan metoda eliminacji Jordana-Gaussa');
WriteLn();
WriteLn('Podany uklad rownan to: ');
WriteLn('2x + 1y - 0.1z + 1w = 2.7');
WriteLn('0.4x + 0.5y + 4z - 8.5w = 21.9');
WriteLn('0.3x - 1y + 1z + 5.2w = -3.9');
WriteLn('1x + 0.2y + 2.5z - 1w = 9.9');
a[1,1]:=2;
a[1,2]:=1;
a[1,3]:=-0.1;
a[1,4]:=1;
a[1,5]:=2.7;
a[2,1]:=0.4;
a[2,2]:=0.5;
a[2,3]:=4;
a[2,4]:=-8.5;
a[2,5]:=21.9;
a[3,1]:=0.3;
a[3,2]:=-1;
a[3,3]:=1;
a[3,4]:=5.2;
a[3,5]:=-3.9;
a[4,1]:=1;
a[4,2]:=0.2;
a[4,3]:=2.5;
a[4,4]:=-1;
a[4,5]:=9.9;
for j:=1 to 5 do
a[1,j]:=a[1,j]/a[1,1];
Problem jest leży właśnie w tej ostatniej pętli. Dla kolejnych elementów macierzy tj. 2, 1, -0.1, 1, 2.7, pętla powinna moim zdaniem dać wyniki 1, 0.5, -0.05, 0.5, 1.35. Niestety pętla zmienia tylko pierwszy element, pozostawiając resztę bez zmian. Byłbym bardzo wdzięczny za wskazówkę gdzie robię błąd.