diff --git a/lab2.java b/lab2.java new file mode 100644 index 0000000..5d06b5b --- /dev/null +++ b/lab2.java @@ -0,0 +1,78 @@ +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("|"); + } + } +} \ No newline at end of file