Assalamu'alaikum pembaca
Mau ngshare ilmu lagi nich, semester kemaren saya mendapat praktikum di Integrated Labroratorium(Ilab) untuk mata kuliah matematika lanjut. Salah satu pertemuannya membahas tentang matriks invers dan ada soal membuat programnya d Pascal. Di soal saya diminta melengkapi baris-baris yang kosong pada program. Apakah selesai sampai di situ? Ternyata tidak, program yang di berikan setelah dicompile dengan menekan Ctrl+F9 banyak terjadi kesalahan di soal, seperti unknown indentifier dan kesalahan pengetikan. Setelah dikoreksi dan berhasil di run maka barulah program di upload dan pemberian nilai adalah 10 untuk upload yang terlacak dan 90 untuk yang sukses d compile dan berhubung saya mendapat 10 +90 alias 100 makanya saya mau ngshare. Ok itu sedikit curhat langsung aja ke programnya
untuk algoritmanya adalah sebagai berikut:
- mendeklarasikan variable
- memasukkan beberapa prosedur seperti input,output, invers2x2, dan invers3x3
- untuk tampilan program pertama adalah menu dengan opsi 1. input, 2. invers, 3.exit
- untuk opsi 1 berisi program menginput elemen matriks kemudian mencetak output
- untuk opsi 2 berisi program menampilkan adjoin matriks, determinan beserta inversnya
- untuk opsi 3 menghentikan program
untuk codingnya adalah sebagai berikut
uses wincrt;
type matrik = object
emat, kof : array [1..3,1..3] of integer;
procedure input;
procedure tampil;
procedure invers;
procedure invers2;
procedure invers3;
end;
var i,j,ordo,det,pil : integer;
mat : matrik;
procedure matrik.input;
begin
writeln ;
write ('Masukan Ordo Matrik ','ordo','X','ordo',' (3/2) : ');readln(ordo);
writeln;
for i := 1 to ordo do
begin
for j := 1 to ordo do
begin
write ('Elemen [',i,',',j,'] = ');
readln (emat[i,j]);
end;
end;
end;
procedure matrik.tampil;
begin
writeln;
for i:=1 to ordo do
begin
for j:= 1 to ordo do
begin
write (emat[i,j]:5,' ');
end;
writeln;
end;
readln;
end;
procedure matrik.invers;
begin
if ordo = 2 then matrik.invers2
else matrik.invers3;
end;
procedure matrik.invers2;
begin
writeln;
det := (emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]);
writeln ('Determinan Matrik = ',det);writeln;
writeln ('Matrik Inversnya :'); writeln;
writeln (emat[2,2],'/',det,' ','-',emat[1,2],'/',det);
writeln('-',emat[2,1],'/',det,' ',emat[1,1],'/',det);
readln;
end;
procedure matrik.invers3;
var detA, detB : integer;
{emat, kof : array [1..3,1..3] of integer;}
begin
detA:= (emat[1,1] * emat[2,2] * emat[3,3]) + (emat[1,2] * emat[2,3] * emat[3,1]) + (emat[1,3] * emat[2,1] * emat[3,2]);
detB:= (emat[1,3] * emat[2,2] * emat[3,1]) + (emat[2,3] * emat[3,2] * emat[1,1]) + (emat[1,2] * emat[2,1] * emat[3,3]);
det := detA - detB;
writeln;writeln ('Determinan Matrik = ', det);writeln;
kof[1,1]:=((emat[2,2]*emat[3,3])-(emat[3,2]*emat[2,3]));
kof[1,2]:=((emat[2,1]*emat[3,3])-(emat[2,3]*emat[3,1]))*-1;
kof[1,3]:=((emat[2,1]*emat[3,2])-(emat[2,2]*emat[3,1]));
kof[2,1]:=((emat[1,2]*emat[3,3])-(emat[1,3]*emat[3,2]))*-1;
kof[2,2]:=((emat[1,1]*emat[3,3])-(emat[1,3]*emat[3,1]));
kof[2,3]:=((emat[1,1]*emat[3,2])-(emat[1,2]*emat[3,1]))*-1;
kof[3,1]:=((emat[1,2]*emat[2,3])-(emat[1,3]*emat[2,2]));
kof[3,2]:=((emat[1,1]*emat[2,3])-(emat[1,3]*emat[2,1]))*-1;
kof[3,3]:=((emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]));
writeln ('Matrik Adjoin :');writeln;
for i :=1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[j,i]:8,' ');
end;
writeln;
end;
writeln;writeln ('Matrik Invers :');writeln;
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[i,j],'/',det,' ');
end;
writeln;
end;
readln;
end;
var detA, detB : integer;
{emat, kof : array [1..3,1..3] of integer;}
begin
detA:= (emat[1,1] * emat[2,2] * emat[3,3]) + (emat[1,2] * emat[2,3] * emat[3,1]) + (emat[1,3] * emat[2,1] * emat[3,2]);
detB:= (emat[1,3] * emat[2,2] * emat[3,1]) + (emat[2,3] * emat[3,2] * emat[1,1]) + (emat[1,2] * emat[2,1] * emat[3,3]);
det := detA - detB;
writeln;writeln ('Determinan Matrik = ', det);writeln;
kof[1,1]:=((emat[2,2]*emat[3,3])-(emat[3,2]*emat[2,3]));
kof[1,2]:=((emat[2,1]*emat[3,3])-(emat[2,3]*emat[3,1]))*-1;
kof[1,3]:=((emat[2,1]*emat[3,2])-(emat[2,2]*emat[3,1]));
kof[2,1]:=((emat[1,2]*emat[3,3])-(emat[1,3]*emat[3,2]))*-1;
kof[2,2]:=((emat[1,1]*emat[3,3])-(emat[1,3]*emat[3,1]));
kof[2,3]:=((emat[1,1]*emat[3,2])-(emat[1,2]*emat[3,1]))*-1;
kof[3,1]:=((emat[1,2]*emat[2,3])-(emat[1,3]*emat[2,2]));
kof[3,2]:=((emat[1,1]*emat[2,3])-(emat[1,3]*emat[2,1]))*-1;
kof[3,3]:=((emat[1,1]*emat[2,2])-(emat[1,2]*emat[2,1]));
writeln ('Matrik Adjoin :');writeln;
for i :=1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[j,i]:8,' ');
end;
writeln;
end;
writeln;writeln ('Matrik Invers :');writeln;
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
begin
write (kof[i,j],'/',det,' ');
end;
writeln;
end;
readln;
end;
begin
repeat
clrscr;
gotoxy (25,1);writeln ('***** Menu Matrik *****');
gotoxy (25,2);writeln ('1. Input Matrik');
gotoxy (25,3);writeln ('2. Matrik Invers');
gotoxy (25,4);writeln ('3. Keluar');
gotoxy (25,5);writeln ('************************');
gotoxy (27,6);write ('Pilihan [1..3] :'); readln (pil);
case pil of
1 : begin
mat.input;
mat.tampil;
end;
2 : mat.invers;
end;
repeat
clrscr;
gotoxy (25,1);writeln ('***** Menu Matrik *****');
gotoxy (25,2);writeln ('1. Input Matrik');
gotoxy (25,3);writeln ('2. Matrik Invers');
gotoxy (25,4);writeln ('3. Keluar');
gotoxy (25,5);writeln ('************************');
gotoxy (27,6);write ('Pilihan [1..3] :'); readln (pil);
case pil of
1 : begin
mat.input;
mat.tampil;
end;
2 : mat.invers;
end;
until (pil) = 3;
end.
tekan CTRL + F9
outputnya adalah sbb:
Tampilan Menu Utama
mohon maaf klo ada kekurangan, semoga bermanfaat
wassalamu'alaikum
Download Turbo Pascal :
http://www.eurodownload.com/download-software/134947/Turbo-Pascal-for-Windows.html
Download Turbo Pascal :
http://www.eurodownload.com/download-software/134947/Turbo-Pascal-for-Windows.html
Tidak ada komentar:
Posting Komentar