Pages

Rabu, 28 April 2010

Tugs Tambahan Modul 5 Praktikum Alpro


TUGAS TAMBAHAN
Buatlah menu matrik yang berisi matrik penjumlahan, matrik pengurangan, dan matrik perkalian.
LISTING PROGRAM :
Running Program :

Tugas Akhir Modul5 Praktikum Alpro

Tugas Akhir
Pertanyaan:
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk operasi invers matriks sampai ordo 3!
jawaban :
progrm invers;
uses wincrt;
var
nomor_menu:integer;
procedure ordo2;
var
A,B,C,D,i,invers:real;
begin
clrscr;gotoxy(20,1);
writeln('Mencari Invers Matriks Ordo 2x2 ');
gotoxy(10,5);write('A=');read(A);
gotoxy(18,5);write('B=');read(B);
gotoxy(10,7);write('C=');read(C);
gotoxy(18,7);write('D=');read(D);
i:=(A*D)-(B*C);
if not(i=0) then
begin
invers:=1/((A*D)-(B*C));
A:=D*invers;
B:=-B*invers;
C:=-C*invers;
D:=A*invers;
gotoxy(25,10);writeln('Invers matriks A =');
gotoxy(10,13);write(A:0:3);
gotoxy(18,13);write(B:0:3);
gotoxy(10,16);write(C:0:3);
gotoxy(18,16);write(D:0:3);
end;
end;
procedure ordo3;
var
A,B,C,D,E,F,G,H,I:real;
ADet,BDet,CDet,DDet,EDet,FDet,GDet,HDet,IDet:real;
Det:real;
AI,BI,CI,DI,EI,FI,GI,HI,II:real;
begin
clrscr;gotoxy(20,1);
writeln('Mencari Invers Matriks Ordo 3x3 ');
gotoxy(10,5);write('A=');read(A);
gotoxy(18,5);write('B=');read(B);
gotoxy(27,5);write('C=');read(C);
gotoxy(10,7);write('D=');read(D);
gotoxy(18,7);write('E=');read(E);
gotoxy(27,7);write('F=');read(F);
gotoxy(10,9);write('G=');read(G);
gotoxy(18,9);write('H=');read(H);
gotoxy(27,9);write('I=');read(I);

{mencari determinan disetiap elemen}
ADet:=(E*I)-(F*H);
BDet:=-((B*I)-(C*H));
CDet:=(B*F)-(C*E);
DDet:=-((D*I)-(F*G));
EDet:=(A*I)-(C*G);
FDet:=-((A*F)-(C*D));
GDet:=(D*H)-(E*G);
HDet:=-((A*H)-(B*G));
IDet:=(A*E)-(B*D);
{DATA TERSEBUT SUDAH HASIL DARI TRANSPOS}

Det:=(A*E*I)+(B*F*G)+(C*D*H)-(C*E*G)-(A*F*H)-(B*D*I);
if not(Det=0) then
begin
AI:=1/Det*((E*I)-(F*H));
BI:=1/Det*(-((B*I)-(C*H)));
CI:=1/Det*((B*F)-(C*E));
DI:=1/Det*(-((D*I)-(F*G)));
EI:=1/Det*((A*I)-(C*G));
FI:=1/Det*(-((A*F)-(C*D)));
GI:=1/Det*((D*H)-(E*G));
HI:=1/Det*(-((A*H)-(B*G)));
II:=1/Det*((A*E)-(B*D));

gotoxy(30,10);
writeln('Invers matriks A =');
gotoxy(10,13);write(AI:0:3);
gotoxy(18,13);write(BI:0:3);
gotoxy(27,13);write(CI:0:3);
gotoxy(10,16);write(DI:0:3);
gotoxy(18,16);write(EI:0:3);
gotoxy(27,16);write(FI:0:3);
gotoxy(10,19);write(GI:0:3);
gotoxy(18,19);write(HI:0:3);
gotoxy(27,19);write(II:0:3);
end;
end;

begin
clrscr;
writeln(' 1.ordo2 ');
writeln(' 2.ordo3 ');
write(' Masukkan pilihan anda= ');readln(nomor_menu);
case nomor_menu of
1:begin
ordo2;
end;
2:begin
ordo3;
end;
end;
end.

Running Program :