0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 5
1

Передать в метод "что-то", что бы метод мог в это "что-то" записать матрицу неизвестной размерности

21.09.2014, 13:48. Показов 1586. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опишу суть проблемы подробнее.
Есть метод, который умножает две матрицы, мне бы хотелось, что бы метод принимал в параметрах:
1. "Что-то" для помещения результирующей матрицы.
2. Матрицу A.
3. Матрицу B.
Я бы конечно смог, легко решить проблему, просто вернув результат return-ом.
Но, я принципиально хочу, что бы функция возвращала статус обработки(получилось, не получилось, причина неудачи), а результат записывала в "Что-то".
Суть проблемы я понимаю, она в особенностях Java передачи данных в метод.
Вторая сторона проблемы в том, что заранее не известно, какой размерности будет результирующий массив.
В общем, если сделать так:
Java
1
2
3
4
int[][] rData=null;
mul(rData,aData,bData){
rData = new int[aData.length][bData[0].length];
}
То конечно же данные потеряются вместе с локально переменной метода.
Собственно, как решить эту задачу, какие есть "подходы"?
Напоминаю, возвращать функция будет статус, а результат нужно куда-то поместить...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2014, 13:48
Ответы с готовыми решениями:

Что значит "Возвращаемый" и "Невозвращаемый" метод?
Здравствуйте, дорогие читатели данной темы! Моя пятая точка взрывается, как только я вспоминаю...

Что это за глюк? If (Worksheets("B&S").Columns("A").Rows(65536).End(xl Up).Row...
Что это может быть такое? Sheet полностью пуст, а вот такая ерунда. Почему False????

Подсчитать в слове все сочетания "нн". Считать, что в последовательности "ннн" "нн" встречается один раз
напишите, пожалуйста, программу подсчета в слове всех сочетаний "нн". считать, что в...

С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include <math.h> #include <iostream>...

5
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.09.2014, 14:26 2
Я назову слово целиком: под "что-то" прячеться "путь к результирующему файлу", я выиграл автомобиль или это ещё не финальная игра?
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 5
21.09.2014, 14:32  [ТС] 3
Почему к файлу, если мне всего-то надо будет результирующую матрицу напечатать в консоль?
Оно то сработает, но я сомневаюсь, что не способа лучше...
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.09.2014, 14:39 4
Цитата Сообщение от qweentet Посмотреть сообщение
Почему к файлу, если мне всего-то надо будет результирующую матрицу напечатать в консоль?
Если результирующую матрицу надо напечатать в консоль то берут и печатают в консоль, а не думают чем бы её обернуть и какие бы ещё 3 программы написать чтобы они взаимодействовали между собой.
Цитата Сообщение от qweentet Посмотреть сообщение
Оно то сработает, но я сомневаюсь, что не способа лучше...
Ты сомневаешься, а мне читали курс ос и я знаю что нет способа проще и лучше. Остальные можешь посмотреть на википедии ru.wikipedia.org/wiki/Межпроцессное_взаимодействие
P.S маразм крепчал: уже даже на википедию через url ссылаться нельзя так как в сообщении оно есть при редактировании, а на странице уже не отображаеться.
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 5
21.09.2014, 14:59  [ТС] 5
Я просто не могу тогда понять, выходит, что тут лаконичность Java проседает, в C++ я бы мог просто передать переменную с адресом по которому содержится null, а потом внутри функции спокойно бы создал объект с необходимыми параметрами и заменил бы null его адресом. А в Java выходит, что мне ради такой мелочи, нужно создавать файл.
P.S. Я не пытаюсь никого оскорбить или хамить, и тем более предъявлять претензии, Java только начал изучать, делаю лабораторку, и зашел в ступор. Опять таки, я бы мог забить, и сделать по другому. Но вдруг образуется ситуацию где этот момент будет важен, а я его вовремя не решил...
В вики глянул, возник вопрос, неужели задача на столько не рядовая, что нужно привлекать это "межпроцессное взаимодействие"?

Добавлено через 13 минут
Судя по моим свежим догадкам, проблему можно решить, создав класс обертку, по аналогии со StringBuffer. Если у кого есть другие идеи, излагайте...
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.09.2014, 15:12 6
Я думал ты из внешнего процесса захотел вызвать программу и начал огород городить, если у тебя простые функции то возьми и передай туда чистый List, Map или что тебе нравиться. Логично что любой высокоуровневый язык "умеет" функции принимающие аргументы.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Main{
    public static void main(String[] args) {
        List<List<Integer>> data = new ArrayList<>();
        if(fun(data) == 1)
            for(List<Integer> row: data) {
                for (Integer i : row)
                    System.out.printf("%-3d",i);
                System.out.println();
            }
    }
 
    public static int fun(List<List<Integer>> lst){
        lst.add(Arrays.asList(1,2,3));
        lst.add(Arrays.asList(4,5,6,7));
        lst.add(Arrays.asList(8,9));
        return 1;
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2014, 15:12
Помогаю со студенческими работами здесь

Редактирование того что находится под тегом <jdoc:include type="modules" name="user3" style="wamod"/>
Здравствуйте. Откуда тег &lt;jdoc:include type=&quot;modules&quot; name=&quot;user3&quot; style=&quot;wamod&quot;/&gt; берез...

Что выведется на экран после выполнения следующего утверждения: Console.WriteLine("Sharp is neat".Replace("is", "AAA")
A) SharpAAAneat B) SharpAAA neat C) Sharp AAA neat D) Sharp AAAneat

Создать программу такую, что пользователь вводит число, а мы ему выдаём "-лет" или "-год" "-года"
4)Создать программу такую, что пользователь вводит число, а мы ему выдаём &quot;-лет&quot; или &quot;-год&quot; &quot;-года&quot;.

Что делать если пишет такое "Не удается преобразовать из "int" в "System.IntPtr"."
Всем привет, столкнулся с тем, что пишет (Не удается преобразовать из &quot;int&quot; в &quot;System.IntPtr&quot;.)...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru