Automate et test sur "IF"

htmche Messages postés 10 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 10 mars 2013 - 9 mars 2013 à 18:18
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 10 mars 2013 à 20:35
Salut tout le monde , j'ai un problème et je veut votre aide SVP , le probléme c'est:
d'ecrire un programme permettant de vérifier si une boucle de condition "if" a été écrite sans erreurs. la boucle est dans un fichier texte ou son chemin d'accès est donné par l'utilisateur. la boucle est correcte si elle vérifie l'automate suivant . On vous demande d'écrire un programme d'implémenter cet automate . ce programme contient la fonction verif() qui permet de vérifier la validité du boucle condition "if".
ça c'est l'automate :

merci d'avance .

4 réponses

htmche Messages postés 10 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 10 mars 2013
9 mars 2013 à 18:22
désolé c le lien d'image plus clair : http://hpics.li/272ce2f
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
9 mars 2013 à 20:34
Salut,

ouaou, vaste sujet !

il faut créer une matrice "de transition" et la mettre en bijection avec le graphe.
Le nombre de colonnes est le nombre de symboles différents, comme espace, 'i', 'f', '(' ect...
Le nombre de lignes est le nombre d'états.
Les états terminaux sont négatifs par convention, les états "récursifs" sont supérieur à une constante (1000 par exemple)
On compte le nombre d'états en pseudo code :
Commence dans l'état 1 qui attends espace ou 'i'

ETAT 1 : si 'i', passe dans l'état 2, si espace reste dans l'état 1
ETAT 2 : si 'f', passe dans l'état 3
ETAT 3 : si '(', passe dans l'état 5, si espace passe dans l'état 4
ETAT 4 : si espace, reste dans 4, si '(', passe dans l'état 5
ETAT 5 : si chiffre, passe dans l'état 6
ect... ect..

Il faut ensuite plusieurs fonction comme _isDigit, atoi ect....

il faut créer une fonction qui renvoi le numéro de l'état selon le caractère "avalé" par l'automate
un grand switch(char(c)) peut faire l'affaire

je m'arrète là, car cela est un sujet vraiment trop vaste.

Tu pourras certainement trouver des exemples et même, avec un peu de courage regarder le code des outils open source comme flex, yacc (yet another compiler compiler)...

bye...
0
htmche Messages postés 10 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 10 mars 2013
10 mars 2013 à 15:47
Merci , beaucoup mon ami maintenant ce mieux , chui débutant en C , s'il 'y'a une possibilité d'eclairir le chemin avec un bout de code et merci je sais pas mme comment je commence à coder cette solution .
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
10 mars 2013 à 20:35
Hello,
Demande à tes profs ->lire ici
Je rappelle que nous ne faisons pas le travail des autres. C'est d'ailleurs indiqué dans le règlement que tu as validé...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous