Поиск по сайту:

Матричные программы на Java


Матрица представляет собой прямоугольный массив. Элементы расположены в строках и столбцах. В этом уроке мы рассмотрим некоторые матричные программы на Java.

Графическое представление матрицы

Матрица в Java

Мы можем реализовать матрицу, используя двумерный массив в Java. Доступ к элементу в строке \r и столбце \c можно получить, используя индекс \array[r][c].

Матричные программы на Java

Поскольку мы используем двумерные массивы для создания матрицы, мы можем легко выполнять различные операции над ее элементами. В этом уроке мы узнаем, как создать матрицу на основе пользовательского ввода. Затем мы будем складывать, вычитать и умножать две матрицы и выводить результирующую матрицу на консоль.

1. Добавление двух матриц

Вот простая программа для заполнения двух матриц из пользовательского ввода. Затем добавьте его элементы по соответствующим индексам, чтобы получить сложение матриц. Наконец, мы напечатаем сумму матриц.

package com.journaldev.examples;

import java.util.Scanner;

public class MatrixPrograms {

	public static void main(String[] args) {
		System.out.println("Please enter the rows in the matrix");
		Scanner sc = new Scanner(System.in);
		int row = sc.nextInt();
		System.out.println("Please enter the columns in the matrix");
		int column = sc.nextInt();

		int[][] first = new int[row][column];
		int[][] second = new int[row][column];

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				System.out.println(String.format("Enter first[%d][%d] integer", r, c));
				first[r][c] = sc.nextInt();
			}
		}

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				System.out.println(String.format("Enter second[%d][%d] integer", r, c));
				second[r][c] = sc.nextInt();
			}
		}

		// close the scanner
		sc.close();

		// print both matrices
		System.out.println("First Matrix:\n");
		print2dArray(first);

		System.out.println("Second Matrix:\n");
		print2dArray(second);

		// sum of matrices
		sum(first, second);
	}

	// below code doesn't take care of exceptions
	private static void sum(int[][] first, int[][] second) {
		int row = first.length;
		int column = first[0].length;
		int[][] sum = new int[row][column];

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				sum[r][c] = first[r][c] + second[r][c];
			}
		}

		System.out.println("\nSum of Matrices:\n");
		print2dArray(sum);
	}

	private static void print2dArray(int[][] matrix) {
		for (int r = 0; r < matrix.length; r++) {
			for (int c = 0; c < matrix[0].length; c++) {
				System.out.print(matrix[r][c] + "\t");
			}
			System.out.println();
		}
	}
}

2. Вычитание двух матриц

Вот функция для вычитания вторых элементов матрицы из первой матрицы, а затем печати результирующей матрицы.

private static void subtract(int[][] first, int[][] second) {
	int row = first.length;
	int column = first[0].length;
	int[][] sum = new int[row][column];

	for (int r = 0; r < row; r++) {
		for (int c = 0; c < column; c++) {
			sum[r][c] = first[r][c] - second[r][c];
		}
	}

	System.out.println("\nSubtraction of Matrices:\n");
	print2dArray(sum);
}

3. Умножение двух матриц

Ниже метод умножит элементы матрицы и напечатает результирующую матрицу.

private static void multiply(int[][] first, int[][] second) {
	int row = first.length;
	int column = first[0].length;
	int[][] sum = new int[row][column];

	for (int r = 0; r < row; r++) {
		for (int c = 0; c < column; c++) {
			sum[r][c] = first[r][c] * second[r][c];
		}
	}

	System.out.println("\nMultiplication of Matrices:\n");
	print2dArray(sum);
}

Ссылка: Википедия