В алфавитном порядке вывести на печать все строчные буквы латинского алфавита, входящие в каждое слово - 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'.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д