Найти max из чисел, встречающиеся в заданной матрице, более одного раза — Delphi(Делфи)

const
  n = 5;

var
  a: array [0 .. n, 0 .. n] of integer;
  i, j: integer;
  s: string;

function max(list: tstringlist): string;
begin
  for i := 0 to list.Count - 2 do
    for j := i + 1 to list.Count - 1 do
      if strtoint(list.Strings[i]) < strtoint(list.Strings[j]) then
      begin
        s := list.Strings[i];
        list.Strings[i] := list.Strings[j];
        list.Strings[j] := s;
      end;
  result := list.Strings[0];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  list: tstringlist;
begin
  list := tstringlist.Create;
  randomize;

  for i := 0 to n do
    for j := 0 to n do
      a[i, j] := random(10);

  for i := 0 to n do
    for j := 0 to n do
      if pos(inttostr(a[i, j]), s) > 0 then
        list.Add(inttostr(a[i, j]))
      else
        s := s + inttostr(a[i, j]) + ' ';

  label1.Caption := max(list);
end;

Leave a Comment

53 + = 61