Добрый день! Подскажите пожалуйста как удалить все четные числа массива? Заранее благодарю!
Дело в том, что мы сами создаем массив и должны потом удалить из него четные числа. При этом размер массива должен уменьшиться. После соответственно вывести что получится. Написал я вот так, выводятся четные числа, хотя надо нечетное.
Дело в том, что мы сами создаем массив и должны потом удалить из него четные числа. При этом размер массива должен уменьшиться. После соответственно вывести что получится. Написал я вот так, выводятся четные числа, хотя надо нечетное.
Процедура УдалитьЧетныеЧисла(Команда)
Массив = Новый Массив;
Массив.Добавить(1000);
Массив.Добавить(2300);
Массив.Добавить(2501);
Количество = Массив.Количество();
Смещение = 0;
Для Сч = 1 По Массив.Количество() Цикл
Если Сч%2 = 0 Тогда
Массив.Удалить(Сч-Смещение);
Смещение = Смещение + 1;
КонецЕсли;
КонецЦикла;
Для Каждого ЭлементМассива из Массив Цикл
Сообщить(ЭлементМассива);
КонецЦикла;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Дело в том, что мы сами создаем массив и должны потом удалить из него четные числа. При этом размер массива должен уменьшиться. После соответственно вывести что получится. Написал я вот так, выводятся четные числа, хотя надо нечетное.
Процедура УдалитьЧетныеЭлементы(Команда)
Массив = Новый Массив;
Массив.Добавить(1000);
Массив.Добавить(2300);
Массив.Добавить(2501);
Количество = Массив.Количество();
Смещение = 0;
Для Сч = 1 По Массив.Количество() Цикл
Если Сч%2 = 0 Тогда
Массив.Удалить(Сч-Смещение);
Смещение = Смещение + 1;
КонецЕсли;
КонецЦикла;
Для Каждого ЭлементМассива из Массив Цикл
Сообщить(ЭлементМассива);
КонецЦикла;
КонецПроцедуры
Показать
(6)
Ставь задачу аккуратнее!
Дело в том, что мы сами создаем массив и должны потом удалить из него четные числа.
СТОПЭ! Так все-таки четные числа, или четные элементы??? Четные элементы - это элементы с четными индексами, и там внутри могут хоть картинки лежать!
Ставь задачу аккуратнее!
(13) Да, согласен - это явная потеря процессорного времени на вычисление (машинные итерации), но зато для чтения более наглядно.
Сам всегда ругаю за такие вещи, когда вычислительные методы в цикле дергают без необходимости...
Но это уже вопрос к оптимальности прикладного решения. Для решения теоретической задачи - так намного лучше, показывает ширину мысли.
Это как вычисление факториала. Если мне на собеседовании соискатель напишет рекурсию из одной строчки - это будет ему плюс за мышление. Но в реальной работе он за такую рекурсию люлей получит, без сомнения.
Сам всегда ругаю за такие вещи, когда вычислительные методы в цикле дергают без необходимости...
Но это уже вопрос к оптимальности прикладного решения. Для решения теоретической задачи - так намного лучше, показывает ширину мысли.
Это как вычисление факториала. Если мне на собеседовании соискатель напишет рекурсию из одной строчки - это будет ему плюс за мышление. Но в реальной работе он за такую рекурсию люлей получит, без сомнения.
Любые работы по удалению элементов массива нужно проводить с конца массива. Иначе это индусский код.
нмакс - Массив.Количество()-1;
Для к = 0 по нмакс Цикл
Индекс = нмакс - к;
Если Индекс % 2 = 0 Тогда
Массив.Удалить(Индекс);
КонецЕсли;
КонецЦикла;
(22) Кто такую чушь сказал? Все зависит от задачи, от умения оперировать индексами, и понимания того, что происходит с индексами при удалении элемента... Но никто не устанавливал "удаление с конца" как единственную панацею.
Да и сам-то ты в своем коде удаляешь начиная с начала массива.
Да и сам-то ты в своем коде удаляешь начиная с начала массива.
(29) Прочти название темы и сравни с условием задачи. Не соответствие названия и содержания - проблема того, кто создал тему, а не того, кто решает задачу. Принцип решения - верный, а удаление четных элементов или четных чисел в элементах массива - это уже лирика
(32) Каждый четный элемент массива - может быть понять по разному. Либо каждый второй элемент, либо каждый элемент, имеющий четный индекс, либо каждый элемент, являющийся четным числом. Если бы тема была "Удалить все четные числа из массива чисел", то вопросов бы не возникало.
Автор сам запутался, что ему нужно было сделать. Посмотри код, который написал автор и какую задачу обрисовал.
Автор сам запутался, что ему нужно было сделать. Посмотри код, который написал автор и какую задачу обрисовал.
(36) Какой ты нудный)
Возможно я имел ввиду каждый второй элемент массива, а не каждый элемент с четным индексом, а возможно каждый элемент с четным индексом, какая разница-то?
Вопрос в том, зачем докапываться до решения, если задающий вопрос в заголовке пишет "Помогите удалить каждый четный элемент массива", в задаче пишет, что нужно удалить четные числа из массива, а в коде пытается удалить элементы, имеющие четный индекс?
Возможно я имел ввиду каждый второй элемент массива, а не каждый элемент с четным индексом, а возможно каждый элемент с четным индексом, какая разница-то?
Вопрос в том, зачем докапываться до решения, если задающий вопрос в заголовке пишет "Помогите удалить каждый четный элемент массива", в задаче пишет, что нужно удалить четные числа из массива, а в коде пытается удалить элементы, имеющие четный индекс?
(22)
Не всегда это возможно. Например удалять нужно по мере вычислений с начала массива. Т.е. если сумма n первых элементов превысила определенной число, то удалить текущий элемент. И такое бывает.
Так что не надо делать такие громкие заявление.
Все зависит от задач и умений пользоваться программным кодом.
Любые работы по удалению элементов массива нужно проводить с конца массива. Иначе это индусский код.
Не всегда это возможно. Например удалять нужно по мере вычислений с начала массива. Т.е. если сумма n первых элементов превысила определенной число, то удалить текущий элемент. И такое бывает.
Так что не надо делать такие громкие заявление.
Все зависит от задач и умений пользоваться программным кодом.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот