Массивы.
Массив представляет собой упорядоченную последовательность однородных элементов . В массиве каждый элемент имеет свой порядковый номер, который называется индексом. Примером простейшего одномерного массива является список учеников одного школьного класса или студентов одной группы. В этом случае элементами массива будут фамилии учеников или студентов, а индексами – номера учеников или студентов в списке. Важной характеристикой массива является его диапазон, то есть пределы, в которых может изменяться значение индекса массива.
В случае использовании массива в программе, он предварительно должен быть описан в разделе описания переменных. Но описывается массив иначе, чем обычная переменная. В общем виде описание массива выглядит следующим образом:
var имя массива: array[a..b] of тип элементов;
где var, array и of – служебные слова. Array означает массив, предлог of в данном случае – из, a и b – соответственно нижняя и верхняя границы диапазона массива.
![]() |
Рис. 22. Программа определения числовых кодов для вводимой строки символов и результаты ее работы.
Приведем примеры описания массивов:
var a: array[1..20] of integer;
это – описание массива с именем a, который может содержать до 20
элементов, причем все эти элементы целого типа. var st: array[1..10] of string[15];
а в данном случае описан массив с именем st из 10 строковых элементов, каждый из которых может содержать до 15 символов.
В программе можно работать не только со всем массивом целиком, но и с отдельными его элементами. Для того, чтобы обратиться в программе к какому-либо элементу массива, нужно указать имя массива и индекс содержащегося в нем элемента. Например, если Вы встретите в программе следующую запись : a[10] , то она означает, что мы обращаемся к элементу массива a с порядковым номером 10.
Рассмотрим программу определения максимальной и минимальной температуры за месяц (см. рис. 23). Данные о температуре за каждый день в программе вводятся с клавиатуры и хранятся в массиве. Нижней границей диапазона массива будет 1, а верхней 31 (максимальное число дней, которое может быть в месяце). Число дней, которое фактически содержится в том месяце, данные по которому обрабатываются программой, вводится с клавиатуры и содержится в переменной v. Заполнение массива будет производится в цикле с заданным числом повторений. Счетчик цикла i будет меняться от 2 до v, так как первый элемент массива заполняется не в цикле. (Почему так делается будет объяснено ниже). В ходе работы цикла очередному элементу массива присваивается соответствующее значение, равное температуре за i – й день месяца.
Если количество дней в месяце меньше, чем 31, то массив будет заполнен не до конца. Это вполне допустимо и никак не повлияет на работоспособность программы.
Для того, чтобы определить максимальный и минимальный элементы массива ( и соответственно температуры месяца) используем следующий прием. Введем две вспомогательные переменные min и max. До начала работы цикла присвоим каждой из этих переменных значение, равное первому элементу массива (температура за первый день месяца). Затем каждый вновь вводимый (в цикле) элемент массива будем сравнивать с этими двумя переменными. Если значение элемента меньше, чем min, то вспомогательной
![]() |
Рис. 23. Программа определения максимальной и минимальной температур за месяц и результаты ее работы.
переменной присваивается новое (минимальное на текущем этапе) значение, равное этому элементу. Если же значение элемента больше или равно min, то переменная остается без изменения. Для этого используется сокращенный условный оператор. Аналогично производится работа с вспомогательной переменной max. В итоге, после завершения работы цикла переменные min и max действительно будут содержать соответственно минимальное и максимальное значения температур, которые останется только вывести на печать оператором writeln.
Отметим еще две особенности массивов. Во-первых, элементами массива могут быть не только переменные, но и константы. Такой массив, естественно, описывается в разделе объявлений как константа, причем константы описываются перед переменными. В этом же разделе такому массиву присваиваются значения. Во-вторых, нижней границей диапазона массива необязательно должна быть единица. Важно только, чтобы значение нижней границы было меньше, чем верхней.
Эти особенности массивов хорошо иллюстрирует программа, которая по номеру года по европейскому летоисчислению определяет его название по традиционному восточному календарю (см. рис.24). Для решения данной задачи создадим в программе массив из символьных элементов. Элементами данного массива являются строковые константы, каждая из которых содержит название одного из годов 12-летнего восточного цикла. Нижней границей диапазона индекса данного массива является 1996 – первый год очередного 12
– летнего цикла. Верхней границей 2007 – соответственно последний год данного цикла. Пользователь должен ввести год, находящийся в границах данного диапазона, и в ответ будет выведен строковый элемент массива с соответствующим индексом, то есть название года.
Так как пользователь может ошибиться при вводе исходных данных, то в программе предусмотрена их проверка, которая производится при помощи условного оператора if. При этом проверяются сразу два условия. Вводимое число не должно быть меньше минимального или больше максимального. Для того, чтобы оба условия проверялись параллельно, они объединены служебным словом or, что означает «или». Если нарушена или верхняя или нижняя граница диапазона пользователю сообщается о допущенной им при вводе ошибке.
Массивы могут быть не только одномерными как в рассмотренных выше программах, но и двумерными. Простейшим примером такого массива является всем известная таблица умножения в которой результат умножения двух чисел определяется по номеру строки, соответствующей одному из сомножителей, и
![]() |
Рис. 24. Программа, определяющая название года по восточному календарю и результаты ее работы
номеру столбца, соответствующему другому. Соответственно и в любом двумерном массиве элемент определяется по двум индексам.
В языке Паскаль двумерные массивы описываются в общем виде следующим образом:
var имя массива: array[a..b,c..d] of тип элементов;
где a и b – соответственно верхняя и нижняя граница диапазона значений для первого индекса,
c и d - верхняя и нижняя граница диапазона значений для второго индекса.
Двумерный массив таким образом можно представить в виде таблицы, имеющей b-a+1 строк и c-d+1 столбцов.
Пример описания двумерного массива:
var tabl: array [1..9,1..9] of integer;
таким образом описан целочисленный массив, содержащий 9 строк и 9
столбцов.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.