MATRİSDE ÇARPMA İŞLEMİ
Arkadaşlar bugün size matrisde carpma işlemini anlatacığım.İlk önce ilk matrisinin satir ve sutününü alıyoruz.Daha sonra ise aldıgımız degerler boyutunda çift buyutlu matris oluşturuyoruz.Daha sonra ayni işlemleri diger matris için oluşturuyoruz.Daha sonra matris çarpma işlemine geçiyoruz.Matrisde carpma işleminde yeni oluşacak matris ilk matrisin sutun degeri yeni oluşacak matrisin satir degerine diger matrisin ise satir degeri ise yeni olşacak matrisin sutun degerine eşit olmaktadir.Daha sonra ise yeni matrisi oluşturmak için 3 tane for döngümüz bulunmaktadır.Bu matrisin iki for dongusunde birinde satir degerini digerinde ise sutun degerini tutmaktayız.Sonra üçüncü for dongusunde ise k= degerinde başlayıp il matrisin sutun degerini kadar dongu oluşturulur.Bunun bu şekilde oluturulmasının sebei matrisin satiri kadar dongu oluşturmak.
Formülü şu şekildedir:Toplam=toplam+(matris1[i][k]*matris2[k][j])
carp[i][j]=toplam
şeklinde olmaktadır.Burdaki amac ise ilk matrisde sutun sayisinda ilerlemekdeyken ikinci matrisede satir sayisinda degişme olmasidir.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
system("color 5A");
int satir, sutun,satir1,sutun1,i,j,toplam=0,k;
printf("1.Matrisin satirini giriniz...\n");
scanf("%d",&satir);
printf("1.Sutun sayisini giriniz...\n");
scanf("%d",&sutun);
int matris[satir][sutun];
printf("2.Matrisin satirini giriniz...\n");
scanf("%d",&satir1);
printf("2.Matrisin sutununu giriniz...\n");
scanf("%d",&sutun1);
int matris2[satir1][sutun1];
printf("\n...........1. Matrisin degerlerini giriniz........\n");
for(i=0;i<satir;i++)
{
for(j=0;j<sutun;j++)
{
printf("1.%d satiri 1.%d sutunundaki elemani giriniz...",i+1,j+1);
scanf("%d",&matris[i][j]);
}
}
for(i=0;i<satir1;i++)
{
for(j=0;j<sutun1;j++)
{
printf("2.%d satiri 2.%d sutunundaki elemani giriniz...",i+1,j+1);
scanf("%d",&matris2[i][j]);
}
}
int carp[sutun][satir1];
for(i=0;i<sutun;i++)
{
for(j=0;j<satir1;j++)
{ toplam=0;
for(k=0;k<sutun;k++)
{
toplam=toplam+(matris[i][k]*matris2[k][j]);
carp[i][j]=toplam;
}
printf("%d\t",carp[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
Formülü şu şekildedir:Toplam=toplam+(matris1[i][k]*matris2[k][j])
carp[i][j]=toplam
şeklinde olmaktadır.Burdaki amac ise ilk matrisde sutun sayisinda ilerlemekdeyken ikinci matrisede satir sayisinda degişme olmasidir.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
system("color 5A");
int satir, sutun,satir1,sutun1,i,j,toplam=0,k;
printf("1.Matrisin satirini giriniz...\n");
scanf("%d",&satir);
printf("1.Sutun sayisini giriniz...\n");
scanf("%d",&sutun);
int matris[satir][sutun];
printf("2.Matrisin satirini giriniz...\n");
scanf("%d",&satir1);
printf("2.Matrisin sutununu giriniz...\n");
scanf("%d",&sutun1);
int matris2[satir1][sutun1];
printf("\n...........1. Matrisin degerlerini giriniz........\n");
for(i=0;i<satir;i++)
{
for(j=0;j<sutun;j++)
{
printf("1.%d satiri 1.%d sutunundaki elemani giriniz...",i+1,j+1);
scanf("%d",&matris[i][j]);
}
}
for(i=0;i<satir1;i++)
{
for(j=0;j<sutun1;j++)
{
printf("2.%d satiri 2.%d sutunundaki elemani giriniz...",i+1,j+1);
scanf("%d",&matris2[i][j]);
}
}
int carp[sutun][satir1];
for(i=0;i<sutun;i++)
{
for(j=0;j<satir1;j++)
{ toplam=0;
for(k=0;k<sutun;k++)
{
toplam=toplam+(matris[i][k]*matris2[k][j]);
carp[i][j]=toplam;
}
printf("%d\t",carp[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}