ДАМ МНОГО БАЛЛОВ Дана матрица, содержащая как положительные, так и отрицательные элементы...

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

ДАМ МНОГО БАЛЛОВ
Дана матрица, содержащая как положительные, так и отрицательные элементы размером n на m. Сформируйте из заданой матрицы новую удалить все строки, содержащие только положительные элементы.


Информатика (262 баллов) | 73 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,m,-10,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var L:=new List; // для номеров подходящих строк
  for var i:=0 to n-1 do
    if a.Row(i).Any(t->t<=0) then L.Add(i);<br>  n:=L.Count;
  if n=0 then begin
    Writeln('Все строки содержат только положительные элементы');
    exit
    end;
  var b:=new integer[n,m];
  for var i:=0 to n-1 do
    b.SetRow(i,a.Row(L[i]));
  Writeln('*** Результирующая матрица ***');
  b.Println(4)
end.

Пример
Количество строк и столбцов в матрице: 5 4
*** Исходная матрица ***
  12  -9  64  34
  53  64  49  74
  33  27  -6  72
  91  14  23  16
  15  64   9  77
----------------
*** Результирующая матрица ***
  12  -9  64  34
  33  27  -6  72

image
(150k баллов)
0

а можете написать на обычном паскале(в делфи)?мне такое решение не совсем подходит