Массивы в Pascal, многомерные массивы, примеры использования


Статические массивы

Дискриминант компонента массива — это индекс, записываемый в скобках []. Например, обозначения Х[1], Х[2], …, Х [n] представляют компоненты одномерного массива X. Индекс имеет порядковый тип, указываемый в описании массива, и является в общем случае выражением. Тип «статический одномерный массив» описывают следующим образом:

Array [Тип индекса] of Тип компонентов массива;

как правило, Тип индекса — это диапазон его значений. Тип-массив можно обозначить именем и записать объявление типа с этим именем, но массив еще не будет создан. Последнее произойдет, когда опишем переменную данного типа, т.е. потратим память. Изучите следующие два варианта описания массива X с п элементами типа double. Возьмем n = 50:
Var X: Array [1…n] of double; Type mas = Array [1…n] of double; {1…n — это ТИП индекса) Var X: mas;
Границы значений индекса могут быть любыми, например -5..20. В случаях, когда необходимая мощность массива точно не известна, можно задать ее с запасом. Помните, выход индекса за пределы массива — катастрофичен!

Ввод строк в массив

For i: = 1 to n do
X[i]: = StrToInt (StringGrid1.cells [i,1])

Вывод простых значений компонентов массива

Для вывода массива в другие визуальные компоненты следует сформировать из его значений и разделителей строку и вывести ее, например:

S: = «»; for i: = 1 to n do
S: = S + lntToStr(x[i]) + ‘ ‘;
Edit1.text:= S;

Если x[i] логическое значение, используют функцию BoolToStr или (в ранних версиях Delphi) сначала приводят к типу integer и выводят целое:

Edit1.text:=BoolToStr (integer (x[i]));// Значение true выводится как 1, false — как 0.

Двумерные массивы

Элемент массива может быть массивом: const n = 3; m = 3;

Type mas array [1 … n] of integer; mas2 array [1 … m] of mas;

Более компактно это можно записать так:

type mas2 = array [1 .. m, 1 .. n] of integer;

Здесь описана матрица из m строк и n столбцов. Обе размерности массива должны быть константами или константными выражениями. Имя типа указывается при описании переменных: var a, b: mas2:
В памяти двумерный массив располагается по строкам:
a11 a12 a13
a21 a22 a23
a31 a32 аЗЗ
При просмотре массива от начала в первую очередь изменяется правый индекс (номер столбца). К элементу двумерного массива обращаются, указывая номер строки и номер столбца, на пересечении которых он расположен, например: а[1, 3] b[i, j] b[j, 1].
Компилятор воспринимает как номер строки первый индекс, как бы он ни был обозначен в программе.

При инициализации двумерных массивов каждая строка заключается в дополнительную пару круглых скобок:

const a: mas2 = ((3, 1, 0), (9, 1, 3), (5, 7, 0));

С массивами в целом определено только присваивание массивов одного типа (например, b := a). Все остальные действия выполняются с отдельными элементами. Например, ввод с клавиатуры выполняется так:

for i:= 1 to m do
For j: = 1 to n do read (a [i, j]):

Для приведенного здесь порядка следования циклов элементы массива должны вводиться по строкам.


Комментарии запрещены.




Статистика