В алфавитном порядке вывести на печать все строчные буквы латинского алфавита, входящие в каждое слово - Turbo Pascal
Формулировка задачи:
Помогите пожалуйста с программой)
Дано предложение, слова которого отделены друг от друга запятыми. В алфавитном порядке
вывести на печать все строчные буквы латинского алфавита, входящие в каждое слово.
Решение задачи: «В алфавитном порядке вывести на печать все строчные буквы латинского алфавита, входящие в каждое слово»
textual
Листинг программы
uses crt; const lb=['a'..'z']; type mnoz=set of char; procedure Mnozestvo(s:string;var m:mnoz); var i:byte; begin m:=[]; for i:=1 to length(s) do if s[i] in lb then m:=m+[s[i]]; end; var s,s1:string; m1,mi:mnoz; i:byte; c:char; begin clrscr; writeln('Введите предложение, слова которого отделены запятыми:'); readln(s); s:=s+',';{добавим запятую в конец} while pos(',,',s)>0 do {удалим лишние запятые} delete(s, pos(',,',s),1); s1:=copy(s,1,pos(',',s)); Mnozestvo(s1,m1); {составим множество из бккв первого слова} delete(s,1,pos(',',s));{удалим его} while pos(',',s)>0 do{пока есть запятые} begin s1:=copy(s,1,pos(',',s)-1);{берем следующее слово} Mnozestvo(s1,mi);{составляем множетво} m1:=m1*mi;{получаем пересечение существующего множества и нового} delete(s,1,pos(',',s));{удаляем слово} end; if m1=[] then{если множество пустое} begin write('Указанных по условию букв нет!'); readln; exit; end; writeln('Множество указанных по условию букв:'); for c:='a' to 'z' do if c in m1 then write(c,' '); readln end.
Объяснение кода листинга программы
- В первой строке кода используется библиотека crt, которая является стандартной для языка Turbo Pascal.
- В следующей строке определяется константа lb, которая содержит все строчные буквы латинского алфавита от 'a' до 'z'.
- Затем определяется тип данных mnoz, который представляет собой множество символов.
- В процедуре Mnozestvo принимается строка s и переменная m типа mnoz. Внутри процедуры создается пустое множество m и происходит проверка каждого символа в строке s. Если символ является строчной буквой, то он добавляется в множество m.
- Далее определяются переменные s, s1, m1 и mi типа string и mnoz.
- В цикле while происходит обработка каждого слова в предложении. Слово отделяется запятой, затем удаляются лишние запятые, и остается только первое слово. Это слово передается в процедуру Mnozestvo, и результат сохраняется в переменной m1.
- Затем происходит пересечение множества m1 с каждым следующим словом, которое обрабатывается в цикле. Результат сохраняется в переменной m1.
- После обработки всех слов происходит проверка, пустое ли множество m1. Если это так, выводится сообщение об отсутствии указанных по условию букв.
- Если множество m1 не пустое, выводится его содержимое в виде букв от 'a' до 'z'.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д