leroiloup
Messages postés4Date d'inscriptionvendredi 14 mars 2008StatutMembreDernière intervention19 avril 2009
-
19 avril 2009 à 18:28
cptpingu
Messages postés3840Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention23 août 2024
-
22 avril 2009 à 16:45
On demande de réaliser, à l'aide des outils
Flex et Bison, un interpréteur d'expressions ensemblistes répondant
aux spécifications suivantes (on considérera
uniquement des ensembles d'entiers compris entre 1 et 32):
<hr width= "100%" />
Vocabulaire
a..z A..Z identificateur mono-lettre (ident) non "case-sensitive"
{ } délimiteurs classiques des ensembles
: = affectation
, séparateur d'éléments
1..32 seuls éléments possibles
\n fin de ligne
union UNION union ensembliste
inter INTER intersection ensembliste
comp COMP complémentaire dans {1..32}
diff DIFF différence ensembliste
<hr width= "100%" />
Grammaire
liste :: = // sortie de l'interpréteur
| liste instruction '\n' // interprétation de
// l'instruction
instruction ::= ident ':=' expression // calcul de l'expression et
// affectation
| ident // affichage
A : = { } met l'ensemble vide dans A
a := { 1, 22 } met dans A l'ensemble { 1, 22 }
b := a UNION { 3 } met dans B l'union de A et du singleton { 3 }
B affiche l'ensemble B :
{ 1, 3, 22 }
C := { 1, 3, 5 } met dans C l'ensemble { 1, 3, 5 }
A := B inter C met dans A l'intersection de B et de C
a affiche l'ensemble A :
{ 1, 3 }
<hr width="100%" />
Indication: grâce à
un codage des ensembles sur des entiers longs (32 bits),
on pourra réaliser
simplement les opérations ensemblistes avec les opérateurs
"bitwise" du C/C++
cptpingu
Messages postés3840Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention23 août 2024126 22 avril 2009 à 16:45
C'est une blague, tu crois que tu va poster ton énoncé et qu'on va te le résoudre comme cela ? On n'est pas là pour te faire tes devoirs. Si tu bloques sur un morceau de code, tu peux demander, mais tu rêves vraiment si tu crois que tout va te tomber tout cuit dans la bouche.