Friday, 9 December 2016

Contoh Pascal Metode Eliminasi Gauss Jordan



program eliminasigauss;
uses crt;

Type
Matrik = record
Row, col : byte;
Element : array [1..99, 1..99] of real;
End;
Vektor = record
Row : byte;
Element : array [1..99] of real;
End;
Var
x, b : vektor;
A : matrik;
n : integer;
c : real;
Err : boolean;
Procedure masukkandata;
Var i,j : byte;
Begin
Writeln('  Penyelesaian Perhitungan SPL dengan Metode Eliminasi Gauss Jordan');
writeln;
Write ('Banyaknya persamaan adalah : ');Readln (n);
A.row := n;
A.col := n ;
b.row := n;
for i := 1 to n do
begin writeln;
writeln ('Persamaan ke-',i );
for j := 1 to n do
begin
write ('X[',i,',',j,'] = ');readln (A.element[i,j]);
end;
write('Y[',i,']   = '); readln(A.element[i,n+1]);
writeln;
end;
end;
procedure eliminasigauss;
var I,j,k : integer;
temp, S : real;
Begin
Err := false;
For i := 1 to n do
Begin
If (A.element[i,i] = 0 ) then
Begin
write(A.element[i,i]) ;
Err := true;
Exit;
End;
temp := A.element[i,i];
for k := 1 to n+1 do
begin
A.element[i,k] := A.element[i,k] / temp;
end;
For j := 1  to n do
begin
if(j<>i) then
begin
c := A.element[j,i];
for k := 1 to n+1 do
begin
A.element[j,k] := A.element [j,k] - (c * A.element[i,k]);
end;
end;
end;
end;
x.row := n;
for i := n downto 1 do
begin
if (A.element [i,i] = 0.0 ) then
Begin
Err := true;
Exit;
End;
x.element[i] := A.element[i,n+1];
end;
end;
Procedure tulishasil;
Var i : byte;
Begin
If (err) then
Begin
Writeln ('Persamaan linear tidak dapat diselesaikan');
End
Else
Begin
Writeln;
Writeln ('Jadi Penyelesaian persamaan linear dengan menggunakan eliminasi gauss Jordan adalah : ');
writeln('____________________________________________________________________________');
For i := 1 to x.row do
Writeln('X',i,' = ',x.element[i]:6:2);
End;
End;
Begin
clrscr;
Masukkandata;
Eliminasigauss;
Tulishasil;
readln;
end.

Contoh Program Matriks Invers Pascal (Contoh Program Pascal)



program matriks_invers;
uses crt;

var n,i,j,x,y,k,l,m: integer;
a:array[1..20,1..20] of real;

begin
clrscr;
writeln ('Program Pencarian Invers Matriks');
writeln;
writeln ('Masukkan ordo matrik (n x n).');
write ('n : ');
readln (n);
writeln;
for i:=1 to n do
begin
for j:=1 to n do
begin
write ('A(',i,',',j,') : ');
readln (a[i,j]);
end;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write (' ',a[i,j]:0:0);
writeln;
end;

for j:=n+1 to n+n do
begin
i:=j-n;
a[i,j]:=1;
end;
for j:=n+1 to n+n do
begin
for i:=1 to n do
if i<>j-n then a[i,j]:=0;
end;

for i:=1 to n do
begin
for j:=1 to n+n do
begin
if i<>j then a[i,j]:=a[i,j]/a[i,i];
end;
for j:=1 to n+n do
begin
if i=j then a[i,j]:=1;
end;

for l:=1 to n do
begin
if i<>l then
begin
for j:=i+1 to n+n do
begin
a[l,j]:=a[l,j]-(a[i,j]*a[l,i]);
end;
end;
end;

for k:=1 to n do
begin
if i<>k then
begin
a[k,i]:=0;
end;
end;
end;

readln;
writeln('Maka invers dari matrik adalah :');
for i:=1 to n do
begin
for j:=n+1 to n+n do
write (' ',a[i,j]:0:2);
writeln;
end;

readln;
end.