Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 276

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста с написанием программы работающим данным образом
1. Производится ввод строки с клавиатуры некого набора букв без пробелов
2. Затем в этой строке выделяются подряд идущие буквы если выделенная часть образует слово русского языка и причем выделены все слова то выводится пустой экран
если же выделены несуществующие или выделены не все слова то выводятся недостающие
Заранее спасибо
P.S. задача представляет из себя учебное пособие

romik007 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: romik007 (статус: Посетитель)
Вопрос отправлен: 8 января 2009, 02:36
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 8 января 2009, 19:20; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 8 января 2009, 03:02 [#1]:

Если программа не будет пользоваться словарём, то задача будет по силам только искусственному интеллекту. В условии задачи об этом ничего не сказано...
Галочка "подтверждения прочтения" - вселенское зло.
romik007

romik007 (статус: Посетитель), 8 января 2009, 17:49 [#2]:

разрешено использованеи какого либо текстового фаила с набором возможных слов будь то электронный словарь формата txt или еще чтото
Вадим К

Вадим К (статус: Академик), 8 января 2009, 19:20 [#3]:

ну тогда в чем проблема? Наверно только в том, что полного словаря русского языка не существует и врядли появиться.
А алгоритм будет просто. берём нашу строку с первого символа и по очереди перебираем слова с словаря и сравниваем с началом строки. Если нашли - отрезаем и перемещаемся дальше, если нет, то перемещаемся на один символ. и повторям вышеописанное до конца строки.
Сразу предложение по ускорению перебора. слова можно разбить на 33 (или всё таки 30? на ы, ь, ъ нормальных слов нет вроде. Хотя по поводу ы я сомневаюсь) словарика по каждой букве - перебор будет идти быстрее. Также слова в словаре не даром отсортированы. и перебор можно остановить ещё на середине, убедившись, что слово не будет найдено. сумарно это даст прирост скорости где то в 50 раз. Также в этих словарях можно поубирать первую букву - это уменшит файл и даст прирост скорости.
В случае неудолетворительной работы, можно разбить на словарики по первым двум символам. так как не все комбинации существуют - то словарей будет меньше 1000, зато прирост скорости будет большой. Плюс ко всему, что бы не напороться на потерю скорости в поиске файла, можно сделать папки на каждый символ и туда поместить словарики.
В общем, дерзайте:)
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:41
Выполнено за 0.02 сек.