31.01.2014, 23:34 | #1 (permalink) |
Новичок
Регистрация: 31.01.2014
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Найти произведение двух произвольных матриц |
31.01.2014, 23:34 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Так же на форуме есть темы которые совпадают с вашей по тематике Решение в Java ПК в столе - Java Проблемы с Java Задачи на Java. Помогите с решением Где ошибка? (Java) Установка Java |
17.02.2014, 00:09 | #2 (permalink) |
VIP user
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
|
Перемножение матриц класс Matrixes.java:
Код:
import java.util.Scanner; public class Matrixes { private static Scanner in = new Scanner(System.in); public static void main(String[] args) { Matrixes matrixes = new Matrixes(); Matrix first = matrixes.read(); Matrix second = matrixes.read(); Matrix product = matrixes.product(first, second); if (product == null) System.out.println("Эти матрицы не могут быть умножены"); else matrixes.print(product); } // --------------------------------------- Matrix read() { System.out.println("Введите размерность массива"); int row = in.nextInt(); int column = in.nextInt(); Matrix mass = new Matrix(row, column); System.out.println("Введите элементы этого массива"); for (int i = 0; i < mass.rows(); i++) for (int j = 0; j < mass.columns(); j++) { double temp = in.nextDouble(); mass.update(i, j, temp); } return mass; } // --------------------------------------- void print(Matrix matrix) { for (int i = 0; i < matrix.rows(); ++i, System.out.println()) for (int j = 0; j < matrix.columns(); ++j) System.out.printf(" %10.4f", matrix.element(i, j)); } // --------------------------------------- Matrix product(Matrix first, Matrix second) { int row1 = first.rows(), col1 = first.columns(), row2 = second.rows(), col2 = second.columns(); Matrix res = new Matrix(first.rows(), second.columns()); if (col1 == row2) { for (int i = 0; i < row1; i++) for (int k = 0; k < col2; k++) for (int j = 0; j < row2; j++) res.update(i, k, res.element(i, k) + first.element(i, j) * second.element(j, k)); return res; } else return null; } } Код:
public class Matrix { // ---------------------------------------- int m, n; // ---------------------------------------- public Matrix(int rows, int columns) { m = rows; n = columns; massiv = new double[m][n]; } double[][] massiv; // ---------------------------------------- int rows() { return m; } // ---------------------------------------- int columns() { return n; } // ---------------------------------------- double element(int row, int column) { return massiv[row][column]; } // ---------------------------------------- void update(int row, int column, double value) { massiv[row][column] = value; } // --------------------------------------- double[] row(int index) { return massiv[index]; } // ---------------------------------------- double[] column(int index) { double[] temp = new double[this.n]; for (int i = 0; i < index; i++) massiv[i][index] = temp[i]; return temp; } } |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|