uses crt;
const n=10;
type nomer=1..n;
     matr=array[nomer,nomer] of real;
     nom=set of nomer;
function Sum(a:matr;s1,s2:nom):real;
var i,j:nomer;
    s:real;
begin
s:=0;
for i:=1 to n do
for j:=1 to n do
if(i in s1)and(j in s2) then s:=s+a[i,j];
Sum:=s;
end;
var a:matr;
    m1,m2:nom;
    i,j:nomer;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=10*random;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
writeln;
m1:=[];
m2:=[];
for i:=1 to n do
 begin
  j:=random(n)+1;
  m1:=m1+[j];
  j:=random(n)+1;
  m2:=m2+[j];
 end;
writeln('Множество индексов строк:');
for i:=1 to n do
if i in m1 then write(i,' ');
writeln;
writeln;
writeln('Множество индексов столбцов:');
for i:=1 to n do
if i in m2 then write(i,' ');
writeln;
writeln;
write('Сумма элементов с отмеченными индексами=',Sum(a,m1,m2):0:2);
readln
end.
