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

Как из каждого элемента двумерного массива вычесть число A, которое вводится.

Автор Влад_ислав, 16 мар 2022, 04:47

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

Влад_ислав

Здравствуйте, Как из каждого элемента двумерного массива вычесть число A, которое вводится. Насколько я понял когда объявляем двумерный массив и заполняем его, то наши значения принимают тип строка. Вообщем я думал так, но ничего не получается.
Процедура Вариант4Нажатие(Элемент)
   a = 0;
   Массив = Новый Массив (3, 3);
   МассивРезультат = Новый Массив (3, 3);
   Массив[0][0] = 10;  Массив[0][1] = 4; Массив[0][2] = 18;
   Массив[1][0] = 17;  Массив[1][1] = 8; Массив[1][2] = 25;
   Массив[2][0] = 7;  Массив[2][1] = 44; Массив[2][2] = 23;
Для каждого Элемент из Массив Цикл
Элемент = Элемент - а;
Сообщить(Элемент);
КонецЦикла;
КонецПроцедуры


 И также второй вопрос, почему для одномерного массива Сообщить (Элемент) работает нормально, а для двумерного нет. Для нормального вывода нашёл вот такой код, но можно ли это сделать как-то проще?
Для i = 0 по 2 Цикл
           ВыводСтроки = "";
           Для j = 0 по 2 Цикл
               ВыводСтроки = ВыводСтроки + Массив[j] + " "
           КонецЦикла;
       Сообщить(ВыводСтроки);
   КонецЦикла

Oscar

Цитата: Влад_ислав от 16 мар 2022, 04:47Здравствуйте, Как из каждого элемента двумерного массива вычесть число A, которое вводится. Насколько я понял когда объявляем двумерный массив и заполняем его, то наши значения принимают тип строка. Вообщем я думал так, но ничего не получается.
Процедура Вариант4Нажатие(Элемент)
   a = 0;
   Массив = Новый Массив (3, 3);
   МассивРезультат = Новый Массив (3, 3);
   Массив[0][0] = 10;  Массив[0][1] = 4; Массив[0][2] = 18;
   Массив[1][0] = 17;  Массив[1][1] = 8; Массив[1][2] = 25;
   Массив[2][0] = 7;  Массив[2][1] = 44; Массив[2][2] = 23;
Для каждого Элемент из Массив Цикл
Элемент = Элемент - а;
Сообщить(Элемент);
КонецЦикла;
КонецПроцедуры


 И также второй вопрос, почему для одномерного массива Сообщить (Элемент) работает нормально, а для двумерного нет. Для нормального вывода нашёл вот такой код, но можно ли это сделать как-то проще?
Для i = 0 по 2 Цикл
           ВыводСтроки = "";
           Для j = 0 по 2 Цикл
               ВыводСтроки = ВыводСтроки + Массив[j] + " "
           КонецЦикла;
       Сообщить(ВыводСтроки);
   КонецЦикла

По первому вопросу попробуйте использовать следующий цикл:
Для i = 0 по 2 Цикл
   Для j = 0 по 2 Цикл
      Массив[j] = Массив[j] - А;
      Сообщить(Массив[j] + " ");
   КонецЦикла;
КонецЦикла;

Заместо:
Для каждого Элемент из Массив Цикл
Элемент = Элемент - а;
Сообщить(Элемент);

P.S.
В коде я написал Массив(i)(j), но почему-то пропечатывается Массив[j]. Обязательно оба индекса использовать в квадратных скобках, так как массив у Вас двумерный.

LexaK

Влад_ислав, или такой вариант, для обхода двумерного массива нужен двойной цикл
А = 10;
Массив = Новый Массив (3, 3);
Массив[0][0] = 10;  Массив[0][1] = 4; Массив[0][2] = 18;
Массив[1][0] = 17;  Массив[1][1] = 8; Массив[1][2] = 25;
Массив[2][0] = 7;  Массив[2][1] = 44; Массив[2][2] = 23;
Для каждого Элемент1 из Массив Цикл
Для каждого Элемент из Элемент1 Цикл
Элемент = Элемент - А;
Сообщить(Элемент);
КонецЦикла;
КонецЦикла;
если помогло нажмите: Спасибо!

Теги:  массивы 

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

Рейтинг@Mail.ru

Поиск