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

7.1.15Описание матриц

Матрицу логичнее всего описать как массив массивов. Во фрагменте подпрограммы, представленном ниже в качестве примера, описан тип 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;

7.1.16Использование компонента StringGrid для ввода-вывода матриц

Значок этого компонента находится на вкладке Additional панели инструментов Delphi. Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. При появлении на форме этот компонент первоначально имеет вид, показанный на рисунке 9.1.

Рисунок 9.1. Исходный вид компонента StringGrid

Фактически, компонент представляет собой матрицу, у которой строки и столбцы нумеруются с 0.

Получить доступ к конкретной ячейке таблицы StringGrid можно, используя свойство Cells[Col, Row], где Col - номер колонки, Row - номер строки. Это свойство возвращает текст, записанный в ячейке.

Некоторые свойства компонента представлены в таблице 9.1.

Таблица 9.1 - Свойства компонента StringGrid

Свойство

Что определяет

Name

Имя компонента

RowCount

Количество строк таблицы

ColCount

Количество колонок

FixedCols

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

Ячейки этих колонок имеют серый цвет.

FixedRows

Количество зафиксированных строк в верхней части таблицы.

DefaultRowHeight

Высота строк таблицы

DefaultColWidth

Ширина колонок

Options.GoEditing

True – редактирование ячеек разрешено, False – запрещено

Компонент идеально подходил бы для визуального представления матрицы, если бы мы определяли матрицу так, как StringGrid. Но так как мы нумеруем строки и столбцы с 1, а не с 0 и, кроме того, вначале задаем индекс строки, а затем столбца, то возникает небольшая путаница. Об этом нельзя забывать.