Вывести на экран все гласные буквы, которые не входят более чем в одно слово - Turbo Pascal
Формулировка задачи:
Решение задачи: «Вывести на экран все гласные буквы, которые не входят более чем в одно слово»
const
rul:string='АЕЁИОУЫЭЮЯ';
rll:string='аеёиоуыэюя';
type st=set of char;
var
w:string;
s:array [0..4] of st;
i:integer;
function G(c:char):char;
var
i:integer;
begin
i:=pos(c,rll);
if i>0 then G:=rul[i] else G:=c;
end;
procedure CreateSet(var s:st;t:string);
var
i:integer;
begin
s:=[];
for i:=1 to length(t) do
if pos(t[i],rll+rul)>0 then Include(s,G(t[i]));
end;
begin
for i:=1 to 4 do begin
write('Введите слово ',i,':');
readln(w);
CreateSet(s[i],w);
end;
s[0]:=(s[1]-s[2]-s[3]-s[4])+(s[2]-s[1]-s[3]-s[4])+(s[3]-s[1]-s[2]-s[4])+(s[4]-s[3]-s[2]-s[1]);
if s[0]=[] then writeln('Нет букв!') else begin
write('Буквы:');
for i:=1 to length(rul) do
if rul[i] in s[0] then write(rul[i],' ');
end;
readln;
end.
Объяснение кода листинга программы
Данный код написан на языке Turbo Pascal и решает задачу, которая заключается в выводе на экран всех гласных букв, которые не входят более чем в одно слово.
Константа rul содержит все гласные буквы, а константа rll содержит все согласные буквы русского алфавита.
Тип st представляет собой множество символов, а переменная s является массивом, содержащим множество символов.
Функция G принимает символ и возвращает его, если он есть в константе rul, иначе возвращает сам символ.
Процедура CreateSet создает множество s из строки t. Если в строке t есть гласные буквы, то они добавляются в множество s.
В основной части кода пользователю предлагается ввести четыре слова. После ввода слов создается множество s для каждого слова. Затем происходит проверка: если множество s пустое, выводится сообщение Нет букв!. В противном случае выводятся все гласные буквы, которые есть в множестве s.