Дан массив R(M,N). Заменить в массиве все положительные элементы ** 0, а отрицательные **...

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

Дан массив R(M,N). Заменить в массиве все положительные элементы на 0, а отрицательные на 1. Посчитать количество нулей и единиц .


Информатика (15 баллов) | 86 просмотров
0

Может, на LISP написать?

0

Я могу писать

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  Writeln('*** Результат ***');
  a.Transform(x->x>=0?0:1); a.Println(4);
  var s:=a.ElementsByRow;
  Writeln('Нулей- ',s.Where(x->x=0).Count,', единиц- ',
      s.Where(x->x=1).Count)
end.

Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 5
*** Исходный массив [4,5] ***
 -19  61 -47 -38 -26
 -95 -35 -56  43  40
   0 -52 -87 -85  93
 -68  48 -55   5 -93
--------------------
*** Результат ***
   1   0   1   1   1
   1   1   1   0   0
   0   1   1   1   0
   1   0   1   0   1
Нулей- 7, единиц- 13
(150k баллов)
0

Если делаешь на ABC.NET, то не надо юзать возможности .NET. Это главное условие для школы. Только возможности Object Pascal.