Pascal. дана строка из строчных букв. между соседними словами - запятая, за последним словом - точка. составить программу, печатающую в алфавитном порядке: 1. все гласные буквы, которые входят в каждое слово. 2. все согласные буквы, которые не входят ни в одно слово.
function Гласные_в_слове(w:string):sequence of char;
begin
Result:=w.ToCharArray.Where(c->Pos(c,'аеёиоуыэюя')>0).Distinct
end;
begin
var s:=ReadlnString('>');
var w:=s.ToWords(',','.');
var P:=Гласные_в_слове(w[0]);
for var i:=1 to Length(w,0)-1 do begin
var Q:=Гласные_в_слове(w[i]);
P:=P.InterSect(Q)
end;
P:=P.Sorted;
if P.Count>0 then begin
Write('Гласные, которые есть в каждом слове: ');
P.Println(',')
end
else
Writeln('Нет ни одной одинаковой гласной во всех словах');
var R:='бвгджзйклмнпрстфхцчшщъь'.ToCharArray.ToList;
foreach var c in s do
if c in R then R.Remove(c);
if R.Count>0 then begin
Write('Согласные, которых нет ни в одном слове: ');
R.Println(',')
end
else
Writeln('Все согласные присутствуют в тексте')
end.
Тестовое решение
> фонарик,барахолка,биосфера,волокуша,макароны.
Гласные, которые есть в каждом слове: а,о
Согласные, которых нет ни в одном слове: г,д,ж,з,й,п,т,ц,ч,щ,ъ,ь