Рад приветствовать всех сюда зашедших!
Имеется код:
Функция СоздатьМассив(КоличествоЭлементов);
М = Новый Массив;
Генератор = Новый ГенераторСлучайныхЧисел;
Для Индекс = 1 по КоличествоЭлементов цикл
СЧ = Генератор.СлучайноеЧисло(1, 200);
м.Добавить(СЧ);
КонецЦикла;
Возврат М;
КонецФункции
Процедура ВыводМассива(Массив);
Сообщить("Массив:");
Для каждого Элемент из Массив цикл
Сообщить(Элемент);
КонецЦикла;
КонецПроцедуры
Функция РассчетСуммыМассива(Массив);
Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;
Возврат Сумма;
Возврат Среднее;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Сумма = РассчетСуммыМассива(Массив);
Среднее = РассчетСуммыМассива(Массив);
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
Думаю многие догадались, что результат процедуры выводит 2 раза значение "сумма" из функции "РассчетСуммыМассива", отсюда вопрос:
Как ПРАВИЛЬНО забрать из функции значение "среднее"?
Имеется код:
Функция СоздатьМассив(КоличествоЭлементов);
М = Новый Массив;
Генератор = Новый ГенераторСлучайныхЧисел;
Для Индекс = 1 по КоличествоЭлементов цикл
СЧ = Генератор.СлучайноеЧисло(1, 200);
м.Добавить(СЧ);
КонецЦикла;
Возврат М;
КонецФункции
Процедура ВыводМассива(Массив);
Сообщить("Массив:");
Для каждого Элемент из Массив цикл
Сообщить(Элемент);
КонецЦикла;
КонецПроцедуры
Функция РассчетСуммыМассива(Массив);
Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;
Возврат Сумма;
Возврат Среднее;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Сумма = РассчетСуммыМассива(Массив);
Среднее = РассчетСуммыМассива(Массив);
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
Думаю многие догадались, что результат процедуры выводит 2 раза значение "сумма" из функции "РассчетСуммыМассива", отсюда вопрос:
Как ПРАВИЛЬНО забрать из функции значение "среднее"?
По теме из базы знаний
Найденные решения
(1) Через структуру:
Функция РассчетСуммыМассива(Массив);
Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;
Возврат Новый Структура("Сумма, Среднее",Сумма,Среднее);
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Структура = РассчетСуммыМассива(Массив);
Сумма = Структура .Сумма;
Среднее = Структура .Среднее;
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Через структуру:
Функция РассчетСуммыМассива(Массив);
Сумма = 0;
Среднее = 0;
Для Каждого Элемент из Массив цикл
Сумма = Сумма + Элемент;
КонецЦикла;
Среднее = Сумма / КолвоЭлем;
Возврат Новый Структура("Сумма, Среднее",Сумма,Среднее);
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
Массив = СоздатьМассив(КолвоЭлем); //КолвоЭлем = реквизит формы.
ВыводМассива(Массив);
Структура = РассчетСуммыМассива(Массив);
Сумма = Структура .Сумма;
Среднее = Структура .Среднее;
//Среднее = Сумма / КолвоЭлем;
Сообщить("Сумма массива =" +Сумма);
Сообщить("Среднее =" +Среднее);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот