یکی از مساله ساده ای که در ابتدای آموزش برنامه نویسی برای اکثر دانشجو ها مطرح می شود مساله ضرب دو ماتریس در یکدیگر است. در این مطلب پیاده سازی ضرب دو ماتریس دلخواه با استفاده از آرایه پویا را در اختیار شما قرار می دهم. کد این مطلب بسیار شبیه ++C می باشد و به سادگی می توان آن را تبدیل کرد. یکی از ویژگی های خوب جاوا امکان تعریف آرایه پویاست به این معنی که ابتدا اندازه آرایه ها را از کاربر گرفته و سپس به ایجاد آرایه می پردازیم. در کد زیر نیز از همین روش استفاده شده، سپس درایه های مقدار گذاری شده است و سپس با توجه به الگوریتم ضرب ماتریس که در تصویر فوق نمایان است به محاسبه حاصلضرب دو ماتریس پرداخته شده است.

package SourceCode.Sample;

//
// Java
//
// Matrix Multiply Sample Code
//
// Complemented By: WwW.AliRezaOnline.Us
//

import java.util.Scanner;

class MatrixMultiply {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);

int x, y, z;
System.out.println("Enter x, y, z For Your Matrix: MatrixA[x * y], MatrixB[y * z]");
x = in.nextInt();
y = in.nextInt();
z = in.nextInt();

int arrayA[][] = new int[x][y];
int arrayB[][] = new int[y][z];
int arrayC[][] = new int[x][z];

System.out.println("Matrix A Data: ");
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
System.out.print("Enter MatrixA[" + i + "][" + j + "]: ");
arrayA[i][j] = in.nextInt();
}
}

System.out.println("\nMatrix B Data: ");
for (int i = 0; i < y; i++) {
for (int j = 0; j < z; j++) {
System.out.print("Enter MatrixB[" + i + "][" + j + "]: ");
arrayB[i][j] = in.nextInt();
}
}

for (int i = 0; i < x; i++) {
for (int j = 0; j < z; j++) {
for (int k = 0; k < y; k++) {
arrayC[i][j] += arrayA[i][k] * arrayB[k][j];
}
}
}

System.out.println("\nMultiply oF Both Matrix: ");
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
System.out.printf("%3d", arrayC[i][j]);
}
System.out.println();
}
}
}


[برای نمایش لینک باید عضو شوید. ]