Помощь - Поиск - Пользователи - Календарь
Полная версия: Множество из гласных букв
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
pank
Дана задача: создать множество гласных букв из вводимой с клавиатуры строки. Я вроде бы все написала (чего туту писать то)
Код
const gb=['a','o','e','i','u','y','j'];
var
str:string;
i:integer;
t:set of char;
BEGIN
writeln('stroka - ?'); readln(str);
for i:=1 to length(str) do
if str[i] in gb then include(t,str[i]);

Проблема: если в строке имеется две одинаковые буквы, то в создоваемое множество попадает только одна из них, а нужно все - хоть десять одинаковых. Где может быть недочет?
hiv
строка - это тоже как множество символов только упорядоченная, можно туда гласные позапихивать:
Код

var
str1: string;
...
str1:='';
for i:=1 to length(str) do
   if str[i] in gb then str1:=str1+str[i];

Lapp
Недочет - в твоем понимании смысла множества. Помнишь тот анекдот?
Вопрос: сколько поворотов в Лондоне? Ответ: два. Правый и левый. (уже можно смеяться smile.gif )
Вот скажи, сколько в математике чисел 12? или там, "пи"? Их всего по одному. Сколько букв "а" в руссом алфавите? Всего одна, хотя в любой книжке многие тысячи ее изображений. Сколько гласных букв существует? Десять, мы все знаем это с первого класса (как максимум smile.gif ). Так чего же ты еще хочешь? Если понимать задачу, как ты ее написала, буквально - то все правильно. А именно, вопрос можно перефразировать так: какие гласные буквы встретились в строке?
Если же тебя по какой-то причине не удовлетворяет такой ответ, то вопрос надо уточнить примерно так: сколько гласных букв каждого вида встречается в строке? И тогда конструкция должна быть другая. Какая именно - ну, например, массив записей, состоящих из буквы и количества ее вхождений. Можно поступить и так, как сказал hiv - для этого нужно просто выкинуть из строки все согласные. Но мне почему-то кажется, что задачу нужно понимать в первом смысле и не заботиться о количестве (если уж речь идет о множествах). Буквы, как объекты языка, неразличимы. Как типографские символы - различимы. Ты уж определись, что тебе надо..

ps Pank, а как твой DVD - подключился? Ты уж скажи людям.. неудобно - мы же отвечали, переживали..
klem4
Цитата
Где может быть недочет?


Множество и мультимонжество - разные вещи, в паскале мультимножество сделать нельзя. Поэтому храниь надо по другому, например в строке, как сделал hiv ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.