![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
-Даша- |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Ввести 2 строки (это я знаю как делать), найти кол-во слов (это тоже вроде умею) и
найти кол-во одинаковых слов (КАК?) |
Sozialist |
![]()
Сообщение
#2
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Можно использовать следующую структуру:
type Алгоритм: Выделяем 1 слово, записываем в ms[i].word, inc(ms[i].count). Выделяем 2 слово, если одно совпадает с каким нибудь ms[j].word, то делаем inc(ms[j].count), в противном случае делаем так же, как с первым словом. В конце концов имеем массив записей, который считает кол-во всех слов. Если ms[i].count>1, то ms[i].word является повторяющимся словом с кол-вом повторений ms[i].count. Может кто предложит более мощный вариант с меньшей затратой памяти, ибо я использовал ее безжалостно. |
-Даша- |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Можно использовать следующую структуру: type Алгоритм: Выделяем 1 слово, записываем в ms[i].word, inc(ms[i].count). Выделяем 2 слово, если одно совпадает с каким нибудь ms[j].word, то делаем inc(ms[j].count), в противном случае делаем так же, как с первым словом. В конце концов имеем массив записей, который считает кол-во всех слов. Если ms[i].count>1, то ms[i].word является повторяющимся словом с кол-вом повторений ms[i].count. Может кто предложит более мощный вариант с меньшей затратой памяти, ибо я использовал ее безжалостно. Что-то сложновато, а можно ещё раз и по пунктам? Ну, например, вот как прописать следующее: 1)находим слова 2)записываем найденные слова в отдельные массивы (а если этих слов много, то что делать?) 3)сравниваем полученные массивы со словами 4)находим кол-во одинаковых слов 5)выводим результат (сколько одинаковых слов было найдено) |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Любым способом отсюда: Разбиение на слова. Все способы. разбиваешь обе строки на слова, и потом проходишь по одному массиву (или списку, что ты там выберешь), и проверяешь, есть ли текущее слово во втором массиве (или списке). Если есть - то увеличиваешь счетчик, и переходишь к след. слову в первой последовательности...
|
-Даша- |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
function Count(Const s, w: String; start: Byte): Byte;
const limits = ['.', ',', ';', '!', '?', ' ']; var p: Byte; begin p:= Pos(w, Copy(s, start, 255)); if (start > length(s)) or (p = 0) then Count := 0 else if (((start + p - 2) = 0) or (s[ start + p - 2] in limits)) and (((start + p + length(w) - 2) = Length(s)) or (s[start + p + length(w) - 1] in limits)) then Count := 1 + Count(s, w, start + p + length(w) - 2) else Count := 0 + Count(s, w, start + p + length(w) - 2); end; begin writeln(count('papa mama i doch mili mili papu s mamoi mama', 'mili',1)); readln; end. Вот программка, которая находит кол-во одинаковых слов. У меня такой вопрос: как её изменить так, чтобы: 1)можно было вводить строку не вот здесь: writeln(count('papa mama i doch mili mili papu s mamoi mama', 'mili',1)); , а во время выполнения самой программы 2)чтобы она искала не заданные слова, а искала слова сама и выводила их кол-во writeln(count('papa mama i doch mili mili papu s mamoi mama', 'mili',1)); |
Sozialist |
![]()
Сообщение
#6
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
2 требование разрушает данный тобой код. Еще раз см. сообщения номер 2 и 4. Это то, что тебе нужно.
А вводить строку во время программы просто: Var Если этого не знаешь, то как собираешься решать задачу? Давай читай теорию. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:04 |