Как грамотно сформировать матрицу в Delphi?
В Delphi матрицу удобно формировать с помощью динамических массивов или классов.
1. Динамический массив:
var
Matrix: array of array of Integer;
i, j: Integer;
begin
SetLength(Matrix, 3, 3); // 3x3 матрица
for i := 0 to 2 do
for j := 0 to 2 do
Matrix[i, j] := i + j; // Заполнение матрицы
end;
2. Класс для матрицы:
type
TMatrix = class
private
FMatrix: array of array of Integer;
FRows, FColumns: Integer;
public
constructor Create(const Rows, Columns: Integer);
procedure SetElement(const Row, Column: Integer; Value: Integer);
function GetElement(const Row, Column: Integer): Integer;
property Matrix[Row, Column: Integer]: Integer read GetElement write SetElement;
end;
constructor TMatrix.Create(const Rows, Columns: Integer);
begin
FRows := Rows;
FColumns := Columns;
SetLength(FMatrix, Rows);
for var i := 0 to Rows - 1 do
SetLength(FMatrix[i], Columns);
end;
procedure TMatrix.SetElement(const Row, Column: Integer; Value: Integer);
begin
FMatrix[Row][Column] := Value;
end;
function TMatrix.GetElement(const Row, Column: Integer): Integer;
begin
Result := FMatrix[Row][Column];
end;
Пример использования:
var
Matrix: TMatrix;
begin
Matrix := TMatrix.Create(3, 3);
Matrix[1, 1] := 10; // Запись элемента
ShowMessage(IntToStr(Matrix[1, 1])); // Чтение элемента
end;
Выбирайте подход, исходя из требований задачи и удобства использования.
Похожие вопросы