В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История

Pascalabc.net дана двумерная матрица a(n,m). удалить все столбцы,в которых первый элемент больше последнего ( сесия! )

Показать ответ
Ответ:
ghosthog
ghosthog
20.08.2020 09:58
// 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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота