Automate et test sur "IF"

Signaler
Messages postés
10
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
10 mars 2013
-
Messages postés
15028
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
10 mai 2021
-
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

Messages postés
10
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
10 mars 2013

désolé c le lien d'image plus clair : http://hpics.li/272ce2f
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
23
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...
Messages postés
10
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
10 mars 2013

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 .
Messages postés
15028
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
10 mai 2021
94
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...