// 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.
// PascalABC.NET 3.0, сборка 1128 begin var b:array[,] of integer:=((5,8,7,3),(-2,0,6,9),(2,1,12,4)); Writeln('Массив B: ',b); var n:=b.GetLength(0); var m:=b.GetLength(1); var imax:=0; var jmax:=0; var imin:=0; var jmin:=0; for var i:=0 to n-1 do for var j:=0 to m-1 do if b[i,j]>b[imax,jmax] then begin imax:=i; jmax:=j end else if b[i,j]<b[imin,jmin] then begin imin:=i; jmin:=j end; Swap(b[imin,jmin],b[imax,jmax]); Writeln('Результирующий массив: ',b) end.
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]]
begin
var b:array[,] of integer:=((5,8,7,3),(-2,0,6,9),(2,1,12,4));
Writeln('Массив B: ',b);
var n:=b.GetLength(0);
var m:=b.GetLength(1);
var imax:=0; var jmax:=0;
var imin:=0; var jmin:=0;
for var i:=0 to n-1 do
for var j:=0 to m-1 do
if b[i,j]>b[imax,jmax] then begin imax:=i; jmax:=j end
else
if b[i,j]<b[imin,jmin] then begin imin:=i; jmin:=j end;
Swap(b[imin,jmin],b[imax,jmax]);
Writeln('Результирующий массив: ',b)
end.
Тестовое решение:
Массив B: [[5,8,7,3],[-2,0,6,9],[2,1,12,4]]
Результирующий массив: [[5,8,7,3],[12,0,6,9],[2,1,-2,4]]