Boyutları ve elemanları klavyeden girilen iki matrisin çarpımını hesaplayan programı yazınız.
⛓ Program Kısımları
İki matrisin boyutları ve elemanlarını girmek.
Çarpma işlemini gerçekleştirmek.
Sonuç matrisini yazdırmak.
👓 Çözüm Yöntemi
Çarpma işleminin gerçekleşebilmesi için birinci matrisin sütun sayısı ile ikinci matrisin satır sayısı (n) eşit olmalıdır.
Sonuç matrisinin her bir elemanı aşağıdaki eşitliği kullanarak elde edilir:
👩🔧 Çözüm Adımları
Değişkenlerin tanımlanması.
İki matrisin boyutlarının girilmesi.
A, B, C matrislerinin oluşturulması.
Çarpım koşulunun kontrol edilmesi.
Koşulun sağlandığı halde:
A elemanları girilir.
B elemanları girilir.
3 tane iç içe döngü kullanarak C elemanları hesaplanır.
C matrisi yazdırılır.
🤖 Kod
⚙ C++ Kodu
#include<iostream>usingnamespace std;intmain() { // Değişkenlerin tanımlanması.int m, n, f, p, i, j, k,** A,** B,** C; cout <<"A(m,n) Boyutlarini giriniz:"; // İki matrisin boyutlarının girilmesi cin >> m; cin >> n; cout <<"B(f,p) Boyutlarini giriniz:"; cin >> f; cin >> p; // Matrislerin oluşturulması A =newint* [m]; B =newint* [f]; C =newint* [m];for (i =0; i < m; i++)A[i] =newint[n];for (i =0; i < f; i++)B[i] =newint[p];for (i =0; i < m; i++)C[i] =newint[p]; // Çarpım koşulunun kontrol edilmesiif (n != f) cout <<"Matrisler carpilamaz";else { // A matrisinin elemenlarının girilmesi for (i =0; i < m; i++)for (j =0; j < n; j++) { cout <<"A["<< i +1<<"]["<< j +1<<"]="; cin >>A[i][j]; } cout << endl; // B matrisinin elemenlarının girilmesifor (i =0; i < f; i++)for (j =0; j < p; j++) { cout <<"B["<< i +1<<"]["<< j +1<<"]="; cin >>B[i][j]; } // Çarpımın hesaplanması for (i =0; i < m; i++)for (j =0; j < p; j++)for (k =0; k < n; k++)C[i][j] +=A[i][k] *B[k][j]; cout <<"\nA*B=\n"; // C matrisinin yazdırılmasıfor (i =0; i < m; i++) {for (j =0; j < p; j++) cout <<C[i][j] <<" "; cout << endl; } }}
🐍 Python Kodu
# İki matrisin boyutlarının girilmesiprint("A(m,n) Boyutlarini giriniz:")m =int(input())n =int(input())print("B(f,p) Boyutlarini giriniz:")f =int(input())p =int(input())# Çarpım koşulunun kontrol edilmesiif n != f:print("Matrisler carpilamaz")else:# Matrislerin oluşturulması A = [[0for i inrange(n)] for i inrange(m)] B = [[0for i inrange(p)] for i inrange(f)] C = [[0for i inrange(p)] for i inrange(m)]# “A” matrisinin girilmesiprint("A matrisini giriniz:")for i inrange(m):for j inrange(n):print('A[{}][{}]'.format(i+1, j+1)) A[i][j] =int(input())# “B” matrisinin girilmesiprint("B matrisini giriniz:")for i inrange(f):for j inrange(p):print('B[{}][{}]'.format(i+1, j+1)) B[i][j] =int(input())# Çarpımın hesaplanması for i inrange(m):for j inrange(p):for k inrange(n): C[i][j] += A[i][k] * B[k][j];print(C)# Not: daha verimli işlemler için NumPy kütüphanesini araştır
☕ Java Kodu
importjava.util.*;publicclassMatrisCarpma {publicstaticvoidmain(String arg[]) {Scanner input =newScanner(System.in);// Değişkenlerin tanımlanması.int m, n, f, p, i, j, k;System.out.println("A(m,n) Boyutlarini giriniz:");// İki matrisin boyutlarının girilmesi m =input.nextInt(); n =input.nextInt(); System.out.println("B(f,p) Boyutlarini giriniz:"); f =input.nextInt(); p =input.nextInt(); int A[][] =newint[m][n];int B[][] =newint[f][p];int C[][] =newint[m][p];// Çarpım koşulunun kontrol edilmesiif (n != f) System.out.println("Matrisler carpilamaz");else { // A matrisinin elemenlarının girilmesi for (i =0; i < m; i++)for (j =0; j < n; j++) {System.out.printf("A[%d][%d]=", i +1, j +1);A[i][j] =input.nextInt(); } System.out.printf("\n");// B matrisinin elemenlarının girilmesifor (i =0; i < f; i++)for (j =0; j < p; j++) {System.out.printf("B[%d][%d]=", i +1, j +1);B[i][j] =input.nextInt(); } // Çarpımın hesaplanması for (i =0; i < m; i++) for (j =0; j < p; j++)for (k =0; k < n; k++)C[i][j] +=A[i][k] *B[k][j];System.out.printf("\nA*B=\n");// C matrisinin yazdırılmasıfor (i =0; i < m; i++) {for (j =0; j < p; j++)System.out.printf("%d\t",C[i][j]); System.out.printf("\n"); } }input.close(); }}