Массивы в Delphi, или Как разложить всё по полочкам

Раз ступенька, два ступенька — будет лесенка. Раз словечко, два словечко - будет песенка.

Как раз песенка


...В чешуе, как жар горя, Тридцать три богатыря, Все красавцы удалые, Великаны молодые. Все равны, как на подбор, С ними дядька Черномор.

Пушкин. Сказка о царе Салтане


Как Однажды Жак-Звонарь Городской Сломал Фонарь.

Мнемонический стишок про цвета радуги

Массив - это набор объектов (элементов) одного и того же типа, каждый из которых имеет свой номер в этом наборе (индекс).

Массивы относятся к структурным типам данных - как множества, записи, классы, файлы и строки.

 

Объявление переменной-массива имеет вид:

var a: array[начальный индекс..конечный индекс ] of тип;

или более определённо:

var a: array[1..10] of integer;

Как видите, чтобы объявить массив, используется зарезервированное сло­во array, после которого в квадратных скобках указывается диапазон ин­дексов, затем слово ofи тип элементов массива. Объявление заканчивает­ся точкой с запятой.

 

Индекс определяет относительную позицию элемента в массиве.

 

Начальный и конечный индексы задаются при объявлении массива и по­том не изменяются. Если в языке Cначальный индекс всех массивов ра­вен нулю (что часто приводит к ошибкам), то Delhiболее либерален: вы сами можете выбирать диапазон индексов, как вам угодно (но конечный индекс должен быть не меньше конечного!).

 

Например, переменную-массив а можно объявить и так:


var a: array[0..9] of integer;
var a: array[-1..8] of integer;
var a: array[2001..2010] of integer;

Сам массив от этого не изменится - каждый из этих массивов содержит по 10 целых чисел, - но вы должны помнить, что самый первый элемент мас­сива имеет начальный индекс, а последний - конечный.

 

Тип массива (а, значит, и его элементов) может быть любым:

char, real, in­teger, string, array,...

К каждому элементу массива можно обратиться по его индексу. Для этого нужно указать имя массива и индекс нужного элемента в квадратных скобках:

a[1] - это переменная типа integer(в общем      случае - того типа, который указан при объявлении массива); она имеет в массиве индекс 1 (в нашем

примере это первый элемент массива, в общем случае - в зависимости от заданного диапазона).

 

Индекс можно задавать и выражением, которое имеет тот же тип, что и индекс (обычно диапазон):

a[2 + 2*3] - элемент массива с индексом 8.
 

С элементом массива можно обращаться точно так же, как и с переменной того же типа:

a[1]:= 1; a[2]:= a[1] + 1; a[3]:= a[1] * a[2];

Кроме непосредственного объявления переменной-массива, можно снача­ла объявить тип со структурой массива, а уже потом - одну или больше переменных этого типа:

type mas= array[1..10] of integer
var a1,a2,a3: mas;

Объявление переменной типа массива можно совмещать с присвоением ей значений. Они перечисляются через запятую в круглых скобках:

var a: array[1..10] of integer = (1, 1, 2, 3, 5, 8, 13, 21, 34, 55);

Вот так просто мы заполнили массив числами Фибоначчи.

 

В памяти компьютера одномерный массив занимает последовательные ячейки:

Массивы в Delphi

Каждый элемент массива занимает столько ячеек памяти, сколько требу­ется для хранения значения такого типа. Например, для целого числа типа Integerотводится 4 байта, а для символа достаточно и одного.

 

 

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


Type
  отряд= array[1..33] of богатырь; колода= array[1..52] of карта; словарь= array[1..30000] of string; класс= array[1..30] of ученик;

 

Хорошим примером одномерного массива могут послужить квар­тиры в доме, бирки в раздевалке, бочонки русского лото или шары в спортлото - они уже пронумерованы, то есть даже номера эле­ментов (индексов) проставлены!

 

Теперь нам не нужно помнить имя каждого ученика - мы можем обратить к нему «по индексу», или номеру под которым он записан в журнале (квартирам или биркам вообще никто собственного имени не даёт). Вместо Шурика можно вызвать ученика класс[13], если Шурику опять не повезло и он 13-ый в классном журнале.

dle

Помоги проекту! Расскажи друзьям об этом сайте: