Другие языки программирования и технологии

Напишите пожалуйста програмку в паскале. ОООЧЕНЬ НУЖНО. Зарнее спасибо.

Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более 10000 чисел (не считая завершающего числа 0). Определите, сколько элементов этой последовательности равны ее наибольшему элементу.
примеры:
ввод... вывод
1 ...1
7
9
0

1....2
3
3
1
Denis Frolov
Denis Frolov
156
var a,n,i: integer;
var rnd: array[1..100] of integer;

begin
cls;
for n:=1 to 30 do
begin
rnd[n]:=abs(random(9))+1;
write(rnd[n],' ');
if a=rnd[n] then i:=i+1;
if rnd[n]>a then
begin
i:=1; a:=rnd[n];
end;
end;
writeln;
writeln('Количество чисел, равных максимальному=',i);
end.

Сразу поясню несколько моментов:
1. В качестве вводимых натуральных чисел я использовал массив размером в 30 чисел из случайный чисел от 1 до 10 (функция random) для наглядности и повышенной читабельности.
2. Все исходные числа программа выводит в строчку через пробел, поэтому можно проверить результат вычислений.
3. Лучше для этой программы использовать рекурсивную процедуру, но цикл for более понятен и легче объяснить его работу, поэтому код представил в таком виде.
Kalev Ludvi
Kalev Ludvi
10 096
Лучший ответ
program N85155821;
const
  max: longword = 0;
var
  x, n: longword;
  e: boolean;
begin
  writeln('Вводите числа последовательности (0 - конец ввода): ');
  repeat
    repeat
      e := false;
      try
        readln(x)
      except
        write('Ошибка! Введите натуральное число: ');
        e := true
      end
    until not e;
    if x > 0 then
      if (max = 0) or (x > max) then
      begin
        max := x;
        n := 1
      end
      else
        if x = max then
          inc(n); {или n := n + 1;}
  until x = 0;
  if max = 0 then
    writeln('Последовательность не вводилась')
  else
    writeln('Максимальных элементов в последовательности: ', n);
  write(#13#10'Для завершения работы нажмите Enter...');
  readln
end.

> Всего вводится не более 10000 чисел
Хоть пара миллионов, программе это безразлично.