Сформируйте двухмерный массив и удалите из него все строки в которых встречается заданное...

0 голосов
70 просмотров

Сформируйте двухмерный массив и удалите из него все строки в которых встречается заданное число.TubrboPascal


Информатика | 70 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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<br>    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


(142k баллов)