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

Дан массив b(n*m).элементы массива задать в программе.удалить все строки, в которых нет нулевого элемента. паскаль

Ответ:
qidanabala
qidanabala
03.10.2020 03:41
// PascalABC.NET 3.0, сборка 1128
procedure DeleteRow(var a:array[,] of integer; r:integer);
begin
  var rows:=a.GetLength(0);
  var cols:=a.GetLength(1);
  for var i:=r to rows-2 do
    for var j:=0 to cols-1 do a[i,j]:=a[i+1,j];
  SetLength(a,rows-1,cols)
end;

begin
  var b:array[,] of integer:=((1,2,3,0),(5,6,0,8),
      (9,10,11,12),(13,0,15,16),(17,18,19,20));
  Writeln('Исходный массив: ',b);
  var n:=b.GetLength(0);
  var m:=b.GetLength(1);
  // удаляем строки без нулевых элементов
  for var i:=n-1 downto 0 do begin
    var FoundZero:=False;
    for var j:=0 to m-1 do
      if b[i,j]=0 then begin FoundZero:=True; Break end;
    if not FoundZero then DeleteRow(b,i) // удалить строку
    end;
  Writeln('Результирующий массив: ',b);
end.

Тестовое решение:
Исходный массив: [[1,2,3,0],[5,6,0,8],[9,10,11,12],[13,0,15,16],[17,18,19,20]]
Результирующий массив: [[1,2,3,0],[5,6,0,8],[13,0,15,16]]
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?