"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Массив — это способ хранить под одним именем сразу несколько однотипных значений, например результаты измерений или оценки. Каждое значение занимает отдельную ячейку, а найти её помогает индекс — номер элемента в последовательности. Правила нумерации зависят от языка программирования, поэтому перед обращением к элементу нужно знать допустимые границы индексов. Массивы особенно удобны вместе с циклами: одна команда может обработать все элементы по очереди.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Массив — упорядоченная совокупность однотипных элементов, объединённых общим именем. Однотипность означает, что значения относятся к одному виду данных, например все являются целыми числами. Так набор измерений можно хранить вместе и обрабатывать по общему правилу, не заводя переменную для каждого результата.
Элемент массива — отдельное значение, входящее в массив. Чтобы обратиться к элементу, записывают имя массива и индекс в квадратных скобках, например A[i]. Это позволяет работать с одним нужным значением, сохраняя остальные элементы в том же массиве.
Индекс массива — целое значение, указывающее положение элемента в последовательности. Индекс в записи A[i] выбирает ячейку, а не сообщает, какое значение в ней хранится. Допустимый диапазон индексов и начало нумерации определяются размером массива и правилами языка программирования.
Одномерный массив — массив, элементы которого расположены в одной последовательности. Для обращения к любому его элементу достаточно одного индекса, как в записи A[i]. Такое представление подходит, например, для списка оценок или показаний прибора, расположенных по порядку.
Если программе нужно хранить много однотипных значений, отдельные переменные быстро становятся неудобными: приходится давать каждой имя и отдельно записывать команды для каждой. Массив собирает эти значения под одним именем, поэтому с набором проще работать как с целым. При этом значения не сливаются: программа по-прежнему может выбрать и изменить каждый элемент отдельно.
Массив можно представить как ряд ячеек, в каждой из которых находится одно значение. Ячейки расположены в определённом порядке, и каждой соответствует индекс. Поэтому имя массива вместе с индексом однозначно указывает, какую ячейку нужно прочитать или изменить, например A[4].
При создании массива задают его размер или сразу указывают набор значений. От размера зависит, сколько элементов доступно, а значит, и какие индексы можно использовать. Если массив содержит шесть элементов, обращение допустимо только к шести существующим ячейкам, хотя конкретные числа индексов зависят от языка.
Обращаясь к элементу по индексу, программа может прочитать его значение или присвоить ячейке новое. Например, команда A[i] = 10 помещает число 10 в элемент с индексом i. Здесь i задаёт положение, а 10 является данными; путать их нельзя, иначе можно изменить не тот элемент или неверно понять результат.
Массив особенно полезен, когда нужно выполнить одинаковое действие над всеми его элементами. Цикл меняет индекс, а команда внутри цикла обращается к очередной ячейке. Так можно вывести весь набор или найти его сумму, не повторяя вручную одну и ту же команду для каждой позиции.
| Признак | Обычная переменная | Массив |
|---|---|---|
| Сколько значений хранит | Одно значение в данный момент | Набор значений |
| Как задаётся имя значения | Каждое значение получает отдельное имя | У элементов общее имя массива |
| Как обратиться к отдельному значению | По имени переменной | По имени массива и индексу |
| Как обрабатывать набор однотипных значений | Нужно обращаться к переменным по отдельности | Можно перебирать элементы циклом |
| Что нужно учитывать при обращении | Тип и имя переменной | Допустимый индекс и правила нумерации |
Сравнивайте строки таблицы, чтобы понять, чем отличается обращение к одному значению и к набору. Если задача связана с множеством однотипных данных, массив упрощает их хранение и обработку. При чтении записи с индексом дополнительно проверьте, входит ли индекс в допустимый диапазон.
Задача 1. В массиве хранятся результаты пяти измерений. Нужно обратиться к третьему результату и заменить его новым значением. Важно не подменять порядковый номер привычным индексом: сначала нужно выяснить, с какого числа начинается индексация в выбранном языке.
Ответ. Заменить значение можно присваиванием A[2] = x при нумерации с нуля или A[3] = x при нумерации с единицы. Перед записью нужно свериться с правилами языка, иначе будет выбран не тот элемент.
Задача 2. Дан массив из шести целых чисел. Требуется вывести все элементы по порядку. Для примера примем, что индексы начинаются с 0, поэтому допустимый диапазон — от 0 до 5; в языке с другой нумерацией границы цикла нужно изменить.
Ответ. Алгоритм: для i от 0 до 5 вывести A[i]. Он выведет все шесть элементов ровно по одному разу; для другого начала индексации изменяются начальное и конечное значения цикла.
Задача 3. Дан массив оценок. Нужно найти их сумму и среднее значение. Сумму удобно накапливать в отдельной переменной, потому что массив при этом остаётся исходным, а одно и то же действие можно повторить для каждой оценки.
Ответ. Сумма равна результату сложения всех элементов, среднее вычисляется как сумма / n. Если оценки целые, для среднего может потребоваться вещественный тип, иначе дробная часть результата потеряется.
Путать индекс со значением элемента. Например, в A[2] индексом является 2, но в ячейке может храниться совсем другое число. Путаница возникает потому, что оба числа встречаются в одной записи; проверьте себя, спросив, указывает ли число место или содержит данные.
Обращаться за пределы массива. Такой индекс не соответствует ни одной существующей ячейке, поэтому программа может выдать ошибку или работать непредсказуемо. Ошибка часто появляется, когда границы массива предполагают на глаз; перед обращением сопоставьте индекс с допустимым диапазоном.
Начинать перебор с неверного индекса. Если первый элемент имеет индекс 0, а цикл начинается с 1, часть массива останется необработанной. Такое случается, когда нумерацию принимают за счёт с единицы; проверьте, какой индекс соответствует первому элементу именно в используемом языке.
Неверно менять индекс в цикле. Слишком большой шаг может пропустить элементы, а неправильное условие завершения — привести к выходу за границу. Перед запуском мысленно выпишите первые значения индекса и проверьте, что цикл посещает каждую позицию ровно один раз и останавливается вовремя.
Для работы с массивами нужны знакомые основы программирования: присваивание значений, типы данных и выполнение команд. Понимание типов помогает выбрать, какие однотипные данные объединить в одном массиве. Индекс и присваивание позволяют прочитать элемент или заменить его значение.
Циклы нужны, чтобы переходить от одного элемента к следующему и обрабатывать весь набор. Условие завершения и границы цикла должны совпадать с допустимыми индексами массива. Поэтому навыки работы с циклами непосредственно помогают избежать пропусков и выхода за границы.
Массивы применяют при работе с таблицами данных, поиске и сортировке. Позже тот же принцип можно расширить до двумерных массивов, где для выбора элемента используют уже несколько индексов. Освоение одномерного массива даёт основу для этих способов организации данных.
Зачем нужен массив, если можно создать отдельную переменную для каждого значения?
Для нескольких значений можно завести отдельные переменные, но при большом наборе их становится трудно объявлять и обрабатывать. Массив хранит однотипные данные под общим именем, а цикл позволяет выполнить одну и ту же команду для каждого элемента.
Чем индекс отличается от значения элемента?
Индекс показывает положение ячейки в массиве, а значение — это данные, которые в ней хранятся. Например, в записи A[2] число 2 является индексом, а значение элемента нужно прочитать из соответствующей ячейки.
С какого числа начинается нумерация элементов массива?
Это зависит от языка программирования и иногда от способа создания массива. В одних языках первый индекс равен 0, в других — 1, поэтому следует свериться с правилами языка и диапазоном массива.
Что произойдёт, если обратиться к несуществующему элементу?
Индекс за допустимыми границами указывает на ячейку, которой в массиве нет. Программа может сообщить об ошибке или повести себя непредсказуемо, поэтому границы нужно проверять.
Как обработать все элементы массива, не записывая отдельную команду для каждого?
Использовать цикл, в котором индекс последовательно принимает допустимые значения. Тело цикла выполняется для каждого элемента, например выводит его или добавляет его значение к сумме.
§ 16. От переменной к массиву