Массивом называется упорядоченная индексированная совокупность однотипных элементов, имеющих общее имя. Элементами массива могут быть данные различных типов, включая структурированные. Каждый элемент массива однозначно определяется именем массива и индексом (номером этого элемента в массиве) или индексами, если массив многомерный. Для обращения к отдельному элементу массивауказывается имя этого массива и номер элемента, заключенный в квадратные скобки, например, а[4,35].
Количество индексных позиций определяет размерность массива (одномерный, двумерный и т. д).
Различают массивы статические и динамические. Статический массив представляет собой массив, границы индексов и размеры которого задаются при объявлении, т. е. они известны до компиляции программы.
Формат описания статического массива:
Array [Тип индексов] of <Тип элементов>;
Пример.Объявление статических массивов
Type tm = Array[l .. 10, 1 .. 100] of real;
Var arrl,arr2: tm;
arr3: Array[20 .. 100] of char;
arr4: Array['a’ .. 'z'] of integer;
Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов, а размер массива определяется при выполнении программы. В Delphi использование динамических массивов стало возможным, начиная с версии 4
Формат описания типа динамического массива:
Array of <Тип элементов>;
Задание размера динамического массива во время выполнения программы производится процедурой SetLength (S, L), которая для динамического массива s устанавливает новый размер, равный L – целое число. Выполнять операции с динамическим массивом и его элементами можно только после задания размеров этого массива.
Для работы с массивами используются следующие функции:
Length( ) – определение длинны массива;
Low( ) – минимальный номер элементов;
High( ) – максимальный номер элементов.
Нумерация элементов динамического массива начинается с нуля, поэтому функция low () для него всегда возвращает значение ноль.
A: array of array of Integer: // Двумерный динамический массив
begin
// Устанавливаем длину первого измерения (количество столбцов):
SetLength(A,3);
// Задаем длину каждого столбца:
SetLength(A[0],3):
SetLength(A[l],3);
SetLength(A[2],3):
end;
Действия над массивом обычно выполняются поэлементно, в том числе операции ввода и вывода. Поэлементная обработка массивов производится, как правило, с использованием циклов.
3.Множества
Множество представляет собой совокупность элементов, выбранных из предопределенного набора значений. Все элементы множества имеют порядковый тип, количество элементов множества не может превышать 256.
Формат описания множественного типа:
Set of <Тип элементов>;
Значения множественного типа заключаются в квадратные скобки. Пустое множество обозначается "[]".
Операции, допустимые над множествами:
Операция
Наименование
Тип результата
Результат
+
Объединение множеств
Множество
Неповторяющиеся элементы первого и второго множеств
-
Разность множеств
Множество
Элементы первого множества, не принадлежащие второму
*
Пересечение множеств
Множество
Содержит элементы, общие для обоих множеств
=
Эквивалентность
boolean
True, если множества эквивалентны
<>
Неэквивалентность
boolean
True, если множества не эквивалентны
<=
Проверка вхождения
boolean
True, если первое множество входит во второе
>=
Проверка включения
boolean
True, если первое множество включает второе
Также имеется операция in(x, s) – определение принадлежность выражения порядкового типа (х) множеству (s). Результат операции будет типа Boolean и иметь значение True, в случае соблюдения принадлежности значения множеству.
Пример. Использование множеств.
type
dCh = set of '0' ..'9';
d = set of 0..9;
var Sl,s2,s3 : dCh;
s4,s5,s6 : d;
begin
s1 : = ['1’, '2', '3'];
s2 : = ['3’, '2', '1'];
S3 : = ['2', '3'];
s4 : = [0..3, 6]:
S5 : = [4, 5];
s6 : = [3..9];
end:
В этом примере множества S1 и S2 эквивалентны, а множество S3 включено в множество S2 , но не эквивалентно ему.
В Delphi множественные типы используются, например, для описания типа кнопок или типа параметров фильтра.