profile
Опубликовано 5 лет назад по предмету Информатика от golovin303

PascalABC.NET Дана двумерная матрица A(N,m). Удалить все столбцы,в которых первый элемент больше последнего
(Срочно Сесия!)

  1. Ответ
    Ответ дан Аккаунт удален
    // PascalABC.NET 3.2, сборка 1363 от 17.12.2016
    // Внимание! Если программа не работает, обновите версию!

    begin
      var m:=ReadInteger('Количество строк в матрице:');
      var n:=ReadInteger('Количество столбцов в матрице:');
      Writeln('*** Исходная матрица [',m,'x',n,'] ***');
      var a:=MatrRandom(m,n,-50,50);
      a.Println(4); Writeln(4*a.ColCount*'-');
      var q:=a.Cols.Select(x->x.First<x.Last).ToArray;
      var k:=q.Where(r->r).Count;
      Writeln('*** Результирующая матрица [',m,'x',k,'] ***');
      var b:=MatrFill(m,k,0);
      var l:=0;
      for var j:=0 to n-1 do
        if q[j] then begin
          for var i:=0 to m-1 do b[i,l]:=a[i,j];
          l+=1
          end;
      b.Println(4)
    end.

    Пример
    Количество строк в матрице: 5
    Количество столбцов в матрице: 8
    *** Исходная матрица [5x8] ***
      15 -35 -11 -18  49 -32  31 -47
     -21 -46   7 -48   3  24 -48   5
      28 -46  36  -9  17 -32 -44 -10
     -16   7 -14  40  13  30  50 -28
      -8  35 -49  47 -31  30  18  20
    --------------------------------
    *** Результирующая матрица [5x4] ***
     -35 -18 -32 -47
     -46 -48  24   5
     -46  -9 -32 -10
       7  40  30 -28
      35  47  30  20

Самые новые вопросы