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