Найти минимальное по модулю число, встречающееся в матрице более одного раза — Pascal(Паскаль)

program zad;
uses crt;
type matr=array[1..10,1..10] of integer;
var
m:matr;
i,j:integer;
min,kol,q,w,P:integer;
c:byte;
begin
  clrscr;
  randomize;
  writeln('     МЕНЮ');
  writeln('1 - через датчик');
  writeln('2 - с клавиатуры');
  write('-> ');
  readln(c);
  case c of
    1: for i:=1 to 10 do
       begin
         for j:=1 to 10 do
         begin
           m[i,j]:=random(201)-100;
           write(m[i,j]:4);
         end;
         writeln;
       end;
    2: begin
       writeln('введите элементы массива');
       for i:=1 to 10 do
       begin
         for j:=1 to 10 do
         begin
           readln(m[i,j]);
         end;
       end;
       for i:=1 to 10 do
       begin
         for j:=1 to 10 do
         begin
           write(m[i,j]:4);
         end;
         writeln;
       end;
       end;
  end;
  min:=abs(m[1,1]);
  kol:=0;
  for i:=1 to 10 do
  begin
    for j:=1 to 10 do
    begin
      if abs(m[i,j])<=min then
      begin
        min:=abs(m[i,j]);
        kol:=0;
        for q:=1 to 10 do
        begin
          for w:=1 to 10 do
          begin
            if abs(m[q,w])=min then
            kol:=kol+1;
          end;
        end;
        if kol>=2 then  P:=min;
      end;
    end;
  end;
  textcolor(10);
  writeln('минимальноое по модулю число равно ',abs(P));
  textcolor(7);
  for i:=1 to 10 do
  begin
    for j:=1 to 10 do
    begin
      if m[i,j]=P then
      begin
        textcolor(5);
        write(m[i,j]:4);
        textcolor(7);
      end
      else write(m[i,j]:4);
    end;
    writeln;
  end;
  readln;
end.

Leave a Comment

76 + = 82