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

§ 17. Таблицы и массивы

"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.

Объяснение темы В оглавлении: § 17. Таблицы и массивы

Кратко о теме

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

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

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

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

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

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

Индекс массива — целое значение, указывающее положение элемента в наборе. Допустимый диапазон индексов задают при описании массива, чтобы программа знала, сколько элементов доступно и какие обращения разрешены. Например, для диапазона от 1 до 5 индекс 6 уже недопустим, даже если в записи массива его можно указать.

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

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

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

При описании массива указывают его имя, диапазон индексов и тип элементов. Например, запись «A: массив [1..5] целых» означает, что массив A содержит пять целых значений с индексами от 1 до 5. После описания конкретное значение выбирают по индексу: обращение A[3] выбирает третий элемент, а присваивание A[3] := 12 помещает в него число 12. Такой порядок нужен, чтобы программа могла выделить место для данных и проверять, что обращения сделаны в разрешённых пределах.

Обычную таблицу можно представить как двумерный массив, потому что у каждой ячейки есть строка и столбец. Номер строки становится первым индексом, а номер столбца — вторым, например T[2, 3] указывает на ячейку во второй строке и третьем столбце. Это удобно, когда данные уже организованы по двум признакам: например, строки соответствуют ученикам, а столбцы — предметам. Два индекса позволяют найти нужную ячейку на пересечении этих признаков.

Цикл позволяет последовательно обработать элементы массива, потому что индекс можно менять после каждого повторения команды. Для массива с индексами от 1 до 5 цикл начинает с 1 и заканчивает на 5, обращаясь к A[i] на каждом шаге. Если изменить границы цикла, часть значений может остаться необработанной или программа попытается выйти за массив. Поэтому границы цикла обычно согласуют с диапазоном индексов, заданным при описании.

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

Одномерные и двумерные массивы

СвойствоОдномерный массивДвумерный массив
Как расположены элементыВ одной последовательностиВ строках и столбцах
Сколько индексов нужно для обращения к элементуОдинДва
Как записывают элементA[i]A[i, j]
Как соотносятся индексы и положение в набореИндекс указывает номер элемента в последовательностиПервый индекс задаёт строку, второй — столбец
Пример примененияСписок оценок одного ученикаТаблица оценок нескольких учеников по разным предметам

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

Разбор задач

Вывести третий элемент

Дан массив из пяти целых чисел. Нужно вывести третий элемент. Будем считать, что индексы начинаются с 1, поэтому номер элемента совпадает с индексом; если в конкретном языке нумерация другая, нужно учитывать её правила.

  1. Уточняем имя массива и его диапазон: допустим, это A[1..5].
  2. Связываем требование «третий элемент» с индексом 3, а не с числом, которое хранится в элементе.
  3. Записываем обращение A[3] и выводим его значение на экран.

Проверка проста: индекс 3 находится внутри диапазона от 1 до 5. Ответ: вывести значение элемента A[3].

Найти сумму оценок

Дан массив оценок учеников, нужно найти сумму всех оценок. Чтобы не складывать каждый элемент отдельно, заведём переменную-накопитель S и будем прибавлять к ней очередное значение. Предположим, что массив A имеет индексы от 1 до N.

  1. Перед перебором задаём S := 0, потому что ноль не изменяет результат сложения.
  2. Запускаем цикл по i от 1 до N и на каждом шаге выполняем S := S + A[i].
  3. После завершения цикла выводим S: к этому моменту в ней учтён каждый элемент ровно один раз.

Если начать цикл с 2, первая оценка потеряется; если закончить на N − 1, не учтётся последняя. Поэтому границы проверяют по объявленному диапазону массива. Ответ: S — сумма всех оценок.

Сумма элементов каждой строки

Дана таблица целых чисел из нескольких строк и столбцов. Требуется найти сумму элементов каждой строки отдельно, поэтому для каждой строки нужно заново начинать накопление с нуля. Пусть таблица T имеет R строк и C столбцов, а индексы начинаются с 1.

  1. Внешний цикл перебирает номер строки i от 1 до R.
  2. В начале каждой итерации задаём S := 0, чтобы сумма предыдущей строки не попала в текущий результат.
  3. Внутренний цикл перебирает столбцы j от 1 до C и прибавляет T[i, j] к S.
  4. Когда столбцы текущей строки закончились, выводим S и переходим к следующей строке.

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

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

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

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

В двумерном массиве недостаточно указать только строку или только столбец: останется несколько возможных ячеек. Так происходит, если таблицу мысленно сводят к обычному списку. Записывайте оба индекса и проверяйте, что первый относится к строке, а второй к столбцу, например T[2, 4].

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

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

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

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

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

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

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

Зачем использовать массив, если можно объявить много отдельных переменных?

Массив собирает однотипные данные под одним именем, поэтому их проще перебирать циклом и обрабатывать одной командой. С отдельными переменными пришлось бы записывать похожие действия для каждой из них.

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

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

Как понять, какие индексы допустимы для массива?

Нужно посмотреть диапазон индексов, указанный при описании массива. Если объявлен диапазон от 1 до 5, обращаться можно только к элементам с индексами 1, 2, 3, 4 и 5.

Почему для элемента таблицы нужны два индекса?

В таблице положение ячейки определяется и строкой, и столбцом. Поэтому один индекс указывает номер строки, а второй — номер столбца.

Как с помощью циклов обработать все элементы массива?

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

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

§ 17. Таблицы и массивы

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.