78 lines
3.3 KiB
Java
78 lines
3.3 KiB
Java
import java.util.Scanner;
|
||
import java.util.Random;
|
||
|
||
public class lab2 {
|
||
public static void main(String[] args) {
|
||
Scanner scan = new Scanner(System.in);
|
||
|
||
System.out.println("Введіть кількість рядків матриці А:");
|
||
int mA = scan.nextInt();
|
||
System.out.println("Введіть кількість стовпців матриці А:");
|
||
int nA = scan.nextInt();
|
||
System.out.println("Введіть кількість рядків матриці B:");
|
||
int mB = scan.nextInt();
|
||
if (nA != mB) {
|
||
System.out.println("Щоб помножити матриці, потрібно, щоб кількість стовпців матриці А == кількості рядків матриці B");
|
||
return;
|
||
}
|
||
System.out.println("Введіть кількість стовпців матриці B:");
|
||
int nB = scan.nextInt();
|
||
System.out.println("Границя значень у матрицях:");
|
||
int upperbound = scan.nextShort();
|
||
int[][] matrixA = new int[mA][nA];
|
||
int[][] matrixB = new int[mB][nB];
|
||
int[][] matrixC = new int[mA][nB];
|
||
generationMatrixes(matrixA, matrixB, upperbound);
|
||
printMatrixC(matrixA, matrixB, matrixC);
|
||
AverageValueofElementsofEachColumn(matrixC);
|
||
}
|
||
|
||
private static void AverageValueofElementsofEachColumn(int[][] matrixC) {
|
||
System.out.println("Середнє значення елементів кожного стовпчика матриці:");
|
||
System.out.print("||");
|
||
for (int i = 0; i < matrixC.length; i++) {
|
||
double sum = 0;
|
||
for (int j = 0; j < matrixC[i].length; j++) {
|
||
sum += matrixC[j][i];
|
||
}
|
||
System.out.printf(" %.2f ||", (sum) / matrixC.length);
|
||
}
|
||
}
|
||
|
||
private static void printMatrixC(int[][] matrixA, int[][] matrixB, int[][] matrixC) {
|
||
for (int i = 0; i < matrixC.length; i++) {
|
||
for (int j = 0; j < matrixC[i].length; j++) {
|
||
for (int k = 0; k < matrixA[j].length; k++) {
|
||
matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
|
||
}
|
||
}
|
||
}
|
||
System.out.println("Матриця С:");
|
||
for (int i = 0; i < matrixC.length; i++) {
|
||
for (int j = 0; j < matrixC[i].length; j++) {
|
||
System.out.printf("|%4d", matrixC[i][j]);
|
||
}
|
||
System.out.println("|");
|
||
}
|
||
}
|
||
|
||
private static void generationMatrixes(int[][] matrixA, int[][] matrixB, int upperbound) {
|
||
Random rand = new Random();
|
||
System.out.println("Матриця А:");
|
||
for (short i = 0; i < matrixA.length; i++) {
|
||
for (int j = 0; j < matrixA[i].length; j++) {
|
||
matrixA[i][j] = rand.nextInt(upperbound);
|
||
System.out.printf("|%4d", matrixA[i][j]);
|
||
}
|
||
System.out.println("|");
|
||
}
|
||
System.out.println("Матриця B:");
|
||
for (short i = 0; i < matrixB.length; i++) {
|
||
for (int j = 0; j < matrixB[i].length; j++) {
|
||
matrixB[i][j] = rand.nextInt(upperbound);
|
||
System.out.printf("|%4d", matrixB[i][j]);
|
||
}
|
||
System.out.println("|");
|
||
}
|
||
}
|
||
} |