• ПОМОГИТЕ ПОЖАЛУЙСТА! Язык программирования паскаль abc!
    В матрице имеется столбец, в котором разность между максимальным элементом и средним арифметическим больше первого элемента. Найти этот столбец, и заменить его элементы на единицу.

Ответы 1

  • const  nm = 50;  nn = 50;type  Mas=array[1..nm,1..nn] of integer;procedure MatrixInit(var a:Mas;m,n,p,q:integer);{ Заполнение массива размером m*n  целыми случайными числами из интервала [p;q] }var  i,j,k:integer;begin  k:=q-p+1;  for i:=1 to m do    for j:=1 to n do a[i,j]:=Random(k)-pend;procedure MatrixOutput(var a:Mas;m,n,k:integer);{ вывод элементов матрицы размера m*n в k позициях }var  i,j:integer;begin  for i:=1 to m do  begin for j:=1 to n do Write(a[i,j]:k); Writeln endend;function IsFits(var a:Mas;m,col:integer):boolean;{ функция возвращает true, если колонка col явдяется "подходящей" }var  i,max:integer;  mv:real;begin  max:=a[1,col]; mv:=max;  for i:=2 to m do  begin    mv:=mv+a[i,col];    if max<a[i,col] then max:=a[i,col]  end;  mv:=mv/m;  IsFits:=(max-mv>a[1,col])end;procedure ColumnReplace(var a:Mas;m,col:integer);{ Замена элементов столбца col единицами }var  i:integer;begin  for i:=1 to m do a[i,col]:=1end;var  P: Mas;  a,b,m,n,j,k:integer;  flag:boolean;begin  Randomize;  Write('Введите количество строк и столбцов матрицы: ');  Read(m,n);  Write('Укажите минимальное и максимальной значение элементов: ');  Read(a,b);  Write('Укажите количество позиций для вывода значения элемента: ');  Read(k);  MatrixInit(P,m,n,a,b);  Writeln('Исходный массив');  MatrixOutput(P,m,n,k);  j:=1;  repeat    flag:=IsFits(P,m,j);    if flag then    begin      ColumnReplace(P,m,j);      Writeln('Результирующий массив');      MatrixOutput(P,m,n,k)    end    else Inc(j)  until flag or (j>n);  if not flag then    Writeln('')end.Тестовое решение:Введите количество строк и столбцов матрицы: 5 8Укажите минимальное и максимальной значение элементов: 0 20Укажите количество позиций для вывода значения элемента: 3Исходный массив 19  7  2 15  2 11  2 15 12 16  8 14  6  8  1 17 12 14 10  8  7 19  7  1  0  9  0  7 18 10  2  5 18  8  4  9 16 10 14 10Результирующий массив 19  7  1 15  2 11  2 15 12 16  1 14  6  8  1 17 12 14  1  8  7 19  7  1  0  9  1  7 18 10  2  5 18  8  1  9 16 10 14 10
    • Автор:

      reinaldo
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years