Составить программу на паскале(подробно). дан текст. выведите в алфавитном порядке все буквы текста, входящие в него: - не более двух раз
183
371
Ответы на вопрос:
//pascal abc.net v3.1 сборка 1219 const chb: set of char=['а'..'я','a'..'z']; //множество букв var ar,s,st: string; i,j,n: integer; c: char; begin readln(s); //читаем текст n: =0; //обнуляем счётчик for i: =1 to length(s) do {всё в нижнем регистре, чтобы не считать заглавную и строчную буквы разными} s[i]: =lowcase(s[i]); for i: =1 to length(s) do //снова пройдёмся по каждой букве begin st: =s; {передаём переменной текст, тем самым не трогая "оригинал"} while pos(s[i],st)< > 0 do //пока в копии есть символ с заданным циклом for индексом begin delete(st,pos(s[i],st),1); { этот символ(по одному за шаг вложенного цикла)} inc(n); //увеличиваем число удалённых end; {таким образом, данный цикл позволяет проверить количество вхождений символа в строку} if (n< =2) and (pos(s[i],ar)=0) and (s[i] in chb) then ar: =ar+s[i]; {если вхождений не больше 2 и символа нет в конечной строке(чтобы не было повторов) и символ есть в множестве букв(чтобы не было знаков препинания), то в конечную строку} n: =0; //обнуляем счётчик end; for i: =1 to length(ar)-1 do {здесь могла быть "быстрая сортировка", но люди не знающие ничего, кроме "пузырька" будут против} for j: =i+1 to length(ar) do if ar[i]> ar[j] then {сравниваем символы. тип char является целочислительным, следовательно, нам можно} begin c: =ar[i]; ar[i]: =ar[j]; ar[j]: =c; end; writeln('result: '); //вывод конечной строки for i: =1 to length(ar) do write(ar[i],' '); end. пример ввода: daaaaaaaaaaaaaads. пример вывода: result: d s
Что же, можно и покороче решить, но поймете ли решение? // pascalabc.net 3.1, сборка 1230 от 27.04.2016 begin var s: =readlnstring('введите строку: ').toupper. where(c-> c in ['a'..'z','а'..'я','ё']); var d: =new dictionary< char,integer> ; foreach var c in s do d[c]: =d.get(c)+1; d.where(k-> k.value< =2).orderby(k-> k.key). select(k-> k.key).println(','); end. тестовое решение введите строку: а роза упала на лапу азора. карл у клары украл кораллы. з,н,п,ы
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Marattadjibov7317.06.2020 18:15
-
Elino4kaK02.07.2020 15:05
-
Maxi460103.01.2021 20:03
-
Ольга173819.02.2023 02:58
-
AlCapone02511.04.2020 08:10
-
андрев105.04.2021 08:04
-
СофикаКис27.10.2021 08:44
-
Magomedrasul0555508.11.2022 07:15
-
lilik0309.09.2021 09:44
-
Savich11116.08.2020 08:07
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.