Jumat, 14 Oktober 2011

Menghitung Determinan Matriks

Ini sebenernya udah lama tersimpan di project ane gan, cuman mau share ilmu aja :D
Dari pada susah-susah ngitung Determinan secara manual mending komputer aja yang suruh mikir, ya ga? :P


#include <stdio.h>
#include <conio.h>

int a[3][3],mat,ukuran,hasil;
char ulang;

void matriks(){
printf("Elemen Matriks A :\n");
for (int i=0;i<ukuran;i++)
{
for (int j=0;j<ukuran;j++)
{
printf("Elemen ke [%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
}



void determinan(){
printf("\nMatriks A :\n");
for (int i=0;i<ukuran;i++){
for (int j=0;j<ukuran;j++){
mat = a[i][j];
printf("%d\t",mat);
}
printf("\n");
}

switch (ukuran){
case 1 :
hasil = a[0][0];
      printf("\nDeterminan Matriks A : \n");
   printf("%d",hasil);break;
case 2 :
hasil = (a[0][0]*a[1][1])-(a[1][0]*a[0][1]);
printf("\nDeterminan Matriks A : \n");
printf("%d - %d = ",(a[0][0]*a[1][1]),(a[1][0]*a[0][1]));
printf("%d",hasil);break;
case 3 :
hasil = (a[0][0]*(a[1][1]*a[2][2]-a[2][1]*a[1][2]))- (a[0][1]*(a[1][0]*a[2][2]-a[2][0]*a[1][2]))+(a[0][2]*(a[1][0]*a[2][1]-a[2][0]*a[1][1]));
printf("\nDeterminan Matriks A : \n");
printf("%d(%d) - %d(%d) + %d(%d) = ",a[0][0],(a[1][1]*a[2][2]-a[2][1]*a[1][2]),a[0][1],(a[1][0]*a[2][2]-a[2][0]*a[1][2]),a[0][2],(a[1][0]*a[2][1]-a[2][0]*a[1][1]));
printf("%d",hasil);break;
}
}

void perulangan(){
   do{
clrscr();
printf("Masukkan ukuran matriks antara 1 - 3 : ");scanf("%d",&ukuran);
}while (ukuran >3);

printf("Ukuran matriks adalah %d x %d\n\n",ukuran,ukuran);

matriks();

determinan();

printf("\n\nUlang? (y/t) ");scanf("%s",&ulang);
}
void main(){
do{
perulangan();
}while(ulang=='y');

if (ulang=='t'){
printf("\nTERIMAKASIH\n\n");
printf("By : Cahyo Dimas Kurnianto\n");
printf("     672010012");
}
}

Tidak ada komentar:

Posting Komentar