Составить программу, которая вычисляет сумму тех элементов двумерного массива, номера строк и столбцов которых принадлежат соответственно непустым множествам 5(индекс снизу 1) и 5(индекс снизу 2) — Pascal(Паскаль)

uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j:byte;
    m1,m2:set of byte;
    s:integer;
begin
clrscr;
randomize;
m1:=[];{создаем первое множество из 5 элементов - строки}
for i:=1 to 5 do
 begin
  repeat
  j:=random(10);
  until not(j in m1);{проверяем чтобы не повторялись}
  m1:=m1+[j];{добавляем}
 end;
writeln('Множество 1:');
for i:=0 to 9 do
if i in m1 then write(i,' ');
writeln;
m2:=[];{второе множество-столбцы}
for i:=1 to 5 do
 begin
  repeat
  j:=random(10);
  until not(j in m2);
  m2:=m2+[j];
 end;
writeln('Множество 2:');
for i:=0 to 9 do
if i in m2 then write(i,' ');
writeln;
writeln;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
s:=0;
for i:=1 to n do
 begin
   for j:=1 to m do
    begin
     a[i,j]:=random(20)-5;
     if(i in m1)and(j in m2)then{если элемент на пересечени строки и столбца из множеств}
      begin
       textcolor(12);{выделим красным цветом}
       write(a[i,j]:4);
       s:=s+a[i,j];{суммируем}
      end
     else
      begin
       textcolor(15);
       write(a[i,j]:4);
      end;
    end;
   writeln;
 end;
writeln;
textcolor(15);
writeln('Сумма=',s);
readln
end.

Leave a Comment

34 + = 38