|
||||||||
|
|
Основы Delphi: 5. Массивы Массив - упорядоченный набор данных одного типа, расположенных в памяти последовательно. К элементам массива обращаются по значению-идентификатору. Самый простой вид - обращение по номеру элемента. Для этого массиву задается диапазон индексов. Различают статические и динамические массивы. Первые определяются на стадии компиляции и их структура никогда не меняется. У динамических массивов можно менять размер во время выполнения программы, поэтому память для данных выделяется динамически. В Delphi статические массивы задаются следующим образом: var
<идентификатор>: array [ <диапазон значений перечисляемого типа> ] of <тип элемента> ; <идентификатор>: array [ <перечисляемый тип> ] of <тип элемента> ; Если используется диапазон значение, то первый элемент массива ассоциируется с первый значением диапазона, второй элемент - со вторым значением диапазона и т.д. Если используется перечисляемый тип, то первый элемент массивы ассоциируется с наименьшим значением для данного типа, второй - со следующим и т.д. Размер массива равен количеству различных значений диапазона или перечисляемого типа. Например: var
A: array[byte] of byte; B: array[7..10] of double; C: array['a'..'z'] of char; D: array[2..6] of array[5..9] of integer; type
Color = (black,red,green,blue,white); var Palette: array[Color] of byte; RGB: array[red..blue] of byte; Чтобы получить элемент массива, необходимо использовать следующую структуру: <имя переменной массива> [ <индекс> ]
Значение индекса должно входить в диапазон значений, либо иметь приводимый к перечисляемому типу тип. Например: x := A[0];
y := B[i+7]; C['k'] := z; D[2][9] := m; RGB[green] := 255; Если во время выполнения программы произойдет запись в массив по индексу, выходящему за пределы диапазона, то результат может оказаться непредсказуемым, скорее всего могут быть испорчены значения переменных, расположенных в памяти рядом с элементами массива. В Delphi существует возможность использовать многомерные массивы. Можно задать, например, трехмерный массив как: var
A: array[1..10] of array[1..10] of array[1..10] of integer; Однако, имеется возможность использовать более короткую запись: var
A: array[1..10,1..10,1..10] of integer; Аналогично, для работы с элементами массива можно использовать вместо x := A[5][8][3];
конструкцию x := A[5,8,3];
|
||||||
|