Дана матрица А(M,N) Составить вектор из номеров столбцов, где есть хотя бы одно число, в котором все цифры одинаковые (элементы матрицы > 10) — Pascal(Паскаль)

program ff;

uses crt;

var
  A: array [1 .. 100, 1 .. 100] of integer; { переменная массива }
  i, j, m, n: integer; { переменные для циклов }
  B: array [1 .. 100] of integer; { переменная массива }

  { функция, определяющая есть ли в столбце цифры с одинаковыми цифрами }
function estivstolbce(j: integer): boolean;
var
  i, k: integer;
  s: string;
  B: boolean;
begin
  for i := 1 to m do
  begin
    B := true;
    str(A[i, j], s);
    for k := 2 to length(s) do
      if s[1] <> s[k] then
        B := false;

    if B then
    begin
      estivstolbce := B;
      exit;
    end;
  end;
  estivstolbce := B;
end;

{ ---конец функции }
{ -------------------------------------------- }
begin
  write('M= ');
  readln(m); { считываем размер массива }
  write('N= ');
  readln(n); { считываем размер массива }

  writeln('Vvedite elementy massiva A (>10): ');
  for i := 1 to m do
    for j := 1 to n do
    begin
      write('A[', i, ',', j, ']=');
      readln(A[i, j]);
    end; { считываем сам массив }

  clrscr;
  write('Vot vvedennyy vami massiv A: ');
  for i := 1 to m do
  begin
    writeln;
    for j := 1 to n do
      write(A[i, j]:4, ' ');
  end; { выводим массив }

  i := 0;
  for j := 1 to n do
    if estivstolbce(j) then
    begin
      inc(i);
      B[i] := j;
    end; { записываем в массив номера столбцов }
  writeln;
  writeln;
  write('Massiv B: ');
  for j := 1 to i do
    write(B[j], ' ');
  { выводим массив В, в котором номера столбцов где есть элементы с одинаковыми цифрами }

  readln;

end.

Leave a Comment

8 + 1 =