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;
}
 
Sitemizin tüm hakları saklıdır.
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol