На вход программы подаются строчные английские буквы. Ввод этих букв
Условие
На вход программы подаются строчные английские буквы. Ввод этих букв заканчивается точкой (другие символы, отличные от «.» и букв «a».. «z» во входных данных отсутствуют. Требуется написать программу на одном из языков программирования, которая будет печатать буквы, встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости. Каждая буква должна быть распечатана один раз. Точка при этом не учитывается. Если какие-то буквы встречаются одинаковое число раз, то они выдаются в алфавитном порядке. Например, пусть на вход подаются следующие символы:colaclcВ данном случае программа должна вывести:аolc Критерии оценивания выполнения задания | Баллы | Программа работает верно, т. е. определяет верно определяет частоту встречающихся букв, для любых входных данных произвольного размера, просматривает входные данные один раз, не содержит вложенных циклов, в тексте программы не анализируется каждая английская буква в отдельности. Допускается наличие одной синтаксической ошибки. | 4 | Программа составлена верно, но содержит нерациональности: входные данные запоминаются в массиве символов или строке или входной поток просматривается несколько раз, программа может содержать вложенные циклы. Допускается наличие не более трех синтаксических ошибок. | 3 | Программа составлена в целом верно с вложенными циклами или без, или обрабатывает каждую букву явным образом (26 или 52 оператора IF или оператор CASE, содержащий 26 или 52 вариантов), но, возможно, выводит значение не первой по алфавиту из искомых букв. Возможно в реализации алгоритма содержатся 1-2 ошибки (используется знак «<»вместо «>», «or» вместо «and» и т. п.). Возможно, некорректно организована работа со входным файлом. Допускается наличие не более пяти синтаксических ошибок. | 2 | Программа, возможно, неверно работает при некоторых входных данных, но по приведенному тексту решения ясно, что экзаменуемый понимает, из каких этапов должно состоять решение задачи. Программа, возможно, неверно обрабатывает некоторые входныеданные, например, отсутствует или предложен некорректный алгоритм обработки строчных или прописных букв, или они подсчитываются по отдельности, или программа содержит ошибку в алгоритме поиска максимума. Возможно, выводит только искомую букву и не выводит количество букв. Допускается наличие не более семи синтаксических ошибок. | 1 | Задание не выполнено или выполнено неверно | 0 | Максимальный балл | 4 |
Формат задания
Решение по шагам
Как рассуждать
Решение. vara:array['a'..'z'] of integer;ch,c:char;i,k:integer;Beginfor ch:='a' to 'z' do a[ch]:=0;k:=0;read (c);while c<>'.' dobeginif c in ['a' .. 'z'] then a[c]:=a[c]+1;k:=k+1;read (c);end;for i:=1 to k do beginfor ch:='a' to 'z' doif a[ch]=i then write(ch);end;end.
Осталось ещё 1 шаг — откроются после входа:
- Полный разбор с проверкой ответа
Бесплатно · займёт минуту