Дан текст на русском языке. Напечатать в алфавитном порядке все глухие согласные буквы, которые не входят только в одно слово — Pascal(Паскаль)

uses crt;
const
gl=['к','п','с','т','ф','х','ц','ч','ш','щ','К','П','С','Т','Ф','Х','Ц','Ч','Ш','Щ'];{глухие согласные}
bk:string='КкПпСсТтФфХхЦцЧчШшЩщ';
type mnoz=set of char;
var  s,s1:string;
     m:array[1..100] of mnoz;{массив множеств}
     mn,mn1:mnoz;
     n,i,j:byte;
begin
clrscr;
repeat
writeln('Введите текст на русском языке, между словами пробелы:');
readln(s);
if pos(' ',s)=0 then
writeln('В предложении только одно слово. Повторите ввод.');
until pos(' ',s)>0;
s:=s+' ';{добавим пробел в конец}
n:=0;
while pos(' ',s)>0 do{создаем массив множеств}
 begin
  s1:=copy(s,1,pos(' ',s)-1);{копируем очередное слово}
  n:=n+1;{считаем}
  m[n]:=[];{создаем множество}
  for j:=1 to length(s1) do
  if s1[j] in gl then m[n]:=m[n]+[s1[j]];{из его букв по условию}
  delete(s,1,pos(' ',s));{удаляем это слово}
 end;
mn1:=[];{множество букв, не входящих только в одно число}
for i:=1 to n do{для каждого множества }
 begin
  mn:=[];
  for j:=1 to n do
  if j<>i then mn:=mn+m[j];{делаем множество из букв, котoрые входят в другие числа}
  mn1:=mn1+(m[i]*mn);{добавляем буквы, которые есть и в других словах}
 end;
if mn1=[] then writeln('Букв, которые не входят только в одно слово, нет!')
else
 begin
  writeln('Буквы, которые не входят только в одно слово:');
  for i:=1 to length(bk) do{идем по алфавиту,
  если буква есть в строке, но ее нет в котором по разу, выводим}
  if (bk[i] in mn1) then write(bk[i],' ');
 end;
readln
end.

Leave a Comment

57 − 48 =