Projets de programmation

une méthode de saisie de texte pour téléphone portable

Dans le cadre de ce projet de programmation vous réaliserez un programme qui devra simuler la méthode de saisie de texte T9©.

L'arrivée des smartphones avec écrans tactiles et claviers virtuels a signé la fin de l'utilisation de cette méthode, mais elle reste cependant un exercie intéressant de programmation.

Description du projet

L'objectif est d'écrire un programme qui permette de simuler la saisie de texte que l'on retrouve sur les téléphones portables (la méthode T9©).

La saisie ne devra impérativement s'effectuer qu'avec l'utilisation de 14 touches :

La bonne réalisation de ce projet repose sur une utilisation poussée des structures de données et leur manipulation, ainsi que sur la définition du format du fichier contenant les mots. Il est donc indispensable de consacrer du temps à une réflexion sur ces structures et ce format.

Travail à effectuer

Le programme devra lire la liste des mots dans un fichier quand il se lance.

L'utilisateur pouvant rajouter des mots à la liste, il faudra que le fichier soit modifié, au plus tard, avant de quitter le programme.

Les mots ne sont pas présentés à l'utilisateur au hasard. L'ordre dans lequel ils sont présentés respecte certaines priorités, comme par exemple la fréquence d'utilisation de tel ou tel mot par l'utilisateur. Pour éviter que cette mémoire des interactions soit perdue, il faut également stocker ces priorités dans le fichier, avec chaque mot.

L'écriture du programme répondant à ce projet peut devenir rapidement insurmontable si l'on ne découpe pas le code en plusieurs procédures ayant chacune une tâche bien précise. Il faudra donc s'astreindre à écrire et tester ces procédures au fur et à mesure. Ceci a l'avantage de faire avancer votre travail plus rapidement et de ne pas avoir à revenir sur du code qui n'a pas été testé et validé.

Liste de mots

Pour éviter de la saisie inutile, je vous propose de télécharger le fichier dictionnaire.txt. Comme base de travail vous pouvez commencer par télécharger le fichier dictionnaire-SA.txt qui est une version sans accents. Chacun contient un peu plus de 250 000 mots de la langue française (conjugaisons comprises). C'est un fichier texte avec un mot par ligne et vous ne devriez avoir aucune difficulté à le lire avec votre éditeur de texte favori. Si vous rencontrez un quelconque problème avec ce fichier, faites m'en part le plus rapidement possible.

Étapes de réalisation

Pour structurer votre travail, il est conseillé de respecter les étapes ci-dessous :

Avant de vous lancer dans quelque programmation que ce soit, je veux que vous m'exposiez votre réflexion sur les structures de données, les différentes procédures et les méthodes de traitement auxquelles vous avez songé. Ici, la définition du format du fichier dans lequel sont stockés les mots est également très importante et conditionne les traitements que vous aurez à faire ensuite. Vous ne programmerez donc qu'une fois vos choix validés.

L'étape suivante sera de réaliser un programme qui lise un fichier, en fasse une représentation en mémoire et soit capable de créer une phrase à partir de mots. Dans cette étape vous pourrez simuler l'interaction avec un simple affichage dans le terminal ou, plus compliqué, mais plus réaliste, réaliser une interface. Vous trouverez les références nécessaires et quelques exemples sur la page dédiée.

Enfin, dans une dernière étape, votre programme devra être capable de se rendre compte qu'un mot n'existe pas et proposer à l'utilisateur d'entrer un nouveau mot. Il devra donc modifier le dictionnaire et écrire ce dernier pour qu'il soit rechargé lors de la prochaine exécution.

Et la complexité dans tout ça ?

Ce projet se porte, de par la nature du support matériel auquel elle est destinée, à une discussion sur la complexité.

Quelle est la capacité mémoire nécessaire au bon fonctionnement du programme ?

Quels sont les points forts et les points faibles de la méthode, telle que vous la présentez, algorithmiquement parlant ?