Другие языки программирования и технологии
Нужно написать программу на паскале
я написал программу но паскаль что-то не то выводит, вот хочу посмотреть как вы решите: На вход программе подается последовательность цифр. Ввод этих символов заканчивается точкой (другие символы, отличные от “.” и цифр “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.
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.
Вадим Усачёв
эх, олег ястреб. мог бы и лучший ответ получить, коли не поленился расставить пробелы после [ и
Олег Ибрагимов
не работает
Похожие вопросы
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Нужно написать программу в Паскале
- Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
- Как написать программу в паскале
- Помогите с информатикой!!! Кто понимает? Нужно преобразовать массив. (написать программу на паскале).
- помогите плиз написать программу на паскале...тема массивы...нужно использовать поиск деления пополам!!!нужно срочно!
- Помогите написать программу на паскале
- плизз! поомогите написать программу на паскале!
- Помогите пожалуйста написать программу в Паскале )) Написать программу для вычисления суммы в массиве из 10 элементов
- Нужно написать программу на СИ++, которая переводит с паскаля на СИ++