Advertisement
Guest User

Untitled

a guest
Feb 20th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. Пример правильной и эффективной программы на языке Паскаль:
  2. Var N, Num, i, j, t: integer;
  3. Count: array[1..11] of integer;
  4. s: string;
  5. Names: array[1..11] of string;
  6. Begin
  7. Num:=0; {Число различных задач в списке запросов}
  8. ReadLn(N); {Считываем количество запросов}
  9. for i:=1 to N do
  10. begin
  11. ReadLn(S); {считали очередную задачу}
  12. {Осуществляем ее поиск в списке уже встретившихся}
  13. j:=1;
  14. while (j<=Num) and (s<>Names[j]) do j:=j+1;
  15. {Если она найдена}
  16. if j<=Num then {Увеличиваем счетчик числа запросов}
  17. Count[j]:=Count[j]+1
  18. else begin {Иначе добавляем задачу в конец списка}
  19. Names[j]:=s;
  20. Count[j]:=1;
  21. Num:=Num+1
  22. end
  23. end;
  24. {Сортируем массивы Names и Count в порядке убывания значений
  25. массива Count}
  26. for i:=Num downto 2 do
  27. for j:=2 to i do if Count[j-1]<Count[j] then
  28. begin
  29. t:=Count[j]; Count[j]:=Count[j-1]; Count[j-1]:=t;
  30. s:=Names[j]; Names[j]:=Names[j-1]; Names[j-1]:=s;
  31. end;
  32. if Num >= 3 then j := 3 else j := Num;
  33. i := 1;
  34. while (i <= Num) and (Count[i] >= Count[j]) do
  35. begin
  36. WriteLn(Names[i], ' ', Count[i]);
  37. i := i + 1;
  38. end
  39. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement