var
Form1: TForm1;
a: array of array of real;
n: integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//зададим некоторые параметры таблицы
with StringGrid1 do
begin
fixedCols:=0;
fixedRows:=0;
defaultColwidth:=35;
scrollBars:=ssBoth
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,code:integer;
begin
randomize;
//проверим ввод размеров
val(Edit1.Text,n,code);
if (code<>0)or(n<2)then
begin
ShowMessage('Неверно введен размер матрицы');
Edit1.Clear;
Edit1.SetFocus;
exit
end;
StringGrid1.RowCount:=n;
StringGrid1.ColCount:=n;
Setlength(a,n,n);
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
a[i,j]:=10*random;
StringGrid1.Cells[j,i]:=FloatToStrF(a[i,j],ffFixed,6,2)
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,ns,ns1,ns2,code:integer;
s,mx:real;
begin
//проверим ввод номеров столбца и строк
val(Edit2.Text,ns,code);
if (code<>0)or not(ns in [1..n])then
begin
ShowMessage('Неверно введен номер столбца');
Edit2.Clear;
Edit2.SetFocus;
exit
end;
val(Edit3.Text,ns1,code);
if (code<>0)or not(ns1 in [1..n])then
begin
ShowMessage('Неверно введен номер первой строки');
Edit3.Clear;
Edit3.SetFocus;
exit
end;
val(Edit4.Text,ns2,code);
if (code<>0)or not(ns2 in [1..n])or(ns2=ns1)then
begin
ShowMessage('Неверно введен номер второй строки');
Edit4.Clear;
Edit4.SetFocus;
exit
end;
s:=0;
for i:=0 to n-1 do
s:=s+a[i,ns-1];
mx:=a[ns1-1,0];
for i:=0 to n-1 do
begin
if a[ns1-1,i]>mx then mx:=a[ns1-1,i];
if a[ns2-1,i]>mx then mx:=a[ns2-1,i];
end;
Memo1.Clear;
Memo1.Lines.Add('Сумма в столбце '+inttostr(ns)+'='+
FloatToStrF(s,ffFixed,6,2));
Memo1.Lines.Add('Максимальный элемент в строках '+
inttostr(ns1)+' и '+inttostr(ns2)+'='+
FloatToStrF(mx,ffFixed,6,2));
end;
Можливо кому знадобиться