C Programlama Dili Matris Çarpma işlemi (Kullanıcı istediği Boyutlarda işlem Yapabilir)
C Programlama dili matris çarpma işlemini yapacağınız en anlaşılır C kodu. Kullanıcının istediği boyutlardaki 2 matrisi çarpıp ekrana yazdırır.
Matriste çarpma işlemi yaptırırken 1. matrisin sütunu ile 2. matrisin satır sayısının eşit olması lazım. Örneğin matris1 2×3 boyutunda ise matris iki 3×5 olabilir. Burdaki 3 lerin ortak olma şartı vardır. Yeni oluşacak yeni matris ise 2×5 boyutunda olur.
- Kullanıcıdan 1. matrisin satır sayısı, 1. matrisin sütun sayısı ve 2. matrisin sütun sayısı istenilir. 2. matrisin satır sayısı istenilmez. Çünkü 2. matrisin satır sayısı 1. matrisin sütun sayısına eşit olması gerekir. Farklı bir değer giremez!
- Kullanıcıdan 1. matrisin ve 2. matrisin elemanlarının girilmesi istenilir.
- En son bu iki matris çarpılır ve her çarpma işleminden sonra ekrana yazdırılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
#include <stdio.h> #include <stdlib.h> int main(){ int satir, sutun1, sutun2, toplam = 0; printf("1. matris satir sayisi giriniz: "); scanf("%d", &satir); printf("1. matris sutun sayisi giriniz: "); scanf("%d", &sutun1); printf("2. matris sutun sayisi giriniz: "); scanf("%d", &sutun2); int dizi1[satir][sutun1], dizi2[sutun1][sutun2], diziCarp[satir][sutun2]; //1. matrisi kullanıcıdan alır for(int i=0; i<satir; i++){ for(int j=0; j<sutun1; j++){ printf("%dx%d)Sayi giriniz ", i+1, j+1); scanf("%d", &dizi1[i][j]); } } printf("\n"); //2. matrisi kullanıcıdan alır for(int i=0; i<sutun1; i++){ for(int j=0; j<sutun2; j++){ printf("%dx%d)Sayi giriniz ", i+1, j+1); scanf("%d", &dizi2[i][j]); } } //2 matrisi çarpar ve ekrana yazdırırlır for(int i=0; i<satir; i++){ for(int j=0; j<sutun2; j++){ for(int k=0; k<sutun1; k++){ toplam += dizi1[i][k] * dizi2[k][j]; // Matris çarpma işleminin algoritması } diziCarp[i][j] = toplam; // Çıkan sonuc dizinin elemanı olarak yazılır toplam = 0; // Toplam tekrar kullanılacağı için 0 a eşitlenir. printf("%d ", diziCarp[i][j]); // çarpma işlemi yapılan eleman ekrana yazdırılır. //Bunun için farklı bir for döngüsüne ihtiyac yoktur } printf("\n"); } printf("\n"); system("pause"); return 0; } |
Yorum ( 1 )
3x3lük -3 ve3 arasında değerler verilecek şekilde nasıl yapabiliriz yardımcı olabilir misiniz?