Было занятно сделать все это в виде одного оператора)))
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
ReadlnString('->').ToWords(Arr(',','.'))
.Select(w->w.Where(c->Pos(c,'аеёиоуыэюя')>0).GroupBy(x->x)
.Select(x->(x.Key,x.Count)).Where(x->x[1]>2)).Where(x->x.Count>0)
.SelectMany(x->x).Select(x->x.Item1).Distinct.OrderBy(x->x)
.Println(',')
end.
Пример
-> дает,корова,молоко,длинношеее,животное,жираф,катамаран.
а,е,о