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{создаем массив множеств}
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{для каждого множества }
mn:=[];
for j:=1 to n do
if j<>i then mn:=mn+m[j];{делаем множество из букв, котoрые входят в другие числа}
mn1:=mn1+(m[i]*mn);{добавляем буквы, которые есть и в других словах}
if mn1=[] then writeln('Букв, которые не входят только в одно слово, нет!')
else
writeln('Буквы, которые не входят только в одно слово:');
for i:=1 to length(bk) do{идем по алфавиту,
если буква есть в строке, но ее нет в котором по разу, выводим}
if (bk[i] in mn1) then write(bk[i],' ');
readln
end.
Объяснение:
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.
Объяснение: