uses Crt;const nn=10;var a:array[1..nn,1..nn] of integer; d:array[1..nn] of boolean; i,j,k,n,n1,i1:integer;begin ClrScr; Randomize; Write('Укажите число строк в массиве (2-10): '); Read(n); Writeln('Исходный массив'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4) end; Writeln end; Write('Введите число, строки с которым надо удалить: '); Read(k); for i:=1 to n do begin d[i]:=False; j:=1; while (j<=n) and not d[i] do begin d[i]:=(a[i,j]=k); Inc(j) end end; n1:=n; while (d[n1]) and (n1>0) do Dec(n1); if n1=0 then Writeln('Удалены все строки') else begin for i:=n1 downto 1 do begin if d[i] then begin for i1:=i to n1-1 do for j:=1 to n do a[i1,j]:=a[i1+1,j]; Dec(n1) end end; Writeln('Результирующий массив'); for i:=1 to n1 do begin for j:=1 to n do Write(a[i,j]:4); Writeln end end; ReadKeyend.
Тестовое решение:Укажите число строк в массиве (2-10): 10Исходный массив -6 23 18 9 4 15 -22 12 16 -18 11 20 -16 -22 -20 -24 -21 25 12 14 -11 7 22 4 -6 -15 -14 -7 -19 1 -16 5 -9 19 6 10 2 2 10 18 -18 -6 -24 21 16 -22 12 2 -25 5 0 -11 16 -11 6 21 -12 -1 13 -20 -24 3 -22 14 19 22 2 -15 10 -13 -22 16 12 24 -3 -2 -20 16 -11 4 -9 -15 -1 -20 17 -17 -24 3 -19 9 23 7 -25 -6 16 13 -5 22 -18 18Введите число, строки с которым надо удалить: -6Результирующий массив 11 20 -16 -22 -20 -24 -21 25 12 14 -16 5 -9 19 6 10 2 2 10 18 0 -11 16 -11 6 21 -12 -1 13 -20 -24 3 -22 14 19 22 2 -15 10 -13 -22 16 12 24 -3 -2 -20 16 -11 4 -9 -15 -1 -20 17 -17 -24 3 -19 9