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

Нужно написать программу на паскале

я написал программу но паскаль что-то не то выводит, вот хочу посмотреть как вы решите: На вход программе подается последовательность цифр. Ввод этих символов заканчивается точкой (другие символы, отличные от “.” и цифр “0”..“9”, во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет печатать цифры, встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости. Каждая цифра при этом должна быть распечатана один раз. Если какие-то цифры встречаются одинаковое число раз, то они выводятся по возрастанию. Например, пусть на вход подаются следующие символы: 1232432. В данном случае программа должна вывести: 1432
Версия паскаля? ну, например, Turbo Pascal 7.0
Program Zadacha;
var
a: array [0..9] of integer; {Задаем целочисленный массив а с индексами от 0 до 9 для хранения количества вхождений каждой цифры}
ch: char; {Задаем символьную переменную, которая поможет нам считать каждый символ до точки}
num, i, j:byte; {Задаем переменные типа byte, где i,j - счетчики цикла, num - введенная цифра в переменной типа byte}
min, k: integer; {Задаем целочисленные переменные, min - минимум (нужен для сортировки массива) }
begin
for i:=0 to 9 do {Цикл от 0 до 9 для обнуления массива}
a:=0; {Обнулили массив}
read(ch); {Считываем первый символ}
while ch<>'.' do {Задаем цикл для считывания остальных чисел до точки (цикл работает пока переменная ch не равна точки) }
begin
num:=ord(ch)-48; {Переменная num принимает значение считанной цифры}
a[num]:=a[num]+1; {Массив с индексом значения считанной цифры (a[num]) увеличивает свое значение на единицу (считаем количество каждой цифры в последовательности) }
read(ch); {считали очередную цифру}
end; {закрыли цикл}
for i:=0 to 9 do {открываем цикл для сортировки массива и вывода на экран результата}
begin
min:=a[0]; {переменная min принимает значение первого элемента массива a[0](количество нулей в последовательности) }
k:=0; {начальное значение переменной k равно 0}
for j:=0 to 9 do {в данном цикле сравниваем значения каждого элемента массива с значением min}
begin
if a[j]<min>0 then
write(k,' ');
a[k]:=maxint;
end;
end.
Олег Панков
Олег Панков
482
Лучший ответ
Вадим Усачёв эх, олег ястреб. мог бы и лучший ответ получить, коли не поленился расставить пробелы после [ и
Олег Ибрагимов не работает