Помогите с информатикой!!! Кто понимает?Нужно преобразовать массив.(написать программу **...

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

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


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

Это всё одна задача?

0

да

Дан 1 ответ
0 голосов
Правильный ответ
// 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);<br>  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<br>Матрица с модифицированной последней колонкой
 -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

Замечание: Под удалением без всяких условностей понимается именно удаление. Матрица после удаления просто содержит меньшее количество строк.
(150k баллов)
0

давайте придем к компромису, я оплачу за это решение 60 баллами. Но создам новое, с другим заданием за 80 баллов. Согласны?

0

дедовскии метод- это разве не самый лучшии метод?

0

простите, больше не смею тревожить вас

0

А разве учителя не должны порадоваться, что человек знает сверх того, что дается в школе?