// PascalABC.NET 3.0, сборка 1128procedure 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]]