Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
#1

Возвращение функий двух значений - Программирование Android

09.10.2015, 16:09. Просмотров 228. Ответов 2
Метки нет (Все метки)

Смотрите...
У меня два числа, которые вещественные (могут быть).
Я каждое (!) число разделил на два ArrayList то что до точки и после.
Есть функция, которая складывает столбиком.

Сначала мы должны складывать дробную часть, от неё мы должны вернуть ArrayList result и temp (если сложение чисел превышает sys - Систему счисления) и передать temp уже функции для сложения целой части.

Вот я не знаю, как сделать, чтобы функция возвращала ArrayList и int, т.е. два значения.
B нужно ли написать новую функцию для дробной части, т.к. для функции дробной части нужно передать temp, а не увеличивать ArrayList.

// Для целой части
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static ArrayList<Integer> Addition(int length, int sys, ArrayList<Integer> num1, ArrayList<Integer> num2, ArrayList<Integer> result) {
        int temp = 0;
        for (int i = 0; i < length; i++) {
            int tempA = (num1.size() > i) ? num1.get(i) : 0; // Временное значение i-го разряда из первого числа
            int tempB = (num2.size() > i) ? num2.get(i) : 0; // Временное значение i-го разряда из второго числа
            result.add(tempA + tempB + temp);
            if (result.get(i) >= sys) {
                result.set(i, result.get(i) - sys);
                temp = 1;
            } else {
                temp = 0;
            }
        }
 
        // Увеличиваем массив
        if (temp == 1) {
            result.add(temp);
        }
        return result;
    }
http://prntscr.com/8pgb92 - картинка. Как должно быть написал.
Тут просто использовал в обоих случаях одну функцию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2015, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возвращение функий двух значений (Программирование Android):

Возвращение в программирование - Программирование
Добрый день. Я программировал на AS3 около года, потом на objective-c пару лет (писал небольшие мобильней приложения), знаю основы swift....

Принудительная потеря и возвращение фокуса в приложении - Программирование Android
Мне необходимо программным образом осуществить принудительную потерю и возвращение фокуса в моем приложении. Причем принудительную...

Возвращение двух значений через ссылку и return - C++
При выполнении программы функция возвращает количество и сумму чисел, находящихся между первым и последним отрицательными элементами. Через...

Используя оператор цикла для вычесления значений функий - Turbo Pascal
Используя оператор цикла для вычисления значений функции, заданной на интервале при изменении аргумента с заданным шагом. Значения...

Возвращение значений из функции - PHP
Добрый день! Есть индексный файл в котором происходит начало сессии, подключаются библиотека с функциями и шаблоны сайта и...

возвращение значений функциями - C++
Здравствуйте. Возник у меня следующий вопрос. char** FtpConnect::readServ() { int rc; int countByte; char buff; char*...

2
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
09.10.2015, 16:19 #2
b0nny, не совсем понял что Вы хотите, но по видимому Вам нужен класс-обёртка (wrapper)

Java
1
2
3
4
5
6
public class Wrapper {
 
    public ArrayList<Integer> list;
    public int myInt;
 
}
и где Вам надо вернуть два значения, то

Java
1
2
3
4
5
6
7
public Wrapper myMethod () {
.....
Wrapper w = new Wrapper();
w.list = mylist;
w.myInt = myInt;
return w;
}
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
09.10.2015, 18:41  [ТС] #3
Пока я это не понимаю...
Решил из одной функции вернуть пока temp для следующей функции.
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
int temp = 0;
AdditionPart2(length2, sys, arrayNum1part2, arrayNum2part2, result2);
Toast.makeText(this, Integer.toString(temp), Toast.LENGTH_SHORT).show();
Addition(length, sys, temp, arrayNum1, arrayNum2, result);
 
public static ArrayList<Integer> Addition(int length, int sys, int temp, ArrayList<Integer> num1, ArrayList<Integer> num2, ArrayList<Integer> result) {
        for (int i = 0; i < length; i++) {
            int tempA = (num1.size() > i) ? num1.get(i) : 0; // Временное значение i-го разряда из первого числа
            int tempB = (num2.size() > i) ? num2.get(i) : 0; // Временное значение i-го разряда из второго числа
            result.add(tempA + tempB + temp);
            if (result.get(i) >= sys) {
                result.set(i, result.get(i) - sys);
                temp = 1;
            } else {
                temp = 0;
            }
        }
 
        // Увеличиваем массив
        if (temp == 1) {
            result.add(temp);
        }
        return result;
    }
 
    public static int AdditionPart2(int length, int sys, int temp, ArrayList<Integer> num1, ArrayList<Integer> num2, ArrayList<Integer> result) {
        for (int i = 0; i < length; i++) {
            int tempA = (num1.size() > i) ? num1.get(i) : 0; // Временное значение i-го разряда из первого числа
            int tempB = (num2.size() > i) ? num2.get(i) : 0; // Временное значение i-го разряда из второго числа
            result.add(tempA + tempB + temp);
            if (result.get(i) >= sys) {
                result.set(i, result.get(i) - sys);
                temp = 1;
            } else {
                temp = 0;
            }
            temp = 100;
        }
        return temp;
    }
Но почему-то постоянно получаю сообщение - temp = 0, хотя я специально temp = 100 написал. Где ошибка, заметить не могу...
temp = 100;

Добавлено через 1 час 35 минут
А точно...
Java
1
temp = AdditionPart2(length2, sys, temp, arrayNum1part2, arrayNum2part2, result2);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2015, 18:41
Привет! Вот еще темы с ответами:

Возвращение выполненных значений - jQuery
$(&quot;.sd&quot;).click(function(){ $(&quot;.sd&quot;).animate({ width: '95%', 'min-height': '200px', }); ...

Возвращение значений из функции - C++
как вернуть кроме значения структуры еще и значение переменной а типа int? struct STROKA { string name; int kolvo,ves; }; ...

Возвращение значений масивов - C#
Требуется: 1) Создать метод MyReverse(int array), который принимает в качестве аргумента массив целочисленных элементов и возвращает...

Возвращение трех значений - C++
Как в функции возвратить три значения?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru