Составить программу для ввода обработки и печати массивов (одномерных и двухмерных): дана действительная матрица a размера (n×m), n,m≤10. в каждом столбце матрицы a заменить элемент, больший по модулю 10 на 10, а меньший или равно по модулю 10 – на номер столбца, в котором элемент находится. подсчитать число замен обоих видов( 5 для всей матрицы и отдельно для каждого столбца).

katunina2004ox971p katunina2004ox971p    2   03.10.2019 06:10    1

Ответы
gulzanairgalievi gulzanairgalievi  09.10.2020 13:28

const max=10;

var a:array[1..max,1..max] of integer;

   k1,k2:array[1..max]of byte;  

   n,m,i,j,s1,s2:integer;

begin

repeat

write('Количество строк до ',max,' n=');

readln(n);

until n in [1..max];

repeat

write('Количество столбцов до ',max,' m=');

readln(m);

until m in [1..max];

writeln('Исходная матрица:');

for i:=1 to n do

begin

 for j:=1 to m do

  begin

   a[i,j]:=-15+random(31);

   write(a[i,j]:4);

  end;

 writeln;

end;

s1:=0;

s2:=0;  

for j:=1 to m do

begin

 k1[j]:=0;

 k2[j]:=0;

 for i:=1 to n do

 if abs(a[i,j])>10 then

  begin

   a[i,j]:=10;

   inc(s1);

   inc(k1[j]);

  end

 else

  begin

   a[i,j]:=j;

   inc(s2);

   inc(k2[j]);

  end;

 end;

writeln('Измененная матрица');

for i:=1 to n do

 begin

  for j:=1 to m do

  write(a[i,j]:4);

  writeln;

 end;

writeln('          Количество замен');

writeln('           1 вида  2 вида');

for i:=1 to m do

writeln('Столбец ',i:2,k1[i]:5,k2[i]:5);

writeln('Всего     ',s1:5,s2:5);

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика

Популярные вопросы