Вывод на печать четных и нечетных элементов массива в Python
В данном руководстве рассмотрим как вывести на печать элементы массива в четной и нечетной позициях в Python.
Четные элементы
Нам нужно напечатать элемент, который присутствует на четной позиции. Даже позиционированный элемент можно найти, пройдя массив и увеличив значение i на 2.

В приведенном выше массиве элементами на четной позиции являются b и d.
Алгоритм
- ШАГ 1: Объявите и инициализируйте массив.
- ШАГ 2: Рассчитайте длину объявленного массива.
- ШАГ 3: Прокрутите массив, инициализируя значение переменной «i» равным 1(поскольку первый четный элемент лежит на i = 1), а затем увеличивая его значение на 2, т. е. i=i+2.
- ШАГ 4: Распечатайте элементы, присутствующие в четных позициях.
Программа
Элементы нечетных позиций
Выведем элементы массива, которые находятся в нечетных позициях. Этого можно добиться, перебирая массив и печатая элементы массива, увеличивая i на 2 до тех пор, пока не будет достигнут конец массива.

В приведенном выше массиве на нечетных позициях присутствуют элементы a, c и e.
Найти количество четных чисел в массиве
Задача 2.74
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран количество чётных чисел, расположенных от начала массива до положения первого наибольшего элемента.
Сегодня я покажу вам, как из простой задачи сделать сложную )))
На самом деле, конечно, усложнение будет кажущимся. Ну да, я буду использовать константы, пользовательские типы данных и функции, хотя для такой задачи можно было бы обойтись и без них.
Но моя цель — не только показать решение, но и приблизить новичка к тому, как создаются настоящие программы.
Само решение я описывать не буду. Опытные и так поймут, а новичкам будет полезно разобраться самим (если что — в примерах программ есть комментарии). А расскажу только о том, для чего я использовал те или иные ходы. Итак…
Для чего используются константы, я уже говорил не раз. Но не грех и повторить. Если одно и то же постоянное значение имеется в программе в нескольких местах, то в случае его замены на другое, вам придётся менять это значение во всех участках программы. А это, во-первых, займёт больше времени, а во-вторых, где-то это значение можно просто пропустить. Если же вы используете константу, то при замене значения вам надо будет изменить его только в одном месте программы. Кроме того, давая константам осмысленные имена, вы будет понимать, для чего используется это значение, найдя имя константы в вашей программе из миллиона строк.
Зачем использовать пользовательский тип данных?
Тоже две причины.
Во-первых, в Паскале вы не можете в объявлении функции в качестве параметра использовать массив. То есть вот так:
не проканает. Компилятор будет шибко ругаться, однако. Поэтому сначала надо определить новый тип данных, например, вот так:
а потом уже можно объявить функцию, например, вот так:
Ну а почему бы тогда не использовать массив как глобальную переменную и не париться?
Дело в том, что использовать в подпрограммах глобальные переменные без крайней необходимости считается дурным тоном. И это не спроста.
Представьте, что у вас объявлен массив с элементами типа BYTE, и вы работаете с ним в нескольких функциях. Да так работаете, что приходится в функциях создавать локальные переменные — массивы с элементами типа BYTE. Это уже сильно неудобно. Но ещё веселее будет, если вам вдруг потребуется изменить тип элементов (например, WORD вместо BYTE). Надеюсь, вы понимаете, к чему я клоню. И это вторая причина применять пользовательский тип данных для массива.
Осталось рассказать, для чего используются функции в такой простой программе. Ну здесь ничего необычно — чтобы упростить исходный код основной программы.
Да, в этой учебной программе можно было обойтись и без лишних заморочек. Но если бы вы разрабатывали большую сложную программу, то одни и те же действия могли бы выполняться в ней несколько раз. И такие действия, конечно, удобно выполнять в виде функций.
Ну вот как-то так. А теперь примеры программ на Паскале и С++.
ПРИМЕЧАНИЕ
Небольшое пояснение всё-таки дам. В функции GetNumOdd на первый взгляд слишком много лишнего. Но это связано с тем, что по условию задачи нам надо вывести чётные элементы до положения первого наибольшего элемента. То есть если наибольший элемент будет также чётным, то его учитывать не надо. Решение, которое я применил, не является самым изящным и самым простым. Можно было добиться того же итога более красиво. Если хотите — попробуйте. Можете считать это домашним заданием )))
ПРИМЕЧАНИЕ
Обратите внимание, что в примере на С++ индексация массива начинается с 0, поэтому исходный код не вполне соответствует примеру на Паскале.
ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги “Основы программирования” и “Основы С++”.