Заменить все отрицательные элементы матрицы ** максимальные значения. Помоги составить в...

0 голосов
91 просмотров

Заменить все отрицательные элементы матрицы на максимальные значения. Помоги составить в паскале


Информатика (62 баллов) | 91 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
procedure MatPrint(a:array[,] of integer);
begin
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to Length(a,1)-1 do Print(a[i,j]);
    Writeln
    end
end;

function MatMax(a:array[,] of integer):integer;
begin
  Result:=-100; // мeньше меньшего в матрице
  for var i:=0 to Length(a,0)-1 do
    for var j:=0 to Length(a,1)-1 do
      if a[i,j]>Result then Result:=a[i,j]
end;

procedure MatReplaceNegative(a:array[,] of integer; value:integer);
begin
  for var i:=0 to Length(a,0)-1 do
    for var j:=0 to Length(a,1)-1 do
      if a[i,j]<0 then a[i,j]:=value<br>end;

begin
  var n,m:integer;
  Write('Задайте число строк и столбцов матрицы: ');
  Read(n,m);
  var a:=MatrixRandom(n,m,-99,99);
  Writeln('Исходная матрица');
  MatPrint(a);
  var mx:=MatMax(a);
  MatReplaceNegative(a,mx);
  Writeln('Результирующая матрица');
  MatPrint(a)
end.

Тестовое решение
Задайте число строк и столбцов матрицы: 5 8
Исходная матрица
24 34 -33 63 -39 -33 96 -65
77 -98 0 31 98 20 36 -59
78 23 10 -44 64 -15 36 -48
86 -99 -8 -4 -12 -65 14 86
-37 0 54 74 -85 -81 -5 -21
Результирующая матрица
24 34 98 63 98 98 96 98
77 98 0 31 98 20 36 98
78 23 10 98 64 98 36 98
86 98 98 98 98 98 14 86
98 0 54 74 98 98 98 98

(142k баллов)