Составить программу на паскале(подробно). дан текст. выведите в алфавитном порядке все буквы текста, входящие в него: - не более двух раз
153
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. тестовое решение введите строку: а роза упала на лапу азора. карл у клары украл кораллы. з,н,п,ы
присваивание - это действие в результате которого переменная величина получает определенное значение.
Популярно: Информатика
-
H1tg1rl13.12.2022 22:29
-
monyamirzoeva29.04.2021 23:04
-
needlife11.05.2022 18:21
-
елмира128.04.2020 01:08
-
Fqx24.05.2021 20:28
-
FoXiCZ10.05.2023 15:25
-
Игорь1246327.09.2021 07:23
-
KerimovaLuiza91910.12.2022 14:00
-
Alex1t006.05.2022 02:20
-
Юлдуз112222.02.2023 00:09