corrigé premiére partie, petit feed back correction 1ere partie

corrigé premiére partie, petit feed back correction 1ere partie

par Frédéric Gruau,
Nombre de réponses : 0

Bonjour,

J'ai corrigé votre dm, vous avez joué le jeu pour la pluspart d'entre vous,

bravo! 

La plus part on proche de 20/20 sauf deux ou trois qui ont juste la moyenne.

Je vous donnerez la note quand j'aurais aussi corrigé la 2eme partie

qui consiste à transformer votre dm en un programme caml.


Je vous envoie le corrigé résumé de la premiére partie, afin de vous faciliter la 2eme partie. 


Je vous le fait faire en caml, car c'est plus facile en caml.

L'idée est que vous preniez conscience que on peut assez facilement faire 

des caluls  sur des expression rationnelle. 

Une fois compris le principe cela ne devrait pas vous prendre trop de temps.

Bon courage,

Fred


ContientEpsilon(exp)

vrai pour epsilon, exp=e*

Faux pour un caractére, et pour ensemble vide

si exp=e1+e2 egal à ContientEpsilon(e1) ou ContientEpsilon(e2)

si exp=e1.e2 egal à ContientEpsilon(e1) ou ContientEpsilon(e2)


Résidu du langage L proposé

par b c'est L

par a c'est L+epsilon


Calcul du Residu(exp, c)

vide pour epsilon, et ensemble vide

pour exp=caractére; epsilon si ce caractére est c, vide sinon

si exp =e1+e2 c'est residu(e1,c) + résidu(e2,c)

si exp= e1* c'est residu(e1,c). e1*

si exp=e1.e2 c'est residu(e1.c).e2, ajouter residu(e2,c) si contientEpsilon(e1)


Reconnait(mot, exp)

si le mot est vide c'est contientEpsilon(mot)

sinon rapeller récursivement Reconnait(m', residu(c,exp))

  ou c est le premier caractére du mot et m' les caractéres suivant