![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
pank |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Женский Репутация: ![]() ![]() ![]() |
Дана задача: создать множество гласных букв из вводимой с клавиатуры строки. Я вроде бы все написала (чего туту писать то)
Код 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]); Проблема: если в строке имеется две одинаковые буквы, то в создоваемое множество попадает только одна из них, а нужно все - хоть десять одинаковых. Где может быть недочет? Сообщение отредактировано: volvo - 27.01.2006 11:32 -------------------- Наталка
|
![]() ![]() |
hiv |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
строка - это тоже как множество символов только упорядоченная, можно туда гласные позапихивать:
Код var str1: string; ... str1:=''; for i:=1 to length(str) do if str[i] in gb then str1:=str1+str[i]; -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Недочет - в твоем понимании смысла множества. Помнишь тот анекдот?
Вопрос: сколько поворотов в Лондоне? Ответ: два. Правый и левый. (уже можно смеяться ![]() Вот скажи, сколько в математике чисел 12? или там, "пи"? Их всего по одному. Сколько букв "а" в руссом алфавите? Всего одна, хотя в любой книжке многие тысячи ее изображений. Сколько гласных букв существует? Десять, мы все знаем это с первого класса (как максимум ![]() Если же тебя по какой-то причине не удовлетворяет такой ответ, то вопрос надо уточнить примерно так: сколько гласных букв каждого вида встречается в строке? И тогда конструкция должна быть другая. Какая именно - ну, например, массив записей, состоящих из буквы и количества ее вхождений. Можно поступить и так, как сказал hiv - для этого нужно просто выкинуть из строки все согласные. Но мне почему-то кажется, что задачу нужно понимать в первом смысле и не заботиться о количестве (если уж речь идет о множествах). Буквы, как объекты языка, неразличимы. Как типографские символы - различимы. Ты уж определись, что тебе надо.. ps Pank, а как твой DVD - подключился? Ты уж скажи людям.. неудобно - мы же отвечали, переживали.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Где может быть недочет? Множество и мультимонжество - разные вещи, в паскале мультимножество сделать нельзя. Поэтому храниь надо по другому, например в строке, как сделал hiv ;) -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 15:06 |