Множества. Дана непустая последовательность слов из строчных русских букв: между...

0 голосов
166 просмотров

Множества.
Дана непустая последовательность слов из строчных русских букв:
между соседними словами-запятая,за последним словом-точка.Напечатать в алфавитном порядке все гласные буквы,которые не входят хотя бы в одно чётное слово.


Информатика (19 баллов) | 166 просмотров
0

Мова?

0

Зачем, видя задание на русском языке, лезть с вопросами про "мову"?

Дан 1 ответ
0 голосов
Правильный ответ
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadlnString.ToWords(Arr(',','.'));
  var (i,ssg):=(1,'аеёиоуыэюя');
  var sg:=['а','е','ё','и','о','у','ы','э','ю','я'];
  while i<=a.Length do begin<br>    foreach var c in a[i].ToCharArray do
      if c in sg then Exclude(sg,c);
    i+=2
    end;
  for var j:=ssg.Length downto 1 do
    if not (ssg[j] in sg) then Delete(ssg,j,1);
  ssg.ToCharArray.Println(',')
end.


image
(150k баллов)
0

Самая большая проблема была в том, что буква "ё" в кодовой таблице стоит вне прочих русских букв и нарушает порядок сортировки. Пришлось изворачиваться. А вообще множества, как они в Паскале реализованы, это пережиток прошлого и нужно применять их лишь там, где они совершенно необходимы.