Строка из одинаковых слов |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Строка из одинаковых слов |
18192123 |
Сообщение
#1
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Даны две строки, состоящие из слов. Получить 3-ю строку, состоящую из слов, которые содержаться в обеих строках.
Правильно ли я понимаю : сначала мне нужно разбить обе строки на слова, а потом их сравнивать? А вот каким способом? |
volvo |
Сообщение
#2
|
Гость |
Достаточно разбить на слова одну строку, а потом просто проверять через Pos (ну, или BMSearch есть уже реализованный, если тебе нельзя пользоваться встроенными функциями Паскаля), присутствует или нет каждое слово во второй строке... Если присутствует - добавить в строку-результат...
|
Bokul |
Сообщение
#3
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Можно и так, это один из способов.
Цитата А вот каким способом? Как разбивать? Выбирай любой наиболее удобный для тебя. -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
18192123 |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
а потом просто проверять через Pos (ну, или BMSearch есть уже реализованный, если тебе нельзя пользоваться встроенными функциями Паскаля), присутствует или нет каждое слово во второй строке... А если мне нельзя этого использовать, только length, тогда как мне проверить? |
Bokul |
Сообщение
#5
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Т.е. тебе нельзя написать свой аналог pos? Если нет, то делай как ты описала.
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
klem4 |
Сообщение
#6
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата Достаточно разбить на слова одну строку, а потом просто проверять через Pos (ну, или BMSearch есть уже реализованный, если тебе нельзя пользоваться встроенными функциями Паскаля), присутствует или нет каждое слово во второй строке... Если присутствует - добавить в строку-результат... Pos в чистом виде не пойдет Ведь слово из первой строки во второй может не присутсвовать отдельно, но являться частью дугого слова ... Хотя все это можно и с Pos обыграть при желании -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#7
|
Гость |
Я уже 5 раз показывал, КАК именно это делается - в 3 строках кода... Еще раз привести? Поиск что, уже можно отменять?
|
18192123 |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
|
klem4 |
Сообщение
#9
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата Я уже 5 раз показывал, КАК именно это делается - в 3 строках кода... Еще раз привести? Поиск что, уже можно отменять? dry.gif Так я же не сказал что нельзя сделать через Pos ... Кстати что-то я не могу в поиске Pos рукодельный найти пока, так что могу предложить такой вариант function _Pos(const subS, s: String): Integer; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
18192123 |
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
у меня получилось разбить на слова первую строку, больше ничего не могу сделать...
не пойму, как сравнить со второй...( даже с использованием функции function _Pos(const subS, s: String): Integer)
Сообщение отредактировано: 18192123 - |
arhimag |
Сообщение
#11
|
Знаток Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: 2 |
Предложение :
Возьми и засунь слова в массив, дальше сделай тоже самое для второй строки а дальше просто пробегись по всему первому массиву проверяя есть ли такой же элемент во втором массиве -------------------- Чего хочет женщина – того хочет Бог
|
Malice |
Сообщение
#12
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Предлагаю поменять твою функцию "Slovo" так, чтобы она возвращала i-тое слово из строки s, тогда все твои подобные задачи гораздо упростятся. В этой можно будет сдела перебор, типа:
for i:=1 to n1 do |
18192123 |
Сообщение
#13
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Предлагаю поменять твою функцию "Slovo" так, чтобы она возвращала i-тое слово из строки s, тогда все твои подобные задачи гораздо упростятся. В этой можно будет сдела перебор, типа: for i:=1 to n1 do что- то вроде этого?
|
Malice |
Сообщение
#14
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Нет, типа этого:
function Slovo(s:string;n:integer):string; Еще понадобится подсчет кол-ва слов: n:=1; while slovo(s,n)<>'' do inc (n); Сообщение отредактировано: Malice - |
18192123 |
Сообщение
#15
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
что здесь не так (программа не работает... )
|
Malice |
Сообщение
#16
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
18192123 |
Сообщение
#17
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
|
Ellsa |
Сообщение
#18
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
а может кто-нибудь сказать,что такое c и почему не должно быть в кавычках пробела....просто у меня очень похожая задача...но я не могу понять....что такое c? Помогите,пожалуйста!
|
Malice |
Сообщение
#19
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
а может кто-нибудь сказать,что такое c и почему не должно быть в кавычках пробела....просто у меня очень похожая задача...но я не могу понять....что такое c? Помогите,пожалуйста! с- номер текущего (обрабатываемого) слова в строке Функция slovo возвращает пустую строку если запрашивается слово, которого нет (всего 5 слов, просится 4-тое) |
Ellsa |
Сообщение
#20
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
то есть наоборот....всего 4 слова и просится 5-ое?
а n-количество слов в строке получается? |
Текстовая версия | 22.12.2024 8:12 |