Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2011, 21:41   #1
sifa
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 13
По умолчанию из текстового файл получить 5 наиболее часто встречающихся слов и число их появлений (на Delphi)

Рассматривается текстовый файл INPUT.TXT, содержащий одно или несколько
предложений на английском языке, разделенных символом "." (точка). В конце
последнего предложения ставится "." (точка). Предложения начинаются с
заглавной буквы. Слова разделяются одним или несколькими пробелами. Между
словами допускаются символы пунктуации: "," (запятая), ";" (точка с запятой),
":" (двоеточие), "-" (тире). Символ "'" (апостроф) считается частью слова.
Другие символы пунктуации не используются. Перенос слов с одной строки на
другую не допускается.
Предполагая, что любое слово текста состоит не более чем из 20 букв,
получить 5 наиболее часто встречающихся слов и число их появлений.
Результаты записать в текстовый файл OUTPUT.TXT.
Исходные данные корректны и их проверка не требуется.

Пример файла исходных данных INPUT . TXT

Humpty Dumpty sat on the wall;
Humpty Dumpty had a great fall.
All the King's horses and the King's men
Couldn't put Humpty Dumpty in his place again.

Пример выходного файла OUTPUT.TXT для нашего примера

Humpty 3
Dumpty 3
the 3
King's 2
sat 1

программа в delphi, нужно на завтра, заранее спасибо!


______________
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.
Учтите это на будущее.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.11.2011 в 22:48.
sifa вне форума Ответить с цитированием
Старый 23.11.2011, 21:47   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
нужно на завтра
Цитата:
Зарплатама - нет! Работама - нет !
Нужна консоль или формы?
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 23.11.2011, 22:13   #3
sifa
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 13
По умолчанию

Честно не разбираюсь и не понимаю, скорее всего форма!
sifa вне форума Ответить с цитированием
Старый 23.11.2011, 22:16   #4
sifa
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 13
По умолчанию

Поможете, очень необходимо к завтрашнему дню!
sifa вне форума Ответить с цитированием
Старый 23.11.2011, 23:15   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
Подмигивание

Возможно быстро не помогут, а лучше сделать.
Предлагаю алгоритм:

Шаг 1. В цикле читаем текстовый файл по строкам.
Посимвольно просматриваем строку и выделяем слова по заданным признакам.
Каждое выделенное слово помещаем в односвязный список, состоящий из узлов вида:
Код:
type pnode = ^node;
         node = record
            s: string[20]; {слово}
            n: integer;     {счетчик}
            p: pnode;      {указатель на следующий элемент}
         end;
Добавление в список делаем по правилу: Просматриваем список и сравниваем слово в узле с новым словом. Если нет совпадения с новым словом, то это слово добавляем в конец списка иначе, при совпадении, увеличиваем счетчик.

На выходе имеем список со словами и числом их повторений.

Шаг 2. Сортируем список по убыванию счётчика.

Шаг 3. Печатаем первые m элементов.
Литература: Т.А. Павловска, Программирование на ЯВУ. Паскаль.
Тут имеются почти готовые программки.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 09.01.2012, 18:34   #6
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
Радость

Не мог бы автор вопроса выложить свою программу если доделал?
Ester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти в массиве наиболее часто встречающееся число. с++ lbvflbvf Общие вопросы C/C++ 52 23.05.2010 22:34
Delphi. Вывести наиболее часто повторяющуюся цифру из строки символов Kurai Помощь студентам 1 27.04.2010 23:04
Pascal: Наиболее часто встречающееся число в массиве. MaGWaY_minsk Помощь студентам 2 20.01.2010 00:22
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
Найти (в процентах) частоту появления каждого из m наиболее часто встречающихся элементов sk1p Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2008 23:57