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

Как сложить элементы массива

Автор MidnightKiller, 22 апр 2013, 19:14

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

MidnightKiller

Добрый вечер.

Хочу написать обработку, которая при нажатии кнопки сообщала бы сумму всех элементов массива.
Помогите, как это реализовать а то всю голову уже сломал.

Я понимаю что надо задать цикл для каждого элемента массива, а реализовать увы не получается  :fdbsdfbsd:



Процедура КнопкаВыполнитьНажатие(Кнопка)

А = Новый Массив(5);

c[0] = 1;
c[1] = 2;
c[2] = 9;
c[3] = 8;

Для каждого C[0] из Новый Массив(5)
Цикл

КонецЦикла;





Сообщить();


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

MuI_I_Ika

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

    Сумма = Сумма + Элемент;

КонецЦикла;

MidnightKiller

Спасибо за совет. Вот что получается, синтаксических ошибок нету, но ругается: "Преобразование к типу число не может быть выполнено."


Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   А = Новый Массив(5);
   
    а[0] = 1;
   а[1] = 2;
   а[2] = 9;
   а[3] = 8;
   
   
            
      Сумма = 0;
      
Для каждого а из Новый Массив(5) Цикл

    Д = Сумма + а;

   
КонецЦикла;
         
      Сообщить(Д);
   
   
КонецПроцедуры

Dethmontt

1С-овский код регистро-независим а=А=Истина!.
И приучайтесь с самого начала переменные называть своими именами...
МойМассив = Новый Массив(5); //Создание массива размерностью 5
   
   МойМассив[0] = 1;
   МойМассив[1] = 2;
   МойМассив[2] = 9;
   МойМассив[3] = 8;
   //Числами проинициализированы первые 4 элемента массива (Т.е. 5й элемент остался не инициализированным)
         
Д = 0;     
Для каждого эл из МойМассив Цикл
   
   Если ТипЗнч(эл) = Тип("Число") Тогда //Проверим что элемент массива является числом для математической операции сложения
      Д = Сумма + эл;
   КонецЕсли;
   
КонецЦикла;
         
Сообщить(Д);
     
КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

MidnightKiller

Спасибо огромное, но пришлось немного поправить чтобы заработало и суммировало элементы массива между собой. Так как в данном случае оно не считает сумму а почему то выдает 3, это 4ый элемент массива.
Все равно огромное спасибо. Если интересно, то в результате я сделал так:




Процедура КнопкаВыполнитьНажатие(Кнопка)

МойМассив = Новый Массив(5); //Создание массива размерностью 5
   
   МойМассив[0] = 10;
   МойМассив[1] = 1;
   МойМассив[2] = 2;
   МойМассив[3] = 3;
   //Числами проинициализированы первые 4 элемента массива (Т.е. 5й элемент остался не инициализированным)
         
Сумма = 0;     

Для каждого эл из МойМассив Цикл
   
   Если ТипЗнч(эл) = Тип("Число") Тогда //Проверим что элемент массива является числом для математической операции сложения
      Сумма = Сумма + эл;
   КонецЕсли;
   
КонецЦикла;
         
Сообщить(Сумма);
     
КонецПроцедуры


pavl_vs

Ошибка сложения "Преобразование к типу число не может быть выполнено" возникала из-за неопределенности в типе неинициализированного (5-го) элемента массива; т.е. если его инициализировать или ограничить размерность массива (например, МойМассив = Новый Массив(4)), то отпадет необходимость проверки типа значения.


Теги:

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

Рейтинг@Mail.ru

Поиск