Гость Оʻzbek tili Архивный вопрос

Дан текст, содержащий не более 10 слов, из строчных русских букв, между соседними словами – запятая, за последним словом - точка. Составить программы, в которых напечатать в алфавитном порядке: все гласные буквы, которые входят хотя бы в одно слово более двух раз.
Гласные буквы – а, е, и, о, у, ы, э, ю, я;
Задача на множества помогите по паскалю
функции не используйте. срочно нужно до завтра

5 комментария:
guest да я в программе проверю и вам сообщу
guest хорошо
guest Уговорил-таки! Упорный... ;-)
guest Пьяную кухарку уговаривать не намного дольше.
guest Автор хочет \"сделайте мне красиво\", но не может сказать, акварель, масло, или ржавым гвоздём на кирпичной стене.

Ответы

Гость Гость

// PascalABC.NET 3.2, сборка 1467 от 02.06.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var sg:=[\'а\',\'е\',\'и\',\'о\',\'у\',\'ы\',\'э\',\'ю\',\'я\'];
  var a:=ReadlnString(\'Вводите текст: \').ToWords(\',\',\'.\');
  var r:set of char=[];
  for var i:=0 to a.Length-1 do begin
    var b:=a[i].Where(c->c in sg).GroupBy(t->t).Select(t->(t.Key,t.Count));
    foreach var t in b do
      if t[1]>2 then r+=[t[0]];
    end;
  var s:=\'\';
  foreach var c in r do s+=c;
  s.OrderBy(t->t).Println(\',\')
end.

Пример
Вводите текст:  Дает,корова,молоко,а,жираф,это,длинношеее,животное.
е,о

комментариев 3 :
foreach var c in r do s+=c; s.OrderBy(t->t).Println(\',\')
это последнее
Спасибо большое за Вашу помощь