OOP_IO-2x_2023-mirror/lab2.java

78 lines
3.3 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("|");
}
}
}