1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| program Gauss;
uses crt;
var
a:array[1..10,1..10] of real;
x:array[1..10] of real;
i,j,k,n:integer;
P:real;
begin
//Creation de la matrice
Writeln('Matrix order ');
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
write('A',i,j,' ');
readln(a[i,j]);
end;
write('B',i,' ');
readln(a[i,n+1]);
end;
clrscr;
//Ecriture de la m
for i:=1 to n do
begin
for j:=1 to n do
begin
write(a[i,j]:4:4,' x',j);
if j < n then write(' + ');
end;
writeln(' = ',a[i,n+1]:4:4);
end;
begin
j:=1
repeat
write(a[i,j]:4:4,' x',j);
if j < n then write(' + ');
until j=n ;
end;
writeln(' = ',a[i,n+1]:4:4);
end;
//Gauss procedure
for i:=1 to n-1 do
for j:=i+1 to n do
begin
P:=a[j,i];
for k:=1 to n+1 do
a[j,k]:=a[j,k] - P*a[i,k]/a[i,i];
end;
readln;
//Ecriture de Gauss
for i:=1 to n do
j:=1
while j = n do
begin
write(a[i,j]:4:4,' x',j);
if j < n then write(' + ');
end;
writeln(' = ',a[i,n+1]:4:4);
//calculate the values of x
x[n] := a[n,n+1] / a[n,n];
begin
i:=n
repeat
x[i]:=a[i,n+1];
until i= 1;
begin
j:= i+1
repeat
x[i]:=x[i] - a[i,j]*x[j];
until j=n;
x[i]:=x[i]/a[i,i];
end;
readln;
//Resultats
while i = n do
begin
write('x',i,' = ',x[i]:4:4,' ');
readln;
end;
end. |
Partager