Помощь - Поиск - Пользователи - Календарь
Полная версия: Задание на множество типа Set
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Фантомас
Дана непустая последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят в два последних слова.

Как решать? blink.gif blink.gif blink.gif помогите unsure.gif
Ozzя
Поиск
Фантомас
А можно хоть примерно набросать мою задачу? unsure.gif
Пробовал делать по другим примерам - не выходит dry.gif
klem4
посмотри тему по ссылке и тебе многое должно стать понятней, только не пугайся сразу там сначала посложней методы, потом пороще.
Разбиение на слова, все способы
volvo
Фантомас,
два последних слова - это после последной запятой, так?
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
Спасибо за ссылку, уже читаю
volvo
Фантомас, приведи пример строки, которую ты задаешь...

Если ты НЕ отклоняешься от того, что написано в задании, то все должно работать...
Фантомас
Ну вот, ввожу (в начале поменял на русские буквы)
дом,улица,фонарь,аптека.
volvo
Блин... Ну конечно !!! После ПРЕДпоследней запятой...

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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.