- •Тема 6. Обработка одномерных массивов
- •Массив X(4)
- •7.1.Ввод, вывод и обработка массива
- •7.2. Поиск максимального и минимального элементов массива
- •7.3.Объявление одномерного массива
- •7.4. Доступ к элементу массива
- •Локальные и глобальные переменные
- •Инициализация глобальных массивов
- •7.7. Ввод и вывод массивов
7.3.Объявление одномерного массива
Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит следующим образом:
имя:array[нижний_индекс..верхний_индекс] of тип
где:
имя – имя массива;
array – служебное слово языка Object Pascal, обозначающее «массив»;
нижний_индекс и верхний_индекс – целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;
тип – тип элементов массива.
Примеры объявления массивов:
temper:array[1..31] of real; // массив, содержащий максимум 31 вещественное число
koef:array[0..2] of integer; // массив, содержащий максимум 3 целых числа
name:array[1..30] of string[25]; // массив, содержащий максимум 30 строк длины £25.
При объявлении массива удобно использовать именованные константы и типы. Именованная константа объявляется в разделе объявления констант, который обычно располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const. После констант объявляют типы (служебное слово type).
Например, следующие три объявления описывают один и тот же массив А, состоящий не более, чем из 20 целых чисел:
const n_max=20;
type vect=array[1..n_max] of integer;
var A:vect;
type vect=array[1..20] of integer;
var A:vect;
A: array[1..20] of integer;
7.4. Доступ к элементу массива
Для того чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать константу или выражение целого типа, например:
name[l] := 'Шахтёр';
d := koef[1]*koef[l]-4*koef[2]*koef[1];
ShowMessage(name[n+1]);
temper[i] := StrToFloat(Editl.text) ;
Локальные и глобальные переменные
Если переменная (массив,…) объявлена в процедуре обработки события, то она называется локальной. Локальная переменная известна только внутри данной процедуры. В момент запуска этой процедуры для переменной выделяется память, а в момент завершения работы процедуры память освобождается, и переменная теряет своё значение.
Если переменная объявлена внутри раздела Implementation (т.е. после слова Implementation), то она называется глобальной переменной данного модуля. Такая переменная известна во всех процедурах данного модуля. Память под эту переменную выделяется в момент запуска модуля и не освобождается до завершения модуля. Если локальная и глобальная переменные имеют одинаковые имена, то более сильным является локальное объявление.
Инициализация глобальных массивов
При объявлении глобального массива (в разделе Implementation) одновременно с объявлением массива можно выполнить его инициализацию, т. е. присвоить начальные значения элементам массива. Например:
Implementation
a: array[10] of integer = (0,0,0,0,0,0,0,0,0,0);
Team: array[1..4] of String[10]=
('Шахтёр','Динамо','Спартак', 'Зенит');
Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщение об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).
При попытке инициализировать локальный массив, компилятор выводит сообщение об ошибке: Cannot initialize local variables (локальная переменная не может быть инициализирована).
