Compte rendu TP 2 Automates et Langages (ISTFALEN et DIOUF)[1]

Telechargé par johnq14008
Compte rendu TP 2
Ahmed Istfalen
Léo Emmanuel Diouf
ICY-FISE 3A
Diagramme des classes : Transition, Etat, Automate
________________________
| Transition |
|------------------------|
| - etiquette: char |
| - depart: Etat |
| - arrivee: Etat |
| - etatInitPile: String|
| - etatFinalPile: String|
|------------------------|
| + Transition(...) |
| + getetatInitPile(): String |
| + getetatFinalPile(): String|
| + getEtiquette(): char |
| + getDepart(): Etat |
| + getArrivee(): Etat |
| + setEtatInitialPile(String): void |
| + setEtatFinalPile(String): void |
| + setEtiquette(char): void |
| + setDepart(Etat): void |
| + setArrive(Etat): void |
| + toString(): String |
|________________________|
_____________
| Etat |
|------------------------|
| - nom: String |
| - init: boolean |
| - finall: boolean |
|------------------------|
| + Etat(String) |
| + getNom(): String |
| + getInit(): boolean |
| + getFinall(): boolean |
| + setNom(String): void |
| + setInit(boolean): void |
| + setFinall(boolean): void |
| + toString(): String |
|_________________
________________________
| Automate |
|------------------------|
| - alphabet: ArrayList<Character> |
| - etats: ArrayList<Etat> |
| - transitions: ArrayList<Transition> |
|------------------------|
| + Automate(String) |
| + afficherContenu(): void |
| + appartient(String): boolean |
| + getAlphabet(): ArrayList<Character> |
| + setAlphabet(ArrayList<Character>): void |
| + getEtats(): ArrayList<Etat> |
| + setEtats(ArrayList<Etat>): void |
| + getTransitions(): ArrayList<Transition> |
| + setTransitions(ArrayList<Transition>): void |
| + testNombres(String): void |
| + main(String[]): void |
|________________________|
Test sur un automate à pile simple :
Résultat de tests de quelques mots pour cet automate :
S0
S1
S2
b
X → 0
0
Z → Z
a
Z → X
0
Z →Z
Test sur l’automate de la question 3 (celui des expressions mathématiques) :
Test sur l’automate des expressions mathématiques :
Partie Optionnelle
Pour lévaluation des expressions mathématiques quand elles sont correctes nous
avons écrit quelques fonctions permettant les calculs. Cependant il ya quelques
imperfections et certains cas où ça ne marche pas :
Dabord le calcul se fait de la gauche vers la droite on ne tiens donc pas
compte des priorité sur les opérations par contre nous commençons toujours
par celles entre parenthèses donc la priorité des parenthèses est respectée.
Les opérations ne marchent pas souvent quand ya un signe moins car nos
fonctions ne savent pas différencier le moins comme signe(négatif) et le
moins comme opérande.
Pour lopération de multiplication on ne peut pas juste mettre 5(45+9) par
exemple on est obligé de mettre le signe(5*(45+9)) pour que le calcul puisse
marcher.
0,...9 , Z →
Z
0,.., 9 , X →
XX
0,...9 , Z →
Z
0,.., 9 , X →
X
( , X → XX
( , Z → X
(+,-,*,/) , X → X
(+,-,*,/) , Z → Z
(+,-,*,/) , X → X
(+,-,*,/) , Z → Z
), X→ epsilon
), X→ epsilon
S
S
S
S
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !