Assalamualikum w.w,
Berikut ini cara untuk menyelesaikan beberapa soal tentang materi array 2 dimensi (Mengalikan matriks 2x3 denganvektor) :
1. Mengidentifikasi Masalah:
cara mengalikan matriks 2x3 dengan vektor
2. Menentukan Input dan Output nya
input = Matrik :[2 3 4 ]
[5 2 1 ]
Vektor : [1]
[2]
[3]
output = [20]
[12]
3. Membuat Flowchart Algoritma :
Procedur kali matriks
Deklarasi :
a,b = integer
Deskripsi :
for a (baris)
for b (kolom)
mat_kali[a,b]
for k
mat_kali[a,b] <- mat_kali[a,b]+matriks1[a][k] * matriks2[k][b]
end for
end for
end
4. Implementasikan dengan bahasa C++:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void baca_matriks(int mat[10][10], int baris, int kolom){
int a,b;
for(a=0;a<baris;a++)
for(b=0;b<kolom;b++){
cout<<"Data["<<a+1<<","<<b+1<<"]:";
cin>>mat[a][b];
}
}
void kali_matriks(int matriks1[10][10],int matriks2[10][10],int baris,int kolom,int barkol,int mat_kali[10][10]){
for(int a=0;a<baris;a++)
for(int b=0;b<kolom;b++){
mat_kali[a][b]=0;
for(int k=0;k<barkol;k++)
mat_kali[a][b]= mat_kali[a][b] + matriks1[a][k]*matriks2[k][b];
}
}
void cetak_matriks(int A[10][10],int baris,int kolom){
for(int a=0;a<baris;a++){
for(int b=0;b<kolom;b++)
cout<<A[a][b];
cout<<endl;
}
}
int main(int argc, char** argv) {
int x,y,z;
int matriks1[10][10],matriks2[10][10];
int hasil[10][10];
x=2;
y=3;
z=1;
cout<<"Data Matriks"<<endl;
baca_matriks(matriks1,x,y);
cetak_matriks(matriks1,x,y);
cout<<"Data Vektor"<<endl;
baca_matriks(matriks2,y,z);
cetak_matriks(matriks2,y,z);
kali_matriks(matriks1,matriks2,x,z,y,hasil);
cout<<"Hasil Perkalian = "<<endl;
cetak_matriks(hasil,x,z);
return 0;
}
Gambar program nya:
Gambar output nya:
5. Tes menggunakan data:
Matriks :
A = :[2 3 4 ]
[5 2 1 ]
B = [1]
[ 2]
[ 3]
C= PERKALIAN
|A11*B11 + A12*B21 + A13*B31|
|A21*B11 + A22*B21 + A23*B31|
= |2*1 + 3*2 + 3*4|
|5*1 + 2*2 + 1*3|
= |20|
|12|
Alhamdulillah
Selamat mencoba dan semoga bermanfaat :)
Wassalamualikum w.w.
0 komentar:
Posting Komentar