Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/88: Рейтинг темы: голосов - 88, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 3

Определить класс Матрица

03.07.2019, 22:51. Показов 17586. Ответов 52

Студворк — интернет-сервис помощи студентам
Определить класс Матрица. Создать два конструктора: в первом в качестве аргументов: int n и int m – размерность матрицы, во втором - двумерный массив аr [] []. Реализовать методы вычисления суммы всех элементов матрицы, произведения количества строк на столбцы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.07.2019, 22:51
Ответы с готовыми решениями:

Класс: Реализовать класс Matrix - матрица, на основе двухмерного массива размерности M на N...
1) Реализовать класс Matrix - матрица, на основе двух-мерного целочисленного массива int размерности M на N (кол-во строк и кол-во...

Создать класс матрица Данный класс содержит указатель на int...
Помогите решить хотя бы часть задачи. Создать класс матрица Данный класс содержит указатель на int, размер строк и столбцов и...

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица"
Нужно определить класс "матрица" с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

52
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
04.07.2019, 15:46
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Gungala Посмотреть сообщение
Всё соответствует заданию, класс выполняет действия над матрицами. Получается, всё в порядке. Да? Вы согласны?
Gungala, к сожалению, не могу сказать ни да, ни нет. Для меня это полная неопределенность. Я не понимаю 99% этого кода
Объем моих знаний Java ограничивается пока только 10-ю главами учебника Шилдта. Причем, не все из них еще полностью усвоились.
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
04.07.2019, 15:51
ಠ_ಠ
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
04.07.2019, 18:48
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
Попробую все учесть и переделать
С учетом всех замечаний вот так получилось у меня:

Кликните здесь для просмотра всего текста
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
class Matrix {
    private int row; // количество строк
    private int col; // количество столбцов
    private int[][] array;   // двумерный массив (матрица)
    
    // Первый конструктор
    public Matrix(int n, int m) {
        row = n;
        col = m;
        array = new int[row][col];
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < col; j++)
                array[i][j] = (int) (Math.random() * 9 + 1);
    }
    
    // Второй конструктор
    public Matrix(int ar[][]) {
        array = ar;
        row = array.length;
        col = array[0].length;
    }
    
    // Метод получения массива
    public int[][] getMatrix() {
        return array;
    }
    
    // Метод вычисления суммы всех элементов матрицы
    public void sumMatrix() {
        int sum = 0;
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < col; j++) sum += array[i][j];
        System.out.println("Сумма элементов матрицы: " + sum);
    }
    
    // Метод вычисления произведения количества строк и столбцов
    public void sizeMatrix() {
        System.out.println("Произведение количества строк "
                + "и столбцов: " + row * col);
    }
}
public class TestMatrix {
    public static void main(String[] args) {
        TestMatrix test = new TestMatrix();
        
        // Тестирование первого конструктора
        int n = (int) (Math.random() * 7 + 2); 
        int m = (int) (Math.random() * 7 + 2);
        System.out.println("Матрица1: ");
        Matrix matrix1 = new Matrix(n, m);    // создание объекта
        test.printMatrix(matrix1.getMatrix());     // печать матрицы
        // Тестирование методов
        matrix1.sumMatrix();
        matrix1.sizeMatrix();
        
        System.out.println();
        
        // Тестирование второго конструктора
        int p = (int) (Math.random() * 7 + 2); 
        int q = (int) (Math.random() * 7 + 2);
        int[][] ar = new int[p][q];
        System.out.println("Матрица2: ");
        test.fillMatrix(ar);                       // заполнение матрицы
        test.printMatrix(ar);                      // печать матрицы
        Matrix matrix2 = new Matrix(ar);      // создание объекта
        // Тестирование методов
        matrix2.sumMatrix();
        matrix2.sizeMatrix();
    }
    
    // Метод заполнения массива случайными числами от 1 до 9
    public void fillMatrix(int[][] array) {
        for (int i = 0; i < array.length; i++) 
            for (int j = 0; j < array[0].length; j++)
                array[i][j] = (int) (Math.random() * 9 + 1);
    }
    
    // Метод вывода массива на консоль
    public void printMatrix(int[][] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[0].length; j++) {
                System.out.print(array[i][j] + "\t");
            }
            System.out.println();
        }
    }
}


Кому не сложно, пожалуйста, окиньте знающим взглядом. Есть еще что-нибудь, что стоит подправить?
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
04.07.2019, 18:56
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
for (int j = 0; j < col; j++) sum += array[i][j];
Не надо так делать. Даже если одна строка, заключай в скобки
Java
1
2
3
for (int j = 0; j < col; j++){
    sum += array[i][j];
}
2
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
04.07.2019, 18:57
alicesmagic3d, вам, конечно, порекомендовали учиться оперировать объектами, но создавать объект, чтобы использовать его методы, а не сам объект — эт маразм. Вы же, например, не создаёте объект класса Math, чтобы вызвать метод random(). У вас бы это и не получилось, на самом деле, но суть не в том
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
04.07.2019, 19:01
Цитата Сообщение от Gungala Посмотреть сообщение
создавать объект, чтобы использовать его методы, а не сам объект — эт маразм
C чего бы это? На данном этапе изучения - вполне себе. Мы же, например, не агитируем тебя отказаться от конструкторов в пользу статик методов генерации?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
04.07.2019, 19:04
alicesmagic3d, комменты убрать! кроме мест, где вот прямо без коммента не понятно что происходит в коде
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
04.07.2019, 19:05
iSmokeJC, но какой в этом смысл? Зачем создавать объект, если никак его не используешь?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
04.07.2019, 19:09

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
но создавать объект, чтобы использовать его методы, а не сам объект — эт маразм.
заблуждаешься. Ручку ты в руки берешь не потому, что она ручка, а чтобы писать (использовать ее метод). Как обсуждалось мимолетно выше -есть люди которые выступают против любых статиков, утилитных классов и прочего процедурного подхода, ООП евангелисты так сказать, а ты сразу -маразм.



Добавлено через 1 минуту
Цитата Сообщение от Gungala Посмотреть сообщение
Зачем создавать объект, если никак его не используешь?
а где такое в коде? смысла нет, но я и не вижу, чтобы были не юзаемые объекты
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
04.07.2019, 19:45
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Не надо так делать. Даже если одна строка, заключай в скобки
Java
1
2
3
for (int j = 0; j < col; j++){
    sum += array[i][j];
}
А на операторах if допустимо так делать, или тоже лучше даже одну строку в скобки?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
04.07.2019, 19:48
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
А на операторах if допустимо так делать, или тоже лучше даже одну строку в скобки?
этот вопрос спорный, помнится как то тут мы ругались на эту тему, но я за то чтобы в одну строку не писать без крайней необходимости, то есть даже если что то одно - пиши фигурки. Проще читается, не пропустишь случайно однострочник.
2
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
04.07.2019, 21:52
Welemir1, сам объект-то не юзается. Эт просто пустышка, сделанная ради её методов. Мне всё равно кажется, что это нелепо

Добавлено через 9 минут
Цитата Сообщение от Welemir1 Посмотреть сообщение
Ручку ты в руки берешь не потому, что она ручка, а чтобы писать
По-моему, пример не подходящий. Скажем, мне нужно постирать вещи. Я студент, денег у меня только на палку колбасы и пачку чая. Конечно, я могу сходить и взять дешёвую стиральную машину в кредит, а могу воспользоваться прачечной. С одной стороны, иметь свою стиральную машину хорошо, а с другой стороны - её ж куда-то поставить надо, а я общажник. Ну и собсна, куда разумнее воспользоваться прачечной

Добавлено через 41 секунду
Вы можете сказать, что пример плохой, но пример с ручкой явно ещё хуже
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
05.07.2019, 04:00
Gungala, вы же сами постоянно пытаетесь меня учить, что надо - не надо, а для вырабатывания хорошей привычки, было бы не плохо. Я думаю, здесь как раз тот самый случай. Маразм, не маразм, но хорошая привычка важнее

Добавлено через 13 минут
Цитата Сообщение от Welemir1 Посмотреть сообщение
я за то чтобы в одну строку не писать без крайней необходимости, то есть даже если что то одно - пиши фигурки
Как пишут for и if (с однострочным коротким телом) известные дядьки:
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
// Такой стиль используют Кэтти Сьерра и Берт Бейтс
for (i = 0; i < 10; i++) {
    ar[i] = i;
}
if (i < 2) {
    i = 3;
}
 
// Такой стиль используют Роберт Мартин и Джошуа Блох
for (i = 0; i < 10; i++) 
    ar[i] = i;
if (i < 2) 
    i = 3;
 
// Такой стиль используют Брюс Эккель, Кей Хорстман и Герберт Шилдт
for (i = 0; i < 10; i++) 
    ar[i] = i;
if (i < 2) i = 3;
 
........
 
// А такого стиля придерживалась я, но больше не буду :)
for (i = 0; i < 10; i++) ar[i] = i;
if (i < 2) i = 3;
// Выберу стиль Роберта Мартина как золотую середину
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
05.07.2019, 05:49
alicesmagic3d, так тут уже не в обучении дело. Они утверждают, что так поступать на практике - норма. Я не согласен. Правда, моё мнение мало что значит, ибо мой опыт куда меньше, но я прост не могу принятт то, что считаю нелогичным. ООП, не ООП, но утилитные классы - эт удобно
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
05.07.2019, 08:00
Gungala, ты чего то скачешь с одного на другое. Утилитные классы -это данность от которой никуда не уйдешь, почему бы их и не использовать?

Цитата Сообщение от Gungala Посмотреть сообщение
сам объект-то не юзается. Эт просто пустышка, сделанная ради её методов.
где в коде создан объект, который не используется? Или что ты под этим имеешь в виду?
Конечно ради методов мы используем, ёпрст, мы юзаем объекты из-за того что они знают и что они умеют(методы), а не ради их самих. Молоток мы тоже используем за его метод забивания гвоздей, а не из-за названия или традиции. Что ты пытаешься сказать то? Хочешь писать статиками и утилитными классами -пожалуйста, кто ж тебе помешает, можешь вообще объектов не создавать.

Цитата Сообщение от Gungala Посмотреть сообщение
куда разумнее воспользоваться прачечной
да, создать или получить ее объект и вызвать ее метод)
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
05.07.2019, 08:30
alicesmagic3d, на самом деле, Хорстман вертел все эти стили, как хотел. Пишет как хочет, в одном примере может написать по-человечески, как рекомендует Welemir1, а в другом выдать что-нибудь из ряда вон выходящее
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.07.2019, 09:09
Цитата Сообщение от Welemir1 Посмотреть сообщение
Конечно ради методов мы используем
ради стэйта в основном, если стэйта нет, то и объект не нужен
1
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,503
05.07.2019, 09:10

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
Хорстман вертел все эти стили, как хотел.
а Иисус по воде ходил...

стиль не просто так выдуман, а для экономии восприятия тобой же, через пару другую месяцев, кода, впрочем, как и комментов.
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
05.07.2019, 09:13
Aviz__, та ты меня не так понял. Я выражал не восхищение его подходом к этому вопросу, а скорее негодование, ибо порой эт вводит в заблуждение
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,503
05.07.2019, 09:19
Gungala, ок!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2019, 09:19

Определить класс Матрица
Нужна помощь в решении :cry: Определить класс Матрица размерности (m x n). Реализовать метод, меняющий местами строки с максимальным и...

Определить класс «Квадратная матрица» – Matrix.
Определить класс «Квадратная матрица» – Matrix. Класс должен содержать несколько конструкторов, в том числе конструктор ко-пирования. ...

Определить класс "Матрица", используя дружественные функции
Помогите с заданием, кому не сложно. Сложно с функциями, а особенно матрицы. Определить класс матрицу. В класс включить конструктор...

Создать класс Triad (тройка чисел); определить метод сравнения триад. Определить производный класс Date
Создать класс Triad (тройка чисел); определить метод сравнения триад. Определить производный класс Date с полями: год, месяц и день....

Определить класс "Матрица"
Добрый день, друзья! Очень нужна ваша помощь в решении задачи. Нужно сделать к завтрашнему дню две задачи, а я, глупая, думала, что нужно...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru