
07.05.2010, 20:50
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Да чего ж там непонятно-то???
Надо по диагонали матрицы вывести максимальные элементы соотв. строки.
Код:
type
TMatrix = Array [1..3,1..3] Of Integer;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
Matrix : TMatrix;
procedure MatrixOut(AMatrix : TMatrix);
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
I, J : Integer;
begin
For I := 1 To 3 Do
For J := 1 To 3 Do
Matrix[I,J] := Random(90) + 10;
end;
procedure TForm1.MatrixOut(AMatrix: TMatrix);
var
I, J : Integer;
begin
For I := 1 To 3 Do
For J := 1 To 3 Do
StringGrid1.Cells[J-1,I-1] := IntToStr(AMatrix[I,J]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MatrixOut(Matrix);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
_Matrix : TMatrix;
I, J : Integer;
_MaxIdx : Integer;
_Swap : Integer;
begin
For I := 1 To 3 Do
For J := 1 To 3 Do
_Matrix[I,J] := Matrix[I,J];
For I := 1 To 3 Do
Begin
_MaxIdx := 1;
For J := 2 To 3 Do
If _Matrix[I,_MaxIdx] < _Matrix[I,J]
Then _MaxIdx := J;
If _MaxIdx <> I Then
Begin
_Swap := _Matrix[I,I];
_Matrix[I,I] := _Matrix[I,_MaxIdx];
_Matrix[I,_MaxIdx] := _Swap;
end;
End;
MatrixOut(_Matrix);
end;
Все, весь код.
|