Многомерные статические массивы
Каждый элемент массива, в свою очередь, может являться массивом. Это позволяет создавать двумерные таблицы (матрицы), трехмерные (представьте себе прямоугольный параллелепипед), а также массивы с большим числом измерений. Зачем может понадобиться четырехмерный массив, который и представить-то сложно? Вот пример: в комнате в точках с координатами x,y,z меряется температура t. Тогда данные о температуре легче всего представить в виде четырехмерного массива [x,y,z,t].
Чаще всего встречаются двумерные массивы. Для их описания в операторе TYPE указывают не одну, а две размерности:
TYPE TA=ARRAY[1..10, 1..5] OF REAL;
В таком массиве всего 10´5=50 элементов, а для обращения к любому из них нужно указывать два индекса: a[i, j].
К сожалению, во многих книгах по программированию усиленно муссируется вопрос про "строки" и "столбцы" двумерного массива. На самом деле никаких строк и столбцов в памяти компьютера не возникает, массив любой размерности хранится линейно. Соответственно и вопрос "а что указывать первым – число строк или столбцов?" – лишен смысла. Вы можете для удобства считать, что первым индексом является номер строки, а вторым – номер столбца, или наоборот – это ни на что не повлияет.
Для обработки двумерных массивов нужны вложенные циклы. Один цикл находится внутри другого и при каждой итерации внешнего цикла внутренний цикл пробегает все заданные значения. Рассмотрим пример заполнения двумерного массива случайными числами и нахождения среднего арифметического его элементов:
CONST MaxX=10, MaxY=20;
TYPE TA=ARRAY[1..MaxX, 1..MaxY] OF REAL;
VAR a:TA; i, j: BYTE; s:REAL;
BEGIN
s:=0;
FOR i:=1 TO MaxX DO
FOR j:=1 TO MaxY DO
BEGIN
a[i,j]:=random;
s:=s+a[i,j]
END;
s:=s/(MaxX*MaxY);
Label1.Caption:=
'Максимальный элемент равен '+FloatToStrF(max,ffFixed,10,4);
Дата добавления: 2015-03-19; просмотров: 814;