Обработка двухмерных массивов в среде Delphi
.pdfЭтап 4. Создать обработчики событий.
4.1 В окне кода программы для кнопки Расчет необходимо выполнить следующие действия (рисунок 6):
• после строки
procedure TForm1.Button1Click(Sender: TObject);
поместить раздел описания переменных:
Var j, i, m, n : integer;
A : array[1..10,1..10] of real; Sum : real;
• между операторными скобками begin
end;
поместить фрагмент кода программы:
m := StrToInt(Edit1.Text);
n := StrToInt(Edit2.Text); StringGrid1.ColCount := m; StringGrid1.RowCount := n; for j := 1 to m do
begin
for i := 1 to n do begin
A[j,i] := StrToFloat(StringGrid1.Cells[j-1,i-1]); end;
end; Sum:=0;
for j := 1 to m do begin
for i := 1 to n do begin
if A[j,i] > 0 then Sum := Sum + A[j,i]; end;
end;
Edit3.Text := FloatToStrF(Sum,ffFixed,6,1);
4.2 В окне кода программы для кнопки Выход необходимо выполнить следующие действия:
11
между операторными скобками begin
end;
поместить строку
Close
Рисунок 6 – Обработчик событий для кнопки Расчет (Вычисление суммы положительных элементов матрицы)
Этап 5. Запустить программу на выполнение. Ввести исходные данные:
−количество столбцов матрицы;
−количество рядов матрицы;
−элементы исходной матрицы, указывая нужную ячейку таблицы с помощью мыши.
Для дальнейшего выполнения программы и получения результатов необходимо щелкнуть по кнопке «Расчет» (рисунок 7).
Для выхода из программы необходимо щелкнуть по кнопке «Выход».
Для выполнения расчетов с другими исходными данными необходимо вновь запустить программу на выполнение.
12
Рисунок 7 – Пример выполнения программы (Вычисление суммы положительных элементов матрицы)
ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА ДВУМЕРНОГО МАССИВА
Задача 2. Для заданной матрицы А осуществить перестановку первого и последнего элемента массива.
Этап 1. Запустить среду Delphi.
Этап 2. Выполнить конструирование формы.
В окне формы Form1 необходимо разместить следующие компоненты страницы Standard (рисунок 8):
•панели группирования Groupbox1, Groupbox2, Groupbox3;
•на панели Groupbox1: метки Label1, Label2, строки Edit1,
Edit2;
•кнопки Button1, Button2.
Для отображения исходной матрицы на панели Groupbox2
необходимо разместить компонент StringGrid1 |
|
, расположенный |
на странице Additional.
Для отображения результирующей матрицы на панели
Groupbox3 необходимо разместить компонент StringGrid2 , расположенный на странице Additional (рисунок 8).
13
Рисунок 8 – Конструирование формы (Перестановка первого и последнего элементов матрицы)
Этап 3. Изменить свойства компонентов.
В окне Инспектора объектов необходимо изменить свойства следующих компонентов (рисунок 9):
•для формы Form1 в свойстве Caption изменить надпись Form1 на «Перестановка первого и последнего элементов матрицы»;
•для панели GroupBox1 в свойстве Caption изменить надпись GroupBox1 на «Размеры исходной матрицы»;
•для метки Label1 в свойстве Caption изменить надпись Label1 на «Количество столбцов:»;
•для строки Edit1 в свойстве Text удалить текст Edit1;
•для метки Label2 в свойстве Caption изменить надпись Label2 на «Количество рядов:»;
•для строки Edit2 в свойстве Text удалить текст Edit2;
•для панели GroupBox2 в свойстве Caption изменить надпись GroupBox2 на «Исходная матрица»;
•для панели GroupBox3 в свойстве Caption изменить надпись GroupBox3 на «Результирующая матрица»;
•для кнопки Button1 в свойстве Caption изменить надпись Button1 на «Расчет»;
•для кнопки Button2 в свойстве Caption изменить надпись
Button2 на «Выход».
14
Рисунок 9 – Изменение свойств компонентов (Перестановка первого и последнего элементов матрицы)
Для компонента StringGrid1 в Инспекторе Объектов установить:
•значения свойств FixedCols и FixedRows равными 0, так как фиксированная зона не используется (рисунок 3);
•значения свойств ColCount (количество столбцов) и RowCount (количество рядов) равными 10, так как заданная матрица будет иметь максимальные размеры 10×10 (рисунок 3).
Для компонентов StringGrid1 в окне Инспектора объектов для изменения свойства Options необходимо выполнить следующие действия:
−щелкнуть по кнопке , расположенной слева от свойства
Options;
−в появившемся окне установить значение goEditing равное True, (по умолчанию значение goEditing равно False) (рисунок 4);
−щелкнуть по кнопке , расположенной слева от свойства
Options.
Аналогично в Инспекторе Объектов для компонента
StringGrid2 установить значения свойств FixedCols и FixedRows
равными 0, значения свойств ColCount и RowCount равными 10, для свойства Options - значение goEditing равное True.
15
В результате изменения свойств компонентов, форма будет иметь вид представленный на рисунке 10.
Рисунок 10 – Вид формы после изменения свойств компонентов (Перестановка первого и последнего элементов матрицы)
Этап 4. Создать обработчики событий.
4.1 В окне кода программы для кнопки Расчет необходимо выполнить следующие действия (рисунок 11):
• после строки
procedure TForm1.Button1Click(Sender: TObject);
поместить раздел описания переменных:
Var j, i, m, n : integer;
A : array[1..10,1..10] of real; RabA : real;
• между операторными скобками begin
end;
поместить фрагмент кода программы:
m := StrToInt(Edit1.Text);
n := StrToInt(Edit2.Text);
16
StringGrid1.ColCount := m; StringGrid1.RowCount := n; StringGrid2.ColCount := m; StringGrid2.RowCount := n; for j := 1 to m do
begin
for i := 1 to n do begin
A[j,i] := StrToFloat(StringGrid1.Cells[j-1,i-1]); end;
end;
RabA := A[1,1]; A[1,1] := A[m,n]; A[m,n] := RabA; for j := 1 to m do
begin
for i := 1 to n do begin
StringGrid2.Cells[j-1,i-1] := FloatToStr(A[j,i]); end;
end;
Рисунок 11 – Обработчик событий для кнопки Расчет (Перестановка первого и последнего элементов матрицы)
17
4.2 В окне кода программы для кнопки Выход необходимо выполнить следующие действия:
между операторными скобками begin
end;
поместить строку
Close
Этап 5. Запустить программу на выполнение. Ввести исходные данные:
−количество столбцов матрицы;
−количество рядов матрицы;
−элементы исходной матрицы, указывая нужную ячейку таблицы с помощью мыши.
Для дальнейшего выполнения программы и получения результатов необходимо щелкнуть по кнопке «Расчет» (рисунок
12).
Для выхода из программы необходимо щелкнуть по кнопке «Выход».
Для выполнения расчетов с другими исходными данными необходимо вновь запустить программу на выполнение.
Рисунок 12 – Пример выполнения программы (Перестановка первого и последнего элементов матрицы)
18
ОБРАБОТКА ДВУМЕРНОГО МАССИВА ПО СТОЛБЦАМ
Задача 3. Для заданной матрицы А вычислить сумму положительных элементов каждого столбца матрицы.
Этап 1. Запустить среду Delphi.
Этап 2. Выполнить конструирование формы.
В окне формы Form1 необходимо разместить следующие компоненты страницы Standard (рисунок 13):
•панели группирования Groupbox1, Groupbox2, Groupbox3;
•на панели Groupbox1: метки Label1, Label2, строки Edit1,
Edit2;
•кнопки Button1, Button2.
Для отображения исходной матрицы на панели Groupbox2
необходимо разместить компонент StringGrid1 , расположенный на странице Additional.
Для отображения результирующей строки на панели Groupbox3
необходимо разместить компонент StringGrid2 , расположенный на странице Additional (рисунок 13).
Рисунок 13 – Конструирование формы (Вычисление суммы положительных элементов матрицы по столбцам)
Этап 3. Изменить свойства компонентов.
В окне Инспектора объектов необходимо изменить свойства следующих компонентов (рисунок 14):
19
•для формы Form1 в свойстве Caption изменить надпись Form1 на «Вычисление суммы положительных элементов матрицы по столбцам»;
•для панели GroupBox1 в свойстве Caption изменить надпись GroupBox1 на «Размеры исходной матрицы»;
•для метки Label1 в свойстве Caption изменить надпись Label1 на «Количество столбцов:»;
•для строки Edit1 в свойстве Text удалить текст Edit1;
•для метки Label2 в свойстве Caption изменить надпись Label2 на «Количество рядов:»;
•для строки Edit2 в свойстве Text удалить текст Edit2;
•для панели GroupBox2 в свойстве Caption изменить надпись GroupBox2 на «Исходная матрица»;
•для панели GroupBox3 в свойстве Caption изменить надпись GroupBox3 на «Сумма положительных элементов матрицы по столбцам»;
•для кнопки Button1 в свойстве Caption изменить надпись Button1 на «Расчет»;
•для кнопки Button2 в свойстве Caption изменить надпись
Button2 на «Выход».
Рисунок 14 – Изменение свойств компонентов (Вычисление суммы положительных элементов матрицы по столбцам)
Для компонента StringGrid1 в Инспекторе Объектов установить:
20