Вопрос № 173589: Добрый вечер, уважаемые эксперты! Решите пожалуйста эту задачу. Написать программу - эмулятор системы Т9 мобильного телефона. Символы должны набираться нажатием цифр на клавиатуре компьютера. Расположение и соответствие букв цифрам должно быть...
Вопрос № 173589:
Добрый вечер, уважаемые эксперты! Решите пожалуйста эту задачу.
Написать программу - эмулятор системы Т9 мобильного телефона. Символы должны набираться нажатием цифр на клавиатуре компьютера. Расположение и соответствие букв цифрам должно быть такое же, как и на мобильном телефоне. Программа должна предлагать варианты слов. Должна быть предусмотрена возможность добавления новых слов и возможность нескольких словарей (для разных языков).
Отвечает vladisslav, 5-й класс :
Здравствуйте, Андреев Юрий Николаевич. Времени пока особо нет, так что делаю ответом тот простенький вариант из первого комментария. В режиме словаря 2-9 - ввод букв с автоматическим выбором из словаря * - перебор вариантов, после последнего варианта переключение в режим побуквенного ввода . - удаление последнего символа 1 - ввод знаков и подтверждение введенного слова 0 - пробел и подтверждение введенного слова В режиме побуквенного ввода 0-9 - ввод букв и цифр, переход к следующей
позиции с 1-2секундной задержкой/по нажатию другой цифры сразу . - удаление последнего символа * - подтверждение и добавление в словарь Словарь лежит в файле dict по одному слову на строчке, предполагается ASCII Для изменения языка ввода нужно поменять сопоставление цифр/букв (функция fill_en(), сделать еще одну по аналогии) и загрузить словарь из другого файла поменять dict_file и вызвать dict=load_dictionary(dict_file);, предварительно желательно удлить
старый словарь, так как будут утечки. Словарь - обычное b+ дерево,поле word_count можно убрать, так как не используется. Алгоритм возможно запатентован в некоторых странах, так что в случае экспорта оборудования нужно поискать патенты и при необходимости купить лицензию/произвести отчисления. Переключения языков, юникод, удаление слов, буквы в разных регистрах и перемещение курсора может быть сделаю позже, так как тема интересная и может пригодиться в своих железках.
Приложение:
Ответ отправил: vladisslav, 5-й класс
Ответ отправлен: 25.10.2009, 03:11
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255804
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.