Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Delphi_Ч2.doc
Скачиваний:
15
Добавлен:
02.11.2018
Размер:
1.7 Mб
Скачать

Краткие теоретические сведения

Матрица – это тип данных, которому соответствует таблица. При работе с матрицами оперируют понятиями имя матрицы, столбец, номер столбца, строка, номер строки, элемент, размер матрицы, например 3 х 4.

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

С понятием индекса мы уже встречались в предыдущей работе, где с помощью индекса идентифицировались элементы массива.

В матрице, для идентификации элемента, требуется два индекса. Это как бы координаты элемента в матрице. При обращении к элементу его индексы указывают после имени матрицы в квадратных скобках, разделяя их запятой. Например, если имя матрицы matrix, то matrix[2,3] – это элемент матрицы с координатами 2 и 3. Какой из индексов определяет строку, а какой столбец - это решает программист. Мы будем далее считать, что первый индекс задает номер строки, а второй – номер столбца, и начинать нумерацию будем с 1. Так принято у математиков. Но у компонента StringGrid, который будет часто использоваться в этой лабораторной работе все наоборот, первый индекс – это номер столбца, второй индекс – это номер строки, и нумерация начинается с 0. Это пример плюрализма мнений. Постарайтесь не запутаться.

В общем случае, в качестве индексов матрицы могут использоваться данные любого из порядковых типов, например, столбцы или строки можно нумеровать не числами, а символами, в частности буквами. Но в данной лабораторной работе мы будем, в основном, использовать числовую нумерацию.

      1. Описание матриц

Матрицу логичнее всего описать как массив массивов. Во фрагменте подпрограммы, представленном ниже в качестве примера, описан тип TMatrix4x3, представляющий таблицы целых чисел. Эти таблицы имеют по 4 столбца и 3 строки. Индексы столбцов и строк начинаются с 1. В примере описана и переменная myMatrix типа TMatrix4x3.

type

TMatrix4x3 = Array[1..4] of Array[1..3] of Integrer;

var

myMatrix:TMatrix4x3;

Наряду с приведенным выше заданием типа для матрицы возможно и более короткое описание, пример которого приведен ниже.

type

TMatrix4x3 = Array[0..3, 0..2] of Integrer;

var

myMatrix:TMatrix4x3;

Во всех рассмотренных выше примерах матрицы определялись как статические. Это означает, что размер матрицы фиксируется на этапе программирования и во время работы приложения меняться не может.

В тех случаях, когда заранее неизвестно, какого размера будет матрица, можно объявить ее размер с запасом, а в процедуры обработки передавать не только ссылку на матрицу, но и реальное количество строк и столбцов.

В учебных задачах, которые будут рассмотрены далее, будет предполагаться, что используется матрица размером 10х10, состоящая из целых чисел. Соответствующий тип назовем TMatrixInt10x10. Описание соответствующего типа будет выглядеть так.

type

TMatrixInt10x10= Array[1..10,1..10] of Integrer;