const
M = 10;
N = 15;
MAXRND = 100; // Двойное назначение:
// 1. Как диапазон для Random;
// 2. Значение гарантированно больше любого элемента
var
Matrix: array [1..M,1..N] of Real;
procedure TMainForm.Button2Click(Sender: TObject);
var
i,j: Integer;
Min,Summ: Real;
s,s1: string;
begin
s1 := StringOfChar('*', M*4); // это для красоты :-)
s := s1 + Format(' Матрица %dx%d ',[M,N]) + s1 + #13;
{ заполнение матрицы }
Randomize;
for i := 1 to M do
begin
for j := 1 to N do
begin
{ расчет элемента }
Matrix[i,j] := (Random(MAXRND)+1) / (Random(MAXRND)+1);
{ вывод куда нибудь... например в TStringGrid }
s := s + Format('%6.2f'#9, [Matrix[i,j]]);
end;
s := s + #13;
end;
s1 := StringOfChar('*', M*4-4); // это для красоты :-)
s := s + s1 + ' Мин. значения в строках '+ s1 + #13;
{ вычисление суммы минимальных значений строк }
Summ := 0;
for i := 1 to M do
begin
Min := MAXRND; // назначаем значение гарантированно больше любого элемента в строке
for j := 1 to N do
begin
{ вычисление минимального значения в строке }
if (Matrix[i,j] < Min) then
Min := Matrix[i,j];
end;
{ вычисление суммы минимальных значений }
Summ := Summ + Min;
s := s + Format('с%d =%6.2f; ', [i,Min]);
end;
s1 := StringOfChar('*', M*9+5); // это для красоты :-)
s := s + #13+s1+#13;
{ вывод результата }
s := s + Format('Сумма наименьших значений = %6.2f ', [Summ])+ #13;
ShowMessage(s);
end;