Размер шрифта: A AA Изображения Выключить Включить Цвет сайта Ц Ц Ц Х
Бесплатный конструктор сайтовuCoz
Понедельник, 07.07.2025, 06:38
Приветствую Вас Гость | RSS

Сайт учителя информатики  и ИКТ Шинкаренко Евгения Александровича

Реклама
Оцените сайт
Оцените мой сайт
Всего ответов: 837
Программирование
Какой язык программирования выбрать для подготовки к ЕГЭ
Всего ответов: 804

Решение задачи №3.

Задача №3.

На вход программе подается последовательность цифр. Ввод этих символов заканчивается точкой (другие символы, отличные от «.» и цифр 0 ... 9, во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать эф­фективную программу, которая будет печатать цифры, встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости. Каждая циф­ра при этом должна быть распечатана один раз. Если какие-то цифры встречаются одинаковое число раз, то они выводятся по возрастанию. Например, пусть на вход подаются следующие символы: 1232432. В данном случае программа должна выве­сти: 1 4 3 2.

Решение задачи №3.

var
a: array [0..9] of integer;  {Задаем целочисленный массив а с индексами от 0 до 9}
ch: char;     {Задаем символьную переменную, которая поможет нам считать каждую цифру до точки}
num, i, j:byte;  {Задаем переменные типа byte}
min, k: integer;  {Задаем целочисленные переменные}
begin
for i:=0 to 9 do  {Цикл от 0 до 9 для обнуления массива}
a[i]:=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 then {сравниваем массив с переменной min}
begin
min:=a[j]; 
k:=j;
end;
end;
if a[k]<>0 then
write(k,' ');
a[k]:=maxint;
end;
end.


Реклама
Календарь
«  Июль 2025  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Счетчик яндекс
Яндекс.Метрика