Add files via upload
This commit is contained in:
parent
3f7ed6860e
commit
c85bde4d42
|
@ -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("|");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue