Teman-teman ini ada program penjumlahan,pengurangan,perkalian Matriks.
compile dengan turbo,borlan builder.
Senang Dapat berbagi pengetahuan dengan mu.
Kata Dosen Orang cerdas mau memberikan ilmu,orang pintar Gak mau.
Teman pilih yang mana?
#include <stdio.h>
#include <conio.h>
void inputordo (int *b1,int *k1,int *b2,int *k2)
{
printf("masukkan ordo matriks1(kolom*baris)maks 10:\n");scanf("%d%d",&*b1,&*k1);
printf("masukkan ordo matriks2(kolom*baris)maks 10:\n");scanf("%d%d",&*b2,&*k2);
}
void inputdata ( int b1,int k1,int b2,int k2,int m1[10][10],int m2[10][10])
{
int a,b;
printf("masukkan nilai matriks1 dimulai perbaris\n");
for(a=0;a<k1;a++)
{
for(b=0;b<b1;b++)
{
scanf("%d",&m1[a][b]);
}
}
printf("masukkan nilai matriks 2 dimulai perbaris \n");
for(a=0;a<k2;a++)
{
for(b=0;b<b2;b++)
{
scanf("%d",&m2[a][b]);
}
}
}
void tampilmatriks( int b1,int k1,int b2,int k2,int m1[10][10],int m2[10][10])
{
int a,b;
printf("matriks pertama\n");
for(a=0;a<k1;a++)
{
for(b=0;b<b1;b++)
{
printf("\t\t%d ",m1[a][b]);
}
printf("\n");
}
printf("matriks kedua\n");
for(a=0;a<k2;a++)
{
for(b=0;b<b2;b++)
{
printf("\t\t%d ",m2[a][b]);
}
printf("\n");
}
}
void penjumlahan( int b1,int k1,int m1[10][10],int m2[10][10],int H[10][10])
{
int a,b;
printf("================================================\n");
printf("hasil penjumlahan dari kedua matriks adalah\n\n");
for(a=0;a<k1;a++)
{
for(b=0;b<b1;b++)
{
H[a][b]=0;
H[a][b]=m1[a][b]+m2[a][b];
printf("\t\t%d ",H[a][b]);
}
printf("\n");
}
printf("================================================\n");
}
void pengurangan (int b1,int k1,int m1[10][10],int m2[10][10],int H[10][10])
{
int a,b;
printf("================================================\n");
printf("hasil pengurangan dari kedua matriks adalah\n\n");
for(a=0;a<k1;a++)
{
for(b=0;b<b1;b++)
{
H[a][b]=0;
H[a][b]=m1[a][b]-m2[a][b];
printf("\t%d ",H[a][b]);
}
printf("\n");
}
printf("================================================\n");
}
void perkalian (int k1,int b1,int b2,int m1[10][10],int m2[10][10],int H[10][10])
{
int a,b,c;
printf("================================================\n");
printf("Hasil perkalian dari kedua matriks adalah\n\n");
for(a=0;a<k1;a++)
{
for(b=0;b<b2;b++)
{
H[a][b]=0;
for(c=0;c<k1+(b1-k1);c++)
{
H[a][b]+=m1[a][c]*m2[c][b];
}
printf("\t\t%d\t ",H[a][b]);
}
printf("\n");
}
printf("================================================\n");
}
void menu(int *pil)
{
printf("\t\tMENU\n");
printf(" \t1.Penjumlahan\n");
printf(" \t2.Pengurangan\n");
printf(" \t3.Perkalian\n");
printf(" \t4.Keluar\n");
printf("\nmasukkan pilihan anda : ");scanf("%d",&*pil);
}
void ulang(int *ulang)
{
printf("anda ingin mengulang 1.ya/2.tidak :");
scanf("%d",&*ulang);
}
void keluar()
{
printf("Terimakasih telah menggunakan program ini");
}
main()
{
int B1,K1,B2,K2;
int pilihan;
int again;
int M1[10][10],M2[10][10],hsl[10][10];
input:
inputordo (&B1,&K1,&B2,&K2);
if(B1 >10 || K1 >10 || B2 > 10 || K2>10)
{
clrscr();
printf("ordo tidak lebih dari 10\n");
goto input;
}
else if(B1==1 && K1==1 || B2==1 && K2==1)
{
clrscr();
printf("Bukan Matriks\n");
goto input;
}
inputdata (B1,K1,B2,K2,M1,M2);
pil:
clrscr();
printf("================================================\n");
tampilmatriks(B1,K1,B2,K2,M1,M2);
printf("================================================\n\n");
menu(&pilihan);
switch(pilihan)
{
case 1:
{
if(B1==B2 && K1==K2)
{
penjumlahan(B1,K1,M1,M2,hsl);
ulang(&again);
switch(again)
{
case 1:
{
clrscr();
goto input;
}
case 2:
{
goto out;
}
}
}
else
{
clrscr();
printf("tidak dapat dilakukan penjumlahan\n\n");
goto input;
}
}break;
case 2:
{
if(B1==B2 && K1==K2)
{
pengurangan(B1,K1,M1,M2,hsl);
ulang(&again);
switch(again)
{
case 1:
{
clrscr();
goto input;
}break;
case 2:
{
goto out;
}break;
}
}
else
{
clrscr();
printf("tidak dapat dilakukan pengurangan\n");
goto input;
}
}break;
case 3:
{
if(B1==K2)
{
perkalian(K1,B1,B2,M1,M2,hsl);
ulang(&again);
switch(again)
{
case 1:
{
clrscr();
goto input;
}
case 2:
{
goto out;
}
}
}
else
{
clrscr();
printf("tidak dapat dilakukan perkalian\n");
goto input;
}
}break;
out:
case 4:
{
clrscr();
keluar();
}break;
default:
{
goto pil;
}break;
}
getch();
}