На Горох
Информатика, 11 класс

§ 8. Структурированные типы данных. Массивы

"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.

Объяснение темы В оглавлении: § 8. Структурированные типы данных. Массивы

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

Массив — упорядоченная последовательность однотипных элементов, каждый из которых имеет свой индекс. Упорядоченность означает, что у элементов есть определённые позиции, а однотипность — что они относятся к одному типу, например целому числу. Массив удобен, когда нужно хранить много значений одной природы и выполнять над ними похожие действия.

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

Индекс массива — номер или обозначение, по которому находят конкретный элемент. Его записывают рядом с именем массива, например A[3], хотя точный синтаксис зависит от языка. Индекс позволяет точно выбрать позицию, не перебирая значения вручную и не путая элементы между собой.

Как это устроено

Если набор значений хранить в отдельных переменных, для каждой понадобится своё имя, а обработку придётся повторять для каждого имени. В массиве связанные данные собраны под одним общим именем, и к каждому из них можно обратиться через позицию. Это особенно полезно, когда значений много или их число заранее неизвестно: программа может работать с ними по одному и тому же алгоритму. Например, результаты опроса можно последовательно проверять, не создавая переменные ответ1, ответ2 и далее.

Элементы массива имеют один тип, потому что программе нужно понимать, как хранить и интерпретировать каждое значение. Для целых чисел, например, применяются одинаковые правила представления и арифметики, а для символов — другие. Однотипность позволяет задавать единый способ чтения, сравнения и изменения элементов. Если смешать в одном массиве числа, текст и логические значения, операции над последовательностью стали бы неоднозначными.

Индекс связывает элемент с его местом в упорядоченной последовательности. По индексу программа находит значение, а при присваивании может изменить именно его, например записать новое число в выбранную позицию. Обычно для этого используют имя массива и индекс в квадратных скобках: A[i]. Индекс остаётся обозначением позиции, даже если значение элемента изменилось, поэтому нельзя принимать одно за другое.

Количество элементов и диапазон индексов — не одно и то же. Если в массиве пять элементов, его размер равен пяти, но при нумерации с нуля допустимы индексы от 0 до 4, а при нумерации с единицы — от 1 до 5. Начало отсчёта определяется правилами языка или конкретной записи массива. Поэтому перед обращением к элементу выясняют и размер массива, и допустимые границы индексов.

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

Сравнение отдельной переменной и массива

ХарактеристикаОтдельная переменнаяМассив
Какие данные хранитОдно значениеНесколько однотипных значений
Как обращаются к значениюПо имени переменнойПо имени массива и индексу
Как обрабатывают набор значенийДля каждого значения нужны отдельные действияЭлементы перебирают циклом
Когда удобно использоватьКогда нужно хранить одно самостоятельное значениеКогда нужно работать с набором связанных значений

Сопоставьте, сколько значений нужно хранить и придётся ли выполнять над ними одинаковые действия. Для одного самостоятельного результата достаточно отдельной переменной, а для повторяющегося набора обычно удобнее массив. Таблица помогает выбрать способ хранения, но при работе с массивом всё равно нужно учитывать тип элементов и границы индексов.

Разбор задач

Задача 1. Задан массив из пяти целых чисел. Укажите, как обратиться к третьему элементу, если индексация начинается с нуля. Нужно различать порядковый номер элемента, который считают с единицы, и его индекс, который в этой записи начинается с нуля. Третий элемент имеет индекс 2.

  1. Позиции пяти элементов при нумерации с нуля обозначаются индексами 0, 1, 2, 3 и 4.
  2. Сопоставьте порядковый номер и индекс: первый элемент имеет индекс 0, второй — 1, третий — 2.
  3. Запишите обращение к третьему элементу как A[2], где A — имя массива.

Ответ: A[2]. Если бы индексация начиналась с единицы, третий элемент обозначался бы как A[3], поэтому способ нумерации всегда проверяют заранее.

Задача 2. Дан массив оценок и задан порог. Требуется подсчитать, сколько оценок не ниже этого порога. Условие «не ниже» означает, что оценка больше порога или равна ему. Значит, при каждом подходящем элементе нужно увеличивать счётчик на единицу.

  1. Создайте счётчик и задайте ему начальное значение 0, потому что до проверки элементов подходящих оценок ещё не найдено.
  2. Организуйте цикл по всем допустимым индексам массива и на каждом шаге получите очередную оценку.
  3. Если оценка больше или равна порогу, увеличьте счётчик на 1; если условие не выполнено, оставьте его без изменения.
  4. После завершения цикла выведите счётчик: в нём хранится количество оценок не ниже порога.

Ответ: результатом будет значение счётчика после полного перебора. При проверке алгоритма удобно пройти несколько оценок вручную и убедиться, что равная порогу оценка тоже учитывается.

Задача 3. Дан массив целых чисел. Найдите наибольший элемент и его индекс. Чтобы не назначить максимумом число, которое не входит в массив, сначала примите за него первый элемент. Затем сравнивайте с ним оставшиеся значения и при необходимости обновляйте и максимум, и его индекс.

  1. Запишите значение первого элемента в переменную максимума, а индекс первого элемента — в переменную индекса максимума.
  2. Циклом переберите остальные допустимые индексы, начиная со второго элемента, и сравните каждое значение с текущим максимумом.
  3. Если найденное значение больше, замените максимум этим значением и сохраните его индекс.
  4. После перебора выведите максимум и сохранённый индекс; если максимальное значение встречается несколько раз, такой алгоритм оставит индекс первого найденного максимума.

Ответ: пара из наибольшего значения массива и его индекса. Начальная установка по первому элементу позволяет алгоритму работать и тогда, когда все числа отрицательные.

Типичные ошибки

Путать индекс со значением. Индекс обозначает позицию, а значение хранится в этой позиции; ошибка возникает, когда число в квадратных скобках принимают за содержимое элемента. Например, A[2] — обращение к элементу, а не утверждение, что его значение равно 2. Для проверки отдельно назовите позицию и отдельно прочитайте, что в ней хранится.

Выходить за границы массива. Так бывает, если неверно определены размер или начало нумерации: например, к массиву из пяти элементов с индексами 0–4 пытаются обратиться по индексу 5. Обращение к несуществующей позиции может вызвать ошибку или дать неверный результат. Перед запуском выпишите минимальный и максимальный допустимые индексы и сравните с ними границы цикла.

Считать, что в одном массиве допустимы разные типы. Иногда так думают, потому что в повседневной речи набор может состоять из чисел и слов. Но массив в рассматриваемой модели содержит однотипные элементы, а единый тип задаёт правила обработки. Проверьте, что все предполагаемые значения относятся к одному типу, например являются целыми числами.

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

Связь с другими темами

Для работы с массивами нужны знания о переменных, типах данных и присваивании: они помогают объявлять данные, задавать им значения и изменять выбранные элементы. Циклы позволяют обрабатывать массив целиком, а условия — отбирать элементы по заданному признаку. Эти приёмы применяются в задачах поиска и сортировки наборов данных. Массивы также служат основой для изучения таблиц, матриц и других структур хранения информации.

Что запомнить

  • Массив объединяет несколько однотипных значений.
  • Каждый элемент массива доступен по индексу.
  • Индекс — это не значение элемента.
  • Допустимые индексы определяются размером массива и правилами языка программирования.
  • Цикл позволяет обработать элементы массива по очереди.
  • При работе с массивом нужно проверять границы индексов.

Частые вопросы по теме

Зачем нужен массив, если можно создать отдельную переменную для каждого значения?

Массив хранит связанные значения под одним именем, поэтому не приходится заводить отдельную переменную для каждого элемента. Его удобно обрабатывать циклом: одна и та же команда применяется к значениям по очереди.

Чем индекс отличается от значения элемента?

Индекс указывает позицию элемента в массиве, а значение — это данные, которые в этой позиции хранятся. Например, в записи A[2] число 2 — индекс, а A[2] обозначает само значение третьего элемента при нумерации с нуля.

Почему элементы массива должны быть одного типа?

Массив предназначен для хранения однотипных данных: например, целых чисел или символов. Единый тип помогает языку программирования одинаково хранить, проверять и обрабатывать все элементы.

С какого числа начинается нумерация элементов массива?

Это зависит от языка программирования и принятого способа задания массива. Индексы могут начинаться с нуля или с единицы, поэтому перед обращением к элементу нужно проверить правила языка.

Как не выйти за границы массива при переборе в цикле?

Сначала выясните допустимые индексы: например, для массива из n элементов с нумерацией от нуля это числа от 0 до n − 1. Затем задайте цикл так, чтобы его начальное и конечное значения не выходили за этот диапазон.

Спросить по теме параграфа

§ 8. Структурированные типы данных. Массивы

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.