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; ReadKey end.
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;
ReadKey
end.
Тестовое решение:
Укажите число строк в массиве (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