Возврат результата из функции

1. AlexUnder 06.05.20 15:29 Сейчас в теме
Рад приветствовать всех сюда зашедших!

Имеется код:

Функция СоздатьМассив(КоличествоЭлементов);
М = Новый Массив;
Генератор = Новый ГенераторСлучайныхЧисел;
Для Индекс = 1 по КоличествоЭлементов цикл
СЧ = Генератор.СлучайноеЧисло(1, 200);
м.Добавить(СЧ);
КонецЦикла;
Возврат М;
КонецФункции

Процедура ВыводМассива(Массив);
Сообщить("Массив:");
Для каждого Элемент из Массив цикл
Сообщить(Элемент);
КонецЦикла;

КонецПроцедуры

Функция РассчетСуммыМассива(Массив);
Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;
Возврат Сумма;
Возврат Среднее;
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Сумма = РассчетСуммыМассива(Массив);
Среднее = РассчетСуммыМассива(Массив);
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры

Думаю многие догадались, что результат процедуры выводит 2 раза значение "сумма" из функции "РассчетСуммыМассива", отсюда вопрос:
Как ПРАВИЛЬНО забрать из функции значение "среднее"?
По теме из базы знаний
Найденные решения
3. user5300 1036 06.05.20 15:35 Сейчас в теме
(1) Через структуру:
Функция РассчетСуммыМассива(Массив);

Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;

Возврат Новый Структура("Сумма, Среднее",Сумма,Среднее);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Структура = РассчетСуммыМассива(Массив);
Сумма = Структура .Сумма;
Среднее = Структура .Среднее;
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user5300 1036 06.05.20 15:35 Сейчас в теме
(1) Через структуру:
Функция РассчетСуммыМассива(Массив);

Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;

Возврат Новый Структура("Сумма, Среднее",Сумма,Среднее);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Структура = РассчетСуммыМассива(Массив);
Сумма = Структура .Сумма;
Среднее = Структура .Среднее;
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
Показать
4. AlexUnder 06.05.20 15:39 Сейчас в теме
(3)
Структура = РассчетСуммыМассива(Массив);

Отлично, большое спасибо!
Пойду пробовать!
user5300; +1 Ответить
2. acanta 06.05.20 15:33 Сейчас в теме
Варианты. Можно сделать две функции - одну для расчета суммы, другую для расчета среднего и вызывать их по очереди.
А можно создать массив из двух элементов и первому присвоить сумму, а второму среднее.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот