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

Задача по массивам в 1С:Предприятие 8.3

Автор юлия_Maltseva250795, 25 мар 2022, 14:39

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

юлия_Maltseva250795

Дана последовательность чисел. Вывести номер первого четного элемента с помощью функции Сообщить.
Нужно чтобы при нажатии на кнопку "Задача2" вывелся номер первого чётного элемента который ввёл пользователь

LexaK

юлия_Maltseva250795, задачка же как дважды два!
вам специально такие примитивнейшие задачки дают что бы вы хоть чуть-чуть сами думать научились!

наверно вызывает затруднение как определить что число четное?
так это просто Число на до разделить на 2 и посмотреть получился ли остаток!
если остатка нет, значит четное

остаток можно получить так
лкОстаток = лкЧисло % 2;
если помогло нажмите: Спасибо!

юлия_Maltseva250795

LexaK, Я знаю как определить чётное число или нет. Я не знаю как передать значения в код которые вводит пользователь и как вывести не значение, а его номер

юлия_Maltseva250795

Это верно или нет?
&НаКлиенте
Процедура Задача2(Команда)
Эл = ВведитеЧислаЧерезПробел;
Для Индекс = 0 По ВведитеЧислаЧерезПробел.Количество() Цикл
Если Эл % 2 = 0 Тогда
      Иначе
КонецЕсли;
КонецЦикла;
Сообщить ("Первый номер чётного элемента - " + ВведитеЧислаЧерезПробел[Индекс]));

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

Oscar

юлия_Maltseva250795,
Насколько я понял у Вас трудность вызывает добавление чисел, который пользователь внес в строку в массив.
Если да, то я бы попробовал сделать это таким образом:
1. Создаете массив
2. Присваиваете переменной строку, которую внес пользователь
3. Потом в цикле используя функцию СтрНайти находите первый пробел,
3а. Отсекаете первое число
3б. Заносите в массив
3с. И так далее по циклу пока функция СтрНайти не вернет 0.
4. А дальше Вам Алексей описал, что делать.

Oscar

Цитата: юлия_Maltseva250795 от 25 мар 2022, 17:18Это верно или нет?
&НаКлиенте
Процедура Задача2(Команда)
Эл = ВведитеЧислаЧерезПробел;
Для Индекс = 0 По ВведитеЧислаЧерезПробел.Количество() Цикл
Если Эл % 2 = 0 Тогда
      Иначе
КонецЕсли;
КонецЦикла;
Сообщить ("Первый номер чётного элемента - " + ВведитеЧислаЧерезПробел[Индекс]));

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


Задача по массивам же. А где массив?

LexaK

юлия_Maltseva250795, почти правильно
если у вас версия платформы больше 8,3,6 - попробуйте такой вариант
&НаКлиенте
Процедура Задача2(Команда)
//Эл = ВведитеЧислаЧерезПробел;
лкМассив = СтрРазделить(ВведитеЧислаЧерезПробел, " ");
лкСообщение = "Четное число не найдено!";
Для каждого лкЗначение Из лкМассив Цикл
Если Число(лкЗначение) % 2 = 0 Тогда
лкСообщение = "Первое четное число в позиции: " + (лкМассив.Найти(лкЗначение) + 1);
Прервать;
КонецЕсли;
КонецЦикла;
Сообщить(лкСообщение);

КонецПроцедуры
если помогло нажмите: Спасибо!

юлия_Maltseva250795

LexaK, он выводит чётный элемент, а надо чтобы он вывел номер первого чётного элемента

LexaK

юлия_Maltseva250795, странно у меня по этой фразе
 "Первое четное число в позиции: " + (лкМассив.Найти(лкЗначение) + 1);
как раз позиция (какое число в строке) выводится.

в такой строке
"10,1 12 15 34"

сообщение будет
"Первое четное число в позиции: 2"


напишите какая у вас версия и совместимость платформы 1С
если помогло нажмите: Спасибо!

юлия_Maltseva250795


Теги:
Рейтинг@Mail.ru

Поиск