Дана непустая последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят в два последних слова.
Как решать? помогите
http://forum.pascalnet.ru/index.php?showtopic=3767&hl=гласные+буквы
А можно хоть примерно набросать мою задачу?
Пробовал делать по другим примерам - не выходит
посмотри тему по ссылке и тебе многое должно стать понятней, только не пугайся сразу там сначала посложней методы, потом пороще.
http://forum.pascalnet.ru/index.php?showtopic=6972
Фантомас,
два последних слова - это после последной запятой, так?
const
glasn = ['a', 'e', 'i', 'o', 'u']; { можно поменять на русские }
var
s: string;
p, i: byte;
my_set: set of char;
begin
write('s = '); readln(s);
p := length(s);
while s[p] <> ',' do dec(p);
for i := p to length(s) do
if s[i] in glasn then include(my_set, s[i]);
for i := 0 to 255 do
if chr(i) in my_set then write(chr(i):3);
end.
Спасибо Вольво,
только почему-то прога считает гласные только в последнем слове.
И как предусмотреть, что последовательность слов заканчивается точкой?
klem4
Спасибо за ссылку, уже читаю
Фантомас, приведи пример строки, которую ты задаешь...
Если ты НЕ отклоняешься от того, что написано в задании, то все должно работать...
Ну вот, ввожу (в начале поменял на русские буквы)
дом,улица,фонарь,аптека.
Эскизы прикрепленных изображений
Блин... Ну конечно !!! После ПРЕДпоследней запятой...
const
glasn = ['a', 'e', 'i', 'o', 'u']; { Кириллица }
var
s: string;
p, i: byte;
my_set: set of char;
begin
write('s = '); readln(s);
p := length(s);
for i := 1 to 2 do begin
while (p > 1) and (s[p] <> ',') do dec(p);
dec(p)
end;
for i := p + 1 to length(s) do
if s[i] in glasn then include(my_set, s[i]);
for i := 0 to 255 do
if chr(i) in my_set then write(chr(i):3);
end.