{В алфавитном порядке вывести все звонкие согласные, которые входят
в каждое нечетное слово и не входят ни в одно четное слово.}
program bukva;
function UpCaseRus(C:char):Char;
var s1,s2:string;
R1:char;
begin
s1:='йцукенгшщзхъфывапролджэячсмитьбю';
s2:='ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';
if Pos(''+C,s1)>0
then R1:=s2[Pos(''+C,s1)]
else R1:=C;
UpCaseRus:=R1
end;
const Razd=[' ','.','!','?'];
const Zv =['Б','В','Г','Д','Ж','З','Л','М','Н','Р'];
var a,b,a1,m:set of char;
c:char;
s,fa,slovo:string;
f:text;
i,j:integer;
begin
a:=[];{множество содержащее звонкие из нечетных слов}
b:=[];{множество содержащее звонкие из четных слов}
writeln('Ваш текст запишите в файл TEXT1.PAS.И вводите это имя файла');
write('Введите имя файла =>');readln(fa);
assign(f,fa);reset(f);{открываем текстовый файл для чтения}
j:=1;{устанавливаем счетчик слов}
a:=Zv;a1:=[];
while not eof(f) do {пока не конец файла}
begin
readln(f,s);{читаем одну строку из файла}
for i:=1 to length(s) do {просматриваем строку}
if s[i] in Razd
then {если разделитель}
begin
if not((i>1) and (s[i-1] in Razd))
then begin
if (odd(j)) then begin a:=a*a1; a1:=[] end;
j:=j+1
end
end
else {если не разделитель}
begin
c:=UpCaseRus(s[i]);
if (c in Zv) then
if (odd(j)) {если нечетное слово}
then a1:=a1+[c]
else b:=b+[c]
end;
if (a1<>[]) and (odd(J)) then a:=a*a1;
end;
close(f);
m:=a-b;
write('В каждом нечетном:');
for c:='Б' to 'Р' do if c in a then write(c); writeln;
write('В четных:');
for c:='Б' to 'Р' do if c in b then write(c); writeln;
{Выводим содержимое множества М в алфавитном порядке}
write('По условию:');
for c:='Б' to 'Р' do if c in m then write(c);
if m=[] then writeln('Нет');
end.