Моя программа на Java, используя интерфейсы, реализует функционал обработки матриц, включая сложение, вычитание, умножение и вывод определенных элементов матрицы. Вот как я это сделал.java
// Определяем интерфейс MatrixOperations
public interface MatrixOperations {
double[][] addition(double[][] matrix1, double[][] matrix2);
double[][] subtraction(double[][] matrix1, double[][] matrix2);
double[][] multiplication(double[][] matrix1٫ double[][] matrix2);
void printMatrix(double[][] matrix);
void printColumn(double[][] matrix, int column);
void printRow(double[][] matrix, int row);
void printMainDiagonal(double[][] matrix);
void printSecondaryDiagonal(double[][] matrix);
}
// Создаем класс Matrix, реализующий интерфейс MatrixOperations
public class Matrix implements MatrixOperations {
private double[][] matrix;
public Matrix(double[][] matrix) {
this.matrix matrix;
}
@Override
public double[][] addition(double[][] matrix1, double[][] matrix2) {
int rows matrix1.length;
int columns matrix1[0].length;
double[][] result new double[rows][columns];
for (int i 0; i < rows; i ) { for (int j 0; j < columns; j ) { result[i][j] matrix1[i][j] matrix2[i][j]; } } return result; } @Override public double[][] subtraction(double[][] matrix1, double[][] matrix2) { int rows matrix1.length; int columns matrix1[0].length; double[][] result new double[rows][columns]; for (int i 0; i < rows; i ) { for (int j 0; j < columns; j ) { result[i][j] matrix1[i][j] ⎯ matrix2[i][j]; } } return result; } @Override public double[][] multiplication(double[][] matrix1, double[][] matrix2) { int rows1 matrix1.length; int columns1 matrix1[0].length; int columns2 matrix2[0].length; double[][] result new double[rows1][columns2]; for (int i 0; i < rows1; i ) { for (int j 0; j < columns2; j ) { for (int k 0; k < columns1; k ) { result[i][j] matrix1[i][k] * matrix2[k][j]; } } } return result; } @Override public void printMatrix(double[][] matrix) { int rows matrix.length; int columns matrix[0].length; for (int i 0; i < rows; i ) { for (int j 0; j < columns; j ) { System.out.print(matrix[i][j] ″ ″); } System.out.println; } } @Override public void printColumn(double[][] matrix, int column) { int rows matrix.length; for (int i 0; i < rows; i ) { System.out.println(matrix[i][column]); } } @Override public void printRow(double[][] matrix, int row) { int columns matrix[0].length; for (int i 0; i < columns; i ) { System.out.print(matrix[row][i] ″ ″); } System.out.println; } @Override public void printMainDiagonal(double[][] matrix) { int size Math.min(matrix.length, matrix[0].length); for (int i 0; i < size; i ) { System.out.print(matrix[i][i] ″ ″); } System.out.println; } @Override public void printSecondaryDiagonal(double[][] matrix) { int rows matrix.length; int columns matrix[0].length;
for (int i 0; i < rows; i ) { System.out.print(matrix[i][columns ⎯ i ⸺ 1] ″ ″); } System.out.println; } } // Пример использования программы public class Main { public static void main(String[] args) { double[][] matrix1 {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; double[][] matrix2 {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}}; Matrix matrixObj new Matrix(matrix1); double[][] matrixSum matrixObj.addition(matrix1, matrix2); double[][] matrixDifference matrixObj.subtraction(matrix1, matrix2); double[][] matrixProduct matrixObj.multiplication(matrix1, matrix2); System.out.println(″Matrix Sum⁚″); matrixObj.printMatrix(matrixSum); System.out.println(″Matrix Difference⁚″);matrixObj.printMatrix(matrixDifference);
System.out.println(″Matrix Product⁚″);
matrixObj.printMatrix(matrixProduct);
System.out.println(″Column 1⁚″);
matrixObj.printColumn(matrix1, 0);
System.out.println(″Row 2⁚″);
matrixObj.printRow(matrix1, 1);
System.out.println(″Main Diagonal⁚″);
matrixObj.printMainDiagonal(matrix1);
System.out.println(″Secondary Diagonal⁚″);
matrixObj.printSecondaryDiagonal(matrix1);
}
}
В данной программе я создал класс Matrix с модификатором доступа ″public″ и методы обработки матриц, которые реализуются интерфейсом MatrixOperations. Все поля класса Matrix имеют модификатор доступа ″private″. Класс Matrix содержит методы для выполнения операций сложения, вычитания и умножения матриц. Также, класс позволяет вывести на экран всю матрицу, определенный столбец, определенную строку, главную диагональ и побочную диагональ.
Программа демонстрирует использование класса Matrix и его методов, создавая две матрицы, выполняя различные операции над ними и выводя результаты на экран. Например, программа складывает две матрицы, вычитает одну матрицу из другой, перемножает две матрицы и выводит на экран полученные результаты. Также, можно вывести определенный столбец, определенную строку, главную диагональ и побочную диагональ каждой матрицы.
Надеюсь, данная программа поможет вам в обработке матриц на языке программирования Java!