• Aucun résultat trouvé

TP 4: Langages rationnels

N/A
N/A
Protected

Academic year: 2022

Partager "TP 4: Langages rationnels"

Copied!
1
0
0

Texte intégral

(1)

Lycée La Martinière Monplaisir

Option Informatiqe 2eannée TP 4: Langages rationnels

TP 4: Langages rationnels

Judicaël Courant 29 novembre 2018

Le but de cet exercice est d’effectuer quelques calculs sur les expressions rationnelles.

Nous introduisons pour cela le type’a ratdes expressions rationnelles sur l’alphabetΣdont les éléments sont les éléments de type’a:

1 type 'a rat =

2 | Zero (* le langage vide *)

3 | Un (* le langage réduit au mot vide *)

4 | Lettre of 'a (* langage réduit à une lettre *)

5 | Somme of 'a rat * 'a rat (* union des deux langages *)

6 | Produit of 'a rat * 'a rat

7 | Etoile of 'a rat

Q0 Écrire une fonction affiche_expr_rat : (’a -> unit) -> ’a rat -> unittelle que pour tout typet, toute expression rationnellee de typet ratet toute fonction pr de typet ->

unit sachant afficher une expression de type t, l’exécution de affiche_expr_rat pr e affiche l’expression rationnellee.

Q1 Écrire une fonctionsimplifie : ’a rat -> ’a ratprenant en argument une expression rationnelleEet retournant une expression rationnelleF décrivant le même langage et telle que soit F est l’expression rationnelleZero, soitF ne contient pasZero.

Q2 Étant donné un langageL, on appelle langage miroir deLle langage formé des mots miroirs des mots deL. Montrer que siLest rationnel, son langage miroir l’est aussi.

Q3 Écrire une fonctionmiroir : ’a rat -> ’a ratprenant en argument une expression ra- tionnelleEet retournant une expression rationnelle décrivant le miroir du langage associé àE.

Q4 Écrire une fonctioncontient_epsilon : ’a rat -> boolprenant en argument une ex- pression rationnelleEet retournant un booléen disant si le langage associé contient le mot vide.

Q5 Écrire une fonctionpref1 : ’a rat -> ’a listprenant en argument une expression ra- tionnelleE retournant la liste des lettres pouvant apparaître comme première lettre d’un mot du langage associé àE.

Q6 Écrire une fonctionsuff1 : ’a rat -> ’a listcalculant de même la liste des lettres pou- vant apparaître comme dernière lettre d’un mot du langage associé à son argument.

Q7 Écrire une fonctionsucc : ’a rat -> ’a -> ’a listtelle quesucc e aretourne la liste de toutes les lettresbtel que le motabsoit un facteur d’un mot du langage associé àe.

Q8 Quelles sont les complexités, dans le cas le pire, de vos fonctions ?

Q9 Expliquer comment on pourrait obtenir une complexité linéaire en la taille de l’expression rationnelle considérée. Implanter.

Judicaël Courant - 29 novembre 2018 1/1 Document sous licence Art Libre (http://artlibre.org)

Références

Documents relatifs

1) Déterminer les limites de la fonction f aux bornes de chacun des intervalles de son domaine de définition. En déduire le tableau des variations de la fonction f. 2)

[r]

Une fonction rationnelle f admet des primitives sur tout intervalle ne contenant aucun pôle

Déterminer les coordonnées du point A d’intersection avec l’axe

Dans ce chapitre on aborde des notions sur le point matériel, le corps solide parfait, la force, le moment d’une force et les torseurs des forces extérieures.. Ensuite, on donne

- les entrées sont les points M et Ω stockés dans maple comme des 2-listes des coordonnées : M:=[xm,ym];Ω:=[xo,yo];Z:=[xz,yz]; et l'angle θ, un réel ;. - la sortie est le point

Cette fonction essaie de calculer une expression de la somme avec des fonc- tions usuelles (pour Maple ! pas forcément pour nous.).. La problématique est à peu près la même que pour

Éléments de correction de l'examen de janvier 2014.