Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 02:57

Сложение элементов массива

Автор Шамиль 2210, 23 мая 2021, 09:36

0 Пользователей и 1 гость просматривают эту тему.

Шамиль 2210

Здравствуйте!
Я новичек в 1С, прохожу курсы обучения, написал функцию сложения элементов массива, в сообщении не выводиться результат. Буду благодарен любой подсказке.


  Процедура ПередНачаломРаботыСистемы(Отказ)
   
   КучкаЧисел=Новый Массив(5);
   
    КучкаЧисел.Добавить(2);
    КучкаЧисел.Добавить(3);
    КучкаЧисел.Добавить(5);
    КучкаЧисел.Добавить(7);
    КучкаЧисел.Добавить(11);

    Сумма = 0;
   Для Каждого КучкаЧисел Из Новый Массив Цикл
   
       Ответ = Сумма + КучкаЧисел;
      
         
   КонецЦикла;
   Сообщить(Ответ);
   
                
КонецПроцедуры

nvj84

Все верно выводится (в данном случае не выводится). Коллекция для перебора пустая Новый Массив поэтому в цикл ни разу не отработает. Перебираемая коллекция у вас будет КучкаЧисел. Первая переменная в вашем случае КучкаЧисел в операторе Для Каждого на каждом проходе коллекции будет содержать элемент перебираемой коллекции. И если бы все сработало ваш массив затерся бы. Сложение элементов так же в случае успешно написанного цикла ни чего хорошего не дало бы. Переменная Сумма всегда бы была равна 0, Ответ бы постоянно имел значение последнего элемента массива.

Процедура ПередНачаломРаботыСистемы(Отказ)
КучкаЧисел=Новый Массив(5);
КучкаЧисел.Добавить(2);
КучкаЧисел.Добавить(3);
КучкаЧисел.Добавить(5);
КучкаЧисел.Добавить(7);
КучкаЧисел.Добавить(11);
СуммаЧисел = 0;
Для Каждого Элм Из КучкаЧисел Цикл
СуммаЧисел = СуммаЧисел + Элм;       
КонецЦикла;
Сообщить(СуммаЧисел);             
КонецПроцедуры

Шамиль 2210

Выдает ошибку!

nvj84

Метод Добавить - добавляет элемент в конец массива. То есть в вашем варианте получается массив из 5 элементов(не заполненных) к которым было добавлено еще 5 элементов.

    КучкаЧисел=Новый Массив;
КучкаЧисел.Добавить(2);
КучкаЧисел.Добавить(3);
КучкаЧисел.Добавить(5);
КучкаЧисел.Добавить(7);
КучкаЧисел.Добавить(11);
    СуммаЧисел = 0;   
    Для Каждого Элм Из КучкаЧисел Цикл
        СуммаЧисел = СуммаЧисел + Элм;       
    КонецЦикла;
    Сообщить(СуммаЧисел);

nvj84

Ставьте точки останова и смотрите через вычислить выражение что вы имеете.

Шамиль 2210

Спасибо, все получилось! Желаю вам, всех благ!:ooifh:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск