"Информатика", Поляков К.Ю., Еремин Е.А.
Массив — способ хранить под одним именем много однотипных значений, например оценки или температуры за несколько дней. Каждый элемент занимает определённую позицию и находится по индексу. Размер массива задаёт число доступных элементов, а допустимые индексы зависят от правил нумерации в языке программирования. Цикл помогает по очереди вводить и обрабатывать все элементы, не повторяя команды вручную.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Массив — упорядоченный набор однотипных элементов, к которым обращаются по имени массива и индексу. Однотипность означает, что элементы предназначены для хранения данных одного вида, например целых чисел. Массив нужен, чтобы дать имя целой группе значений и затем удобно работать с ними.
Элемент массива — отдельное значение, хранящееся в массиве; у каждого элемента есть собственный индекс. Например, если в массиве записаны результаты измерений, отдельный результат — это один элемент. Такое понятие помогает различать всю последовательность и каждое значение в ней.
Индекс — номер элемента, по которому его находят в массиве. Индекс показывает позицию, а не содержимое этой позиции, и нумерация может начинаться с разных чисел. Зная правило нумерации, можно правильно обратиться к нужному элементу и не выйти за границы массива.
Одномерный массив — последовательность элементов, расположенных в одном порядке и доступных по одному индексу. Чтобы найти элемент, достаточно указать его позицию, например A[i]. Такая структура подходит для данных, которые удобно расположить в один ряд: списка оценок, температур или результатов измерений.
Массив используют, когда программе нужно хранить много однотипных данных и выполнять над ними похожие действия. Если для каждого числа создать отдельную переменную, придётся придумывать много имён и повторять команды. Массив собирает значения под одним именем, поэтому алгоритм можно записать один раз и применять к разным элементам. Это особенно полезно, когда количество данных велико или заранее задаётся переменной.
Положение значения в массиве задаётся индексом, поэтому для получения элемента указывают имя массива и нужную позицию. Например, запись A[i] означает элемент массива A с индексом i. Индекс можно менять, чтобы выбирать разные позиции, не меняя само имя массива. Так программа понимает, с каким именно значением нужно выполнить действие.
Размер массива определяет, сколько элементов можно в нём разместить. Если массив содержит N элементов, обратиться можно только к позициям, которые входят в принятый для него диапазон индексов. Точный диапазон зависит от нумерации: при начале с единицы это 1…N, а при начале с нуля — 0…N−1. Выход за границы означает попытку обратиться к несуществующей позиции и может привести к ошибке.
Чтобы обработать весь массив, используют цикл: его переменная последовательно принимает индексы элементов. На каждом шаге команда выполняется для текущей позиции, например считывает значение или прибавляет его к сумме. Цикл избавляет от необходимости писать одинаковые действия отдельно для каждого элемента. Чтобы обработка охватила весь массив, число повторений должно соответствовать его размеру.
Границы цикла нужно согласовать с нумерацией массива, потому что неверный старт или конец меняет набор обрабатываемых позиций. Если цикл начинает работу со второго индекса при нумерации с единицы, первый элемент останется без внимания. Если он завершится индексом N+1, программа может обратиться за пределы массива. Поэтому перед запуском полезно проверить первый и последний индексы и убедиться, что каждый элемент посещается ровно один раз.
| Характеристика | Что означает | Пример |
|---|---|---|
| Имя массива | Обозначение, по которому программа обращается ко всему набору | A |
| Размер массива | Количество элементов, которое в нём можно хранить | N = 5 |
| Элемент массива | Значение, записанное в отдельной позиции | A[2] = 17 |
| Индекс элемента | Номер позиции, в которой находится элемент | 2 в записи A[2] |
| Допустимые индексы | Номера позиций, к которым разрешено обращаться | 1…5 при нумерации с единицы |
| Обращение к элементу | Имя массива и индекс нужной позиции | A[i] |
В таблице размер и допустимые индексы связаны, но это не одно и то же: размер показывает число элементов, а индексы — их номера. Пример с индексами от 1 до 5 подходит для нумерации с единицы. Если язык программирования начинает отсчёт с нуля, диапазон нужно изменить.
Условие: дан массив из пяти чисел, нужно составить алгоритм ввода всех его элементов. Примем для примера нумерацию с единицы, поэтому индексы будут от 1 до 5. Цикл удобен тем, что команда ввода повторится для каждой позиции.
Ответ: для i от 1 до 5 вводить A[i]. Если в выбранном языке индексы начинаются с нуля, цикл должен пройти от 0 до 4. В обоих вариантах вводится ровно пять элементов.
Условие: дан массив из N чисел, нужно найти сумму его элементов. Нельзя начинать сложение с неопределённого значения, поэтому переменной-сумме заранее присваивают ноль. Затем каждое число добавляют по очереди, не пропуская ни одного индекса.
Ответ: S — сумма элементов массива. Например, для значений 4, 2 и 7 последовательные суммы будут 4, 6 и 13. В итоге получаем 13, а число итераций должно совпасть с размером массива.
Условие: дан массив из N чисел, нужно найти наибольший элемент и количество элементов, равных ему. Удобно сделать два прохода: сначала определить максимум, затем посчитать его повторы. Так подсчёт начинается уже после того, как известно, какое значение нужно искать.
Ответ: M содержит наибольшее значение, а C — число его появлений. Например, для последовательности 3, 8, 5, 8 максимум равен 8 и встречается два раза. Первый элемент подходит для начального M, даже если все числа массива отрицательные.
Путают индекс с самим значением элемента. Это происходит потому, что обе величины встречаются в записи обращения, например A[3]. Проверьте себя: индекс в скобках называет позицию, а значение можно узнать, только посмотрев, что записано в этой позиции.
Начинают или заканчивают цикл с неверной границей. Часто забывают, начинается ли нумерация с нуля или с единицы, и из-за этого пропускают элемент либо делают лишний шаг. Проверьте первый и последний индексы отдельно и посчитайте, что цикл проходит ровно столько раз, каков размер массива.
Обращаются к позиции за пределами массива. Так бывает, если индекс цикла становится больше последнего допустимого или меньше первого. Сверьте размер и диапазон индексов; для пяти элементов при нумерации с единицы допустимы позиции от 1 до 5, а не 0 или 6.
Сравнивают элементы или вычисляют результат до того, как массив заполнен нужными данными. Ошибка возникает, когда порядок шагов алгоритма не продуман: программа работает с пустыми или ещё не введёнными позициями. Перед обработкой проверьте, что все нужные значения уже записаны; ввод и вычисления должны идти в правильном порядке.
Для работы с массивом нужны переменные и присваивание: с их помощью задают индексы, хранят текущий элемент и накапливают результат. Условия позволяют сравнивать значения и выбирать действие, например обновлять максимум. Циклы нужны для последовательного прохода по позициям, поэтому без понимания их границ трудно обработать массив целиком.
Массивы применяются там, где данные образуют набор или последовательность: в таблицах измерений, списках результатов и наборах чисел. На этой основе строят алгоритмы поиска нужного значения и сортировки данных по порядку. Задачи на массивы помогают научиться обрабатывать много элементов по общему правилу.
Зачем нужен массив, если можно создать несколько переменных?
Для нескольких значений можно завести отдельные переменные, но с ростом их числа программа становится громоздкой. Массив хранит однотипные данные под одним именем, поэтому их удобно обрабатывать циклом.
Чем индекс отличается от значения элемента?
Индекс обозначает позицию элемента в массиве, а значение — данные, которые в этой позиции хранятся. Например, в записи A[3] число 3 — индекс, а A[3] обозначает значение третьего элемента при нумерации с единицы.
С какого числа начинается нумерация элементов массива?
Это зависит от языка программирования и способа задания массива: нумерация может начинаться с нуля или с единицы. Перед работой с массивом нужно проверить принятую нумерацию и учитывать её в циклах.
Как понять, какие индексы допустимы для массива?
Нужно знать размер массива и начальный индекс. Например, если в массиве N элементов и нумерация начинается с единицы, допустимы индексы от 1 до N.
Почему массив удобно обрабатывать с помощью цикла?
Цикл позволяет выполнить одну и ту же команду для каждого элемента, меняя только индекс. Так можно, например, ввести все значения или найти их сумму без отдельной команды для каждой позиции.
§ 21. Массивы