IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Про слова, Задача по работе с текстом
-Студент-
сообщение 11.04.2007 18:31
Сообщение #1


Гость






Здравствуйте. Нужна помощь.
Нужно написать программу, которая бы высчитывала, сколько раз определенное слово (слова) встречается в тексте.
Поискал по форуму. Нашел на форуме пару решенных задачек по работе с текстовыми файлами, но там совсем не то. Помогите кто чем может пожалуйста.
 К началу страницы 
+ Ответить 
klem4
сообщение 11.04.2007 19:12
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


function Count(s, word: String): Byte;
const
limits = ['.', ',', ';', '!', '?', ' ']; // можно увеличить список разделителей
var
p: Byte;
begin
p := Pos(word, s);
if (Length(s) = 0) or (p = 0) then Count := 0 else
if ((p = 1) or (s[pred(p)] in limits))
and ((s[p + Length(word)] in limits) or
((p + Length(word) - 1) = Length(s))) then
Count := 1 + Count(Copy(s, p + Length(word) + 1, 255), word)
else Count := 0 + Count(Copy(s, P + Length(word) + 1, 255), word)
end;


Функция вернет количество вхождений слова word в строку s

ps надо потестировать еще.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 11.04.2007 19:29
Сообщение #3


Гость






Спасибо. Но по-моему это немножко не то что нужно.
Или это не весь код? Мне бы желательно от начала до конца, если не затруднит. Сроки жмут просто. Завтра в обед сдавать. Знакомые сказали что тут умные люди сидят, и могут помочь. Вот я и обратился.
 К началу страницы 
+ Ответить 
klem4
сообщение 11.04.2007 19:38
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


всетаки не совсем верно функция работает, сейчас исправлю

исправлено

Вот посмотри пример вызова, а вообще тебе сюда: Строки


function Count(s, word: String): Byte;
// ...
end;

var
s, w: string;

begin
s := 'mila mila mama ramu s milom milamila milamilamila lalala mila';
w := 'mila';
writeln(COunt(s, w));
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 11.04.2007 19:52
Сообщение #5


Гость






Текст должен быть на русском языке. Ну в принципе значения не имеет. Можно любой подставить.
Дело в том что текст во внешнем файле должен быть, а в нем уже программа должна определить. И нужно не 1, а 2 слова.
И в идеале еще программа должна посчитать сколько раз эти 2 слова идут друг за другом.
В общем куча заморочек, а сдавать завтра. Вот такая вот скверная ситуация получается.

Тему просмотрел. Сразу скажу что знаний у меня самый минимум. Поэтому и попросил.
 К началу страницы 
+ Ответить 
South Fruit
сообщение 12.04.2007 16:06
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской

Репутация: -  0  +


Помогите человеку, со мной учится unsure.gif

Сообщение отредактировано: South Fruit - 12.04.2007 16:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.06.2025 18:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"