Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 26.11.2017
Сообщений: 166

Сложить две матрицы

28.02.2019, 16:54. Показов 2297. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Класс Main
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.*;
 
public class Main{
    public static void main(String[] args) throws Exception {
        Matrice matrice1 = new Matrice();
        Matrice matrice2 = new Matrice();
        matrice1.go(5);
        matrice2.go(3);
 
        int[][] tempMatrice1 = matrice1.getMatrice();
        int[][] tempMatrice2 = matrice2.getMatrice();
        System.out.println(tempMatrice1);
        System.out.println(tempMatrice2);
    }
 
    static void out(Object k, String path) throws Exception{
        FileOutputStream fileOutputStream = new FileOutputStream(path);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        objectOutputStream.writeObject(k);
        objectOutputStream.close();
 
    }
 
    static Object in(String path) throws Exception{
        FileInputStream fileInputStream = new FileInputStream(path);
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Matrice newMatrice = (Matrice) objectInputStream.readObject();
        objectInputStream.close();
        newMatrice.print();
        return newMatrice;
    }
}
Класс Matrice
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.Serializable;
import java.util.Random;
 
public class Matrice implements Serializable {
    private int[][] matrice;
 
    public void go(int k){
        matrice = new int[k][k];
 
        Random rnd = new Random();
        for (int i = 0; i < matrice.length; i++) {
            for (int j = 0; j < matrice[i].length; j++) {
                matrice[i][j] = rnd.nextInt(10) + 1;
            }
        }
    }
 
    public void print() {
        for (int i = 0; i < matrice.length; i++) {
            for (int j = 0; j < matrice.length; j++) System.out.print(matrice[i][j] + " ");
            System.out.println();
        }
    }
 
    public int[][] getMatrice(){
        return matrice;
    }
}

Вот что выводиться из tempMatrice1(2)
[[I@445b84c0
[[I@61a52fbd

Вопрос: Как забрать значения в матрице 1 и 2, чтобы сложить их в дальнейшем
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2019, 16:54
Ответы с готовыми решениями:

Сложить две матрицы
две матрицы 1 2 3 4 5 6 7 8 9 и 1 2 3 4 5 6 7 8 9

Необходимо сложить две матрицы
Доброго времени суток. Необходимо решить задачку: Необходимо создать матрицу 3х3.Числа записаны в txt файле. В этом случае значения...

задание сложить и перемножить матрицы в разных потоках, но в результате выполнения программы я могу только ввести 2 матрицы а сложение и умножение не
Добрый день, уважаемые форумчане. У меня задание сложить и перемножить матрицы в разных потоках, но в результате выполнения программы я...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.02.2019, 17:30
Цитата Сообщение от poplan Посмотреть сообщение
System.out.println(tempMatrice1);
sout(Arrays.deepToString(tempMatrice1))
1
1 / 1 / 0
Регистрация: 26.11.2017
Сообщений: 166
28.02.2019, 17:53  [ТС]
Если через Arrays делать, то как сложить их в дальнейшем и можно ли задать sout вывод в матричную схему, а не в строку
[[2, 5, 1, 7, 6], [6, 5, 10, 6, 6], [8, 4, 4, 5, 8], [2, 10, 3, 3, 8], [9, 9, 9, 5, 3]]
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
28.02.2019, 17:56
Лучший ответ Сообщение было отмечено poplan как решение

Решение

for (int[] line : matrix) {
System.out.println(Arrays.toString(line) );
}

Добавлено через 33 секунды
matrix замени на своё название двумерного массива
1
 Аватар для Aviz__
2750 / 2058 / 508
Регистрация: 17.02.2014
Сообщений: 9,486
01.03.2019, 13:02
Лучший ответ Сообщение было отмечено poplan как решение

Решение

poplan, вот те, сложителя матриц скелетон, можешь его наращивать и менять.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
mport java.util.Arrays;
import java.util.concurrent.ThreadLocalRandom;
 
public class Helper {
 
    public static void main(String[] args) {
        Matrix mat1 = new  Matrix(2,3);
        mat1.fillMatr(1);
        mat1.printMatr();
        Matrix mat2 = new  Matrix(2,3);
        mat2.printMatr();
        Matrix matSumm = mat1.add(mat2);
        matSumm.printMatr();
    }
 
}
//####
class Matrix {
    private int row;
    private int clm;
    private int [][] body;
 
    Matrix(int row, int clm) {
        this.row = row;
        this.clm = clm;
        fillMatrRnd();
    }
 
    Matrix() {
        this.row = 2;
        this.clm = 2;
        fillMatr(1);
    }
 
    Matrix(int [][] array) {
        this.row = array.length;
        this.clm = array[0].length;
        body = array;
    }
 
    Matrix add(Matrix otherMatr) {
        Matrix retMatr = new Matrix(new int[this.row][this.clm]);
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                retMatr.setElemMatr(r, c, this.getElemMatr(r, c) + otherMatr.getElemMatr(r, c));
            }
        }
        return retMatr;
    }
 
    private void fillMatrRnd(){
        body = new int[row][clm];
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                body[r][c] = ThreadLocalRandom.current().nextInt(10,100);
            }
        }
    }
 
    void fillMatr(int val){
        body = new int[row][clm];
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                body[r][c] = val;
            }
        }
    }
 
    private boolean isVaidRowAndColomn(int rowV, int clmV) {
        if (rowV >= this.row || rowV < 0) {
            System.out.println("Ошибка в номерах строки");
            return false;
        }
        if (clmV >= this.clm || clmV < 0) {
            System.out.println("Ошибка в номерах строки");
            return false;
        }
        return true;
    }
 
    void setElemMatr(int rowS, int clmS, int val){
        if (!isVaidRowAndColomn(rowS, clmS)) return;
        body[rowS][clmS] = val;
    }
 
    int getElemMatr(int rowS, int clmS){
        if (!isVaidRowAndColomn(rowS, clmS)) return -1;
        return body[rowS][clmS];
    }
 
    void printMatr() {
        System.out.println();
        for (int r = 0; r < row; r++) {
            System.out.println(Arrays.toString(body[r]));
        }
        for (int i = 0; i < clm; i++) {
            System.out.print("---");
        }
    }
 
    public int getRow() {
        return row;
    }
 
    public int getClm() {
        return clm;
    }
 
    public int[][] getBody() {
        return body;
    }
}
Bash
1
2
3
4
5
6
7
8
9
[1, 1, 1]
[1, 1, 1]
---------
[37, 40, 99]
[37, 83, 91]
---------
[38, 41, 100]
[38, 84, 92]
---------
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2019, 13:02
Помогаю со студенческими работами здесь

Даны две действительные квадратные матрицы порядка n, получить новую матрицу
Помогите пожалуйста реализовать задание! Задача: Даны две действительные квадратные матрицы порядка n. Получить новую матрицу путем...

2) Даны две действительные квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждо
2) Даны две действительные квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца первой матрицы...

Сложить две матрицы
Здраствуйте! у меня 2 кода написанны но не работают помогите сделать отладку!плиз) вот 1 задача:вход 2 квадратные матрицы выход 3-я...

Как сложить две матрицы ?
Есть такой код #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; using namespace std; int main() { ...

Сложить две матрицы в третью
даны 2 матрица 5х4 надо их сложить и полученный ответ записать в 3 матрицу с таким же размером кода у меня нет подскажите с чего начать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru