В поле memo вводим матрицу 5х5. В другом поле memo должна быть выведена таже матрица, но у нее по главной диагонали должны стоять суммы всех членов в данной строке и столбце, т.е. элемент с индексом (1;1) должен быть суммой всех чисел в 1 столбце и 1 строке и т.д.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Matr: array [1 .. 5, 1 .. 5] of integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i, j: integer;
s: string;
begin
s := '';
Randomize;
for i := 1 to 5 do
begin
for j := 1 to 5 do
begin
Matr[i, j] := random(10);
s := s + IntToStr(Matr[i, j]) + ' ';
end;
Memo1.Lines.Add(s);
Memo2.Lines.Add(s);
s := '';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SumX, SumY, i, j: integer;
MasSum: array [1 .. 5] of integer;
s: string;
begin
for i := 1 to 5 do
MasSum[i] := 0;
s := '';
SumX := 0;
SumY := 0;
Memo1.Clear;
Memo2.Clear;
for i := 1 to 5 do
begin
for j := 1 to 5 do
begin
SumY := SumY + Matr[i, j];
end;
MasSum[i] := MasSum[i] + SumY;
SumY := 0;
end;
for j := 1 to 5 do
begin
for i := 1 to 5 do
begin
SumX := SumX + Matr[i, j];
end;
MasSum[j] := MasSum[j] + SumX;
SumX := 0;
end;
for i := 1 to 5 do
begin
Matr[i, i] := MasSum[i];
end;
for i := 1 to 5 do
begin
for j := 1 to 5 do
s := s + IntToStr(Matr[i, j]) + ' ';
Memo1.Lines.Add(s);
Memo2.Lines.Add(s);
s := '';
end;
end;
end.