![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
NeWT |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот у меня 6 числа экзамен был. И там попалась мне одна задача, которую я так и не смог решить, а очень интересно было бы узнать и разобраться. Вообщем вот:
Ввести строку символов. Разделителями в строке могут быть "_", ":",...и т.д. Необходимо удалить пару слов являющимися анаграммами, и содержащих букву, которую необходимо ввести с клавиатуры... P.S. Условие не совсем точное (не успел переписать на листочек) Был бы весьма благодарен!!! :thanks: |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
NeWT
Ну так в чем проблема? Вводишь строку символов, заменяешь в ней все символы, которые могут быть разделителями слов на пробелы, в ФАКе есть функция, разбивающая строку на слова... Вот эта функция определяет, являются ли 2 слова анаграммами... Код function is_anagram(s1, s2: string):boolean; var b: boolean; i, p: byte; begin is_anagram := false; if length(s1) <> length(s2) then exit; for i := 1 to length(s1) do begin p := pos(s1[i], s2); if p = 0 then exit; delete(s2, p, 1) end; is_anagram := true end; Если слова s1 и s2 - анаграммы, то функция вернет True, иначе - False... Все,что осталось - собрать это в одну программу... ;) |
![]() ![]() |
![]() |
Текстовая версия | 1.09.2025 18:14 |