var b:array[1..10,1..20]of integer;//матрица
v:array[1..10]of integer;//вектор для замены
mn:set of byte;//вектор(множество) номеров строк для подсчета суммы
//с множеством удобнее работать
m,n,i,j,k,s:integer;
begin
randomize;
repeat
write('Введите количество строк матрицы от 2 до 10 m=');
readln(m);
until m in [2..10];
repeat
write('Введите количество столбцов матрицы от 2 до 20 n=');
readln(n);
until n in [2..20];
writeln('Исходная матрица');
for i:=1 to m do
begin
for j:=1 to n do
begin
b[i,j]:=random(10);
write(b[i,j]:3);
end;
writeln;
end;
writeln('Вектор для замены столбцов');
for i:=1 to m do
begin
v[i]:=10+random(90);
write(v[i]:3);
end;
writeln;
writeln('Замена стобцов в которых есть нулевой элемент');
k:=0;
for j:=1 to n do
begin
i:=1;
while(i<=m)and(b[i,j]<>0)do inc(i);
if i<=m then
begin
k:=1;
for i:=1 to m do
b[i,j]:=v[i];
end;
end;
if k=0 then writeln('Столбцов с нолями нет')
else
for i:=1 to m do
begin
for j:=1 to n do
write(b[i,j]:3);
writeln;
end;
writeln('Вектор номеров строк для подсчета суммы');
mn:=[];
for i:=1 to m do
begin
if random(2)=1 then
begin
include(mn,i);
write(i:3);
end;
end;
writeln;
s:=0;
for i:=1 to m do
if i in mn then
for j:=1 to n do
s:=s+b[i,j];
write('Сумма в строках номера которых есть в векторе=',s)
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.