Показать сообщение отдельно
  #6  
Старый 21.06.2010, 23:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Знаем-знаем... но просто так делать лень.
Вот если ты сделаешь, то тебе помогут найти и устранить ошибки.

6.13
Код:
type
  TNmb = record
    Value : Integer;
    Count : Integer;
  end;

var
  A : Array Of TNmb;
  N, I, J : Integer;
  F : Boolean;
  AA : TNmb;

begin
  // Ввод чисел с подсчетом кол-ва
  SetLength(A,0);
  N := 0;
  WriteLn('Введите числа, окончание ввода -1');
  While N <> -1 Do
    Begin
      Write('Введите число:');
      ReadLn(N);

      F := False;
      For I := Low(A) To High(A) Do
        If A[i].Value = N Then 
          Begin
            Inc(A[i].Count);
            F := True;
          End;
      If Not F Then
        Begin
          SetLength(A,Length(A)+1);
          A[High(A)].Value := N;
          A[High(A)].Count := 1;
        End
    End;

  // Сортировка по убыванию
  For I := Low(A) To High(A)-1 Do
   For J := I+1 To High(A) Do
     If A[i].Count < A[J].Count Then
       Begin
         AA := A[i];
         A[i] := A[J];
         A[J] := AA;
       End;

  // Вывод результата
  WriteLn('Числа по убыванию кол-ва:'
  For I := Low(A) To High(A) Do
    WriteLn(Format('Число %d встречяается %d раз',[A[i].Value,A[i].Count]));
end;
Ответить с цитированием