Fondements de l’Informatique I4c Licence L2 Universit´e de Bourgogne
Automates : TP
Le but de ce TP est d’´ecrire un programme pour simuler le fonctionnement d’un automate d´eterministe. Pour cela on souhaite cr´e´er une classe comprenant les m´ethodes de base pour manipuler les automates d´eterministes.
On supposera que l’automate fonctionne sur l’alphabet latin (tous les caract`eres pouvant etre stock´es dans une variable de type char).
L’automate pourra ˆetre repr´esent´e par sa matrice de transition, i-e. un tableau a deux di- mensions donnant, pour chaque ´etat q et chaque lettre a de l’alphabet, l’´etat dans lequel on arrive si on emprunte la transition d’´etiquette a en partant de q. Dans ce cas, on aura besoin d’un tableau pour stocker les lettres de l’alphabet.
On pourra supposer, par convention, que l’´etat 0 est l’´etat initial et on pourra utiliser un tableau de bool´eens pour savoir quels sont les ´etats qui sont finals ou non.
1. D´efinir les champs de la classe Automate.
2. D´efinir un constructeur qui cr´ee un automate an´etats et aucune transition.
3. D´efinir une m´ethode qui ajoute une transition `a l’automate.
4. D´efinir une m´ethode qui marque un etat q de l’automate comme “final”.
5. D´efinir une m´ethode qui teste si un mot (une chaine de caract`eres) est reconnu par l’au- tomate.
6. D´efinir une m´ethode qui affiche tous les mots de longueur inf´erieure `a n reconnus par l’automate.
7. Tester le fonctionnement `a l’aide des automates et mots du premier exercice du TD sur les automates.
1