Курсовая работа: Работа с двумерными числовыми массивами

25 strNumbers.Destroy;

26 end;

2.3.3 Модуль form

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

Так как задача чётко разделена на задания, оперирующие одними и теми же исходными данными (целочисленным двумерным массивом), было принято решение разделить интерфейс приложения на две части. В верхней части формы отображается матрица исходных данных, которую можно редактировать и размеры которой можно менять. Нижняя часть формы представляет собой набор закладок, каждая из которых соответствует одной из поставленных задач. На каждой закладке содержится описание задания, кнопка «выполнить», а так же элементы, необходимы для отображения результата в рамках этого задания. Некоторые задания состоят в изменении исходной матрицы, результат выполнения таких заданий отображается непосредственно в исходных данных в верхней части формы. Всего существует как минимум три способа выбрать задачу: щёлкнуть мышкой по закладке, выбрать нужный пункт в меню «Задачи», нажать одну из кнопок F1 - F5.

Опишем важные процедуры формы. Процедура ReadMatrix осуществляет чтение исходных данных из таблицы на форме в двумерный массив. Перед началом чтения процедура устанавливает размер массива:

1 {заполнить матрицу в соответствии с содержанием таблицы на форме}

2 procedure TMainForm.ReadMatrix;

3 var rowN, colN: integer;

4 begin

5 SetLength(workMatrix, G_Matrix.RowCount-1, G_Matrix.ColCount-1);

6 for rowN:= 0 to G_Matrix.RowCount-2 do

7 for colN:= 0 to G_Matrix.ColCount-2 do

8 workMatrix[rowN, colN]:= StrToIntDef(G_Matrix.Cells[colN+1, rowN+1], 0);

9 end;

Процедура writeMatrix осуществляет обратную операцию, она заполняет поля таблицы в соответствии с массивом. Кроме этого она меняет значения числа строк и столбцов в соответствии с размерами массива:

1 {заполнить таблицу на форме в соответствии с содержанием матрицы}

2 procedure TMainForm.writeMatrix;

3 var rowN, colN: integer;

4 begin

5 G_Matrix.Cells[1, 1]:= '';//если матрица пуста

6 E_RowsN.Text:= IntToStr(high(workMatrix) + 1);

7 if(E_RowsN.Text <> '0') then

8 E_ColsN.Text:= IntToStr(high(workMatrix[low(workMatrix)]) + 1)

9 else E_ColsN.Text:= '0';

10 B_SetDimmsClick(self);

11 //заполним таблицу

12 for rowN:= low(workMatrix) to high(workMatrix) do

13 for colN:= low(workMatrix[rowN]) to high(workMatrix[rowN]) do

14 G_Matrix.Cells[colN+1, rowN+1]:= IntToStr(workMatrix[rowN, colN]);

К-во Просмотров: 525
Бесплатно скачать Курсовая работа: Работа с двумерными числовыми массивами