P
pro·school.ru
Каталог школ

Одномерные массивы и их обработка

💻 Информатика · 10 класс

Что такое массив

Массив — это структура данных, в которой хранится упорядоченный набор элементов одного типа под общим именем. Доступ к каждому элементу выполняется по его номеру — индексу. Массив позволяет хранить много значений, не вводя для каждого отдельную переменную: вместо a1, a2, a3 мы пишем a[1], a[2], a[3].

Одномерный массив можно представить как пронумерованный ряд ячеек. Если массив содержит n элементов, то их индексы обычно занимают диапазон от 0 до n-1 (в Паскале — часто от 1 до n). Главное свойство массива — прямой доступ: чтобы получить любой элемент, не нужно перебирать предыдущие, достаточно знать индекс.

Объявление и заполнение

Перед работой массив объявляют, указав его размер. В языке Python массивом служит список, в Паскале — конструкция array[1..n] of integer. Заполнить массив можно вводом с клавиатуры, присваиванием или случайными числами:

a = [0]*5 # массив из 5 нулей
for i in range(5):
a[i] = int(input())

Типичные операции

Над массивом чаще всего выполняют: суммирование элементов, поиск максимума и минимума, подсчёт элементов с условием, замену значений. Все они строятся на проходе по элементам в цикле.

ЗадачаИдея решения
Сумма элементовНакапливать s = s + a[i]
МаксимумСравнивать каждый с текущим максимумом
Количество чётныхПроверять a[i] % 2 == 0 и считать
СреднееСумму разделить на число элементов

Разбор примера

Найдём сумму и максимум массива из n чисел:

s = 0
mx = a[0]
for i in range(n):
s = s + a[i]
if a[i] > mx:
mx = a[i]

Здесь переменная s накапливает сумму, а mx хранит наибольшее из просмотренных значений. Начальное значение максимума берут равным первому элементу, а не нулю, иначе на массиве из отрицательных чисел ответ будет неверным. Аналогично ищут минимум, заменив знак сравнения на противоположный.

Перебор с условием

Часто нужно обработать не все элементы, а только те, что удовлетворяют условию. Например, посчитать количество положительных чисел и их сумму. Тогда внутри цикла ставят проверку, и накопление выполняют лишь при её истинности:

k = 0
s = 0
for i in range(n):
if a[i] > 0:
k = k + 1
s = s + a[i]

После цикла в k хранится число подходящих элементов, а в s — их сумма. Если нужно среднее, сумму делят на k, не забыв проверить, что k не равно нулю. Подобным образом решается большинство задач на одномерные массивы: меняется лишь условие отбора и действие внутри.

Зачем нужны массивы

Главное преимущество массива в том, что данные можно просмотреть повторно. Например, чтобы найти, на сколько каждый элемент отличается от среднего, сначала проходят по массиву для вычисления среднего, а затем второй раз — для сравнения. С отдельными переменными это было бы невозможно: после ввода предыдущие значения были бы потеряны.

Частые ошибки. Выход индекса за границу массива (обращение к a[n], которого нет); инициализация максимума нулём; путаница нумерации с нуля и с единицы. Всегда проверяйте, что индекс лежит в допустимом диапазоне.

Кратко о главном

  • Массив — упорядоченный набор однотипных элементов с доступом по индексу.
  • Индексы обычно идут от 0 до n-1.
  • Большинство задач решается проходом по элементам в цикле.
  • Максимум инициализируют первым элементом, а не нулём.