С! кто понимает? нужно преобразовать массив.(написать программу на паскале) дан целочисленный двумерный массив. 1. удалить те строки, в которых встречаются нулевые элементы. 2. отсортировать элементы первого столбца по возрастанию. 3. в последним столбце прибавить число b ко всем элементам после k-го элемента (b и k ввести с клавиатуры). под удалением понимать исключение этого элемента путем смещения всех следующих за ним влево на 1 позицию и присвоение последнему элементу значения 0. для отладки программы числа матрицы сформировать с генератора случайных чисел.

kamilamila2005 kamilamila2005    2   30.08.2019 05:40    0

Ответы
bigman4 bigman4  09.09.2020 13:31
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в матрице:');
  var m:=ReadInteger('Количество столбцов в матрице:');
  Writeln('*** Исходная матрица [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-9,9);
  a.Println(3); Writeln(3*a.ColCount*'-');
  // 1. удалить строки с нулевыми элементами
  var v:=a.Rows.Select(x->x.All(y->y<>0)).ToArray;
  var q:=new integer[v.Where(r->r=true).Count,a.ColCount];
  var k:=0;
  for var i:=0 to v.Count-1 do
    if v[i] then begin
      q.SetRow(k,a.Row(i)); k+=1
      end;
  Writeln('Матрица, не содержащая строк с нулями');
  a:=Copy(q);
  a.Println(3);
  // 2. отсортировать элементы первого столбца по возрастанию
  a.SetCol(0,a.Col(0).OrderBy(x->x).ToArray);
  Writeln('Матрица с отсортированной колонкой 1');
  a.Println(3);
  // 3. игры с k и b
  var b:integer;
  Write('Введите значения b и 1<=k<=',a.RowCount,': '); Read(b,k);
  for var j:=k to a.RowCount-1 do a[j,m-1]+=b;
    Writeln('Матрица с модифицированной последней колонкой');
  a.Println(3)
end.

Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
 -4 -8  4 -4  8 -6  5 -2
  2 -7 -4  6  8  4  9 -8
  0 -8 -4 -7 -4 -7  6 -3
  6 -4 -8  9 -7 -5 -3 -2
 -9  7 -1 -2 -9  9  7  4

Матрица, не содержащая строк с нулями
 -4 -8  4 -4  8 -6  5 -2
  2 -7 -4  6  8  4  9 -8
  6 -4 -8  9 -7 -5 -3 -2
 -9  7 -1 -2 -9  9  7  4
Матрица с отсортированной колонкой 1
 -9 -8  4 -4  8 -6  5 -2
 -4 -7 -4  6  8  4  9 -8
  2 -4 -8  9 -7 -5 -3 -2
  6  7 -1 -2 -9  9  7  4
Введите значения b и 1<=k<=4: 5 2
Матрица с модифицированной последней колонкой
 -9 -8  4 -4  8 -6  5 -2
 -4 -7 -4  6  8  4  9 -8
  2 -4 -8  9 -7 -5 -3  3
  6  7 -1 -2 -9  9  7  9

Замечание: Под удалением без всяких условностей понимается именно удаление. Матрица после удаления просто содержит меньшее количество строк.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика