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

Объяснение кода листинга программы

  1. В первой строке кода используется библиотека crt, которая является стандартной для языка Turbo Pascal.
  2. В следующей строке определяется константа lb, которая содержит все строчные буквы латинского алфавита от 'a' до 'z'.
  3. Затем определяется тип данных mnoz, который представляет собой множество символов.
  4. В процедуре Mnozestvo принимается строка s и переменная m типа mnoz. Внутри процедуры создается пустое множество m и происходит проверка каждого символа в строке s. Если символ является строчной буквой, то он добавляется в множество m.
  5. Далее определяются переменные s, s1, m1 и mi типа string и mnoz.
  6. В цикле while происходит обработка каждого слова в предложении. Слово отделяется запятой, затем удаляются лишние запятые, и остается только первое слово. Это слово передается в процедуру Mnozestvo, и результат сохраняется в переменной m1.
  7. Затем происходит пересечение множества m1 с каждым следующим словом, которое обрабатывается в цикле. Результат сохраняется в переменной m1.
  8. После обработки всех слов происходит проверка, пустое ли множество m1. Если это так, выводится сообщение об отсутствии указанных по условию букв.
  9. Если множество m1 не пустое, выводится его содержимое в виде букв от 'a' до 'z'.
  10. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы