Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование ч.2.doc
Скачиваний:
6
Добавлен:
24.09.2019
Размер:
7.68 Mб
Скачать

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

До настоящего момента мы использовали в программах простые переменные стандартных типов данных. В этом случае каждой области памяти для хранения одной величины соответствует свое имя. Если переменных много, программа, предназначенная для их обработки, получается длинной и однообразной. Поэтому в любом процедурном языке есть понятие массива — ограниченной совокупности однотипных величин. Элементы массива располагаются в памяти непрерывным блоком и имеют одно и то же имя (рис. 3.1). Различают элементы по порядковому номеру (индексу).

Пять простых переменных:

a

b

c

d

e

Массив из пяти элементов:

а[1]

а[2]

а[3]

а[4]

а[5]

Рис. 3.1. Простые переменные и массив

3.1. Описание массива

Чтобы описать массив, надо сообщить компилятору:

  • сколько в нем элементов;

  • какого типа эти элементы;

  • как они нумеруются.

Массив не является стандартным типом данных, поэтому он задается в разделе описания типов:

type имя_типа = array [тип_индекса] of тип элемента

Здесь type — признак начала раздела описания типов, array и of — ключевые слова, тип индекса задается в квадратных скобках, например:

type mas = array [1 .. 10] of real:

Здесь описан тип массива из вещественных элементов, которые нумеруются от 1 до 10. После задания типа его можно использовать точно так же, как любой стандартный тип, то есть описывать с его помощью переменные, например:

var a, b : mas;

Компилятор, встретив такой оператор, выделит по 60 байт под каждый из массивов a и b (10 элементов по 6 байт). К элементу массива обращаются, указав его имя, за которым в квадратных скобках записывается порядковый номер элемента:

а[4] b[i]

С элементом массива можно делать все, что допустимо для переменных того же типа.

ЗАМЕЧАНИЕ

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

Если тип массива используется только в одном месте программы, можно задать тип прямо при описании переменных, например:

const n = 100:

var х, у : array [1 .. n] of integer:

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

х := у;

Все остальные действия выполняются с отдельными элементами массива. Автоматический контроль выхода индекса за границы массива не производится, поэтому программист должен либо следить за этим самостоятельно, либо с помощью директивы компилятора {$R+} включить режим проверки границ диапазонов. Ключ {$R+} можно ставить в любом месте программы, предшествующем потенциально опасному участку1.