Тема: Т9
Показать сообщение отдельно
  #5  
Старый 09.12.2007, 09:39
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Вот чего написалось в итоге (во вложении).

Основная идея такая - при нажатии кнопки с буквами находим перебором все возможные комбинации этих букв и проверяем - нет ли в словаре слов, начинающихся с такой комбинации. Если есть - добавляем комбинацию в список возможных вариантов. При нажатии следующей буквы повторяем цикл сначала.

Словарь представляет собой простой текстовый файл, одна строчка - одно слово. Имя словаря такое же как у exe-файла с расширением ".dic". Обязательно в словаре должен быть алфавит:
а
б
..
я

Остальные слова можно вбивать какие хотите.

После первого использования программы строчки в словаре приобретут вид "x;str", где "x" - эмпирическая частота использования слова, "str" - само слово. При этом в словарь по-прежнему можно добавлять слова.

Частота определяется эмпирически - т.е. чем чаще слово используется в наборе, тем "выше" оно всплывает в словаре. Таким образом, наиболее употребимые слова будут предлагаться чаще. Слово считается использованным если нажат пробел или точка.

Тут есть еще над чем поработать - когда длина слова приближается к 10, поиск заметно тормозит. Т.е. надо бы оптимизировать, но, поскольку такой производственной необходимости у меня нет, то и не буду

Интересная задачка, спасибо.
Вложения
Тип файла: 7z T9Emu.7z (14.5 Кбайт, 74 просмотров)
Ответить с цитированием