Changes between Version 4 and Version 5 of CaoCourseTme5
- Timestamp:
- Mar 7, 2007, 5:38:35 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme5
v4 v5 16 16 * soit une autre expression Booléenne. 17 17 18 = Structures de données et fonctions de base =18 = A. Structures de données et fonctions de base = 19 19 20 20 La structure C permettant de représenter une variable Booléenne possède trois champs : Le champs NAME représente le nom de la variable, le champs INDEX définit un numéro, et le champs VALUE représente la valeur logique de la variable. … … 88 88 }}} 89 89 * '''D.1''': Rappeler la relation de récurrence permettant d’exprimer le nombre de littéraux d’une expression Booléenne, connaissant le nombre de littéraux de chacun de ses opérandes. 90 * '''D.2''': Ecrire le code de la fonction en langage C, et modifier le programme main() de la question Bpour afficher également le nombre de littéraux de l’expression construite en mémoire.91 * ''' C.3''': Exécutez le programme pour les expressions Booléennes suivantes :90 * '''D.2''': Ecrire le code de la fonction en langage C, et modifier le programme main() de la question C) pour afficher également le nombre de littéraux de l’expression construite en mémoire. 91 * '''D.3''': Exécutez le programme pour les expressions Booléennes suivantes : 92 92 {{{ 93 93 E1= (a.b) + (a.c) + (b.c) … … 95 95 }}} 96 96 97 = D. Calcul du support =97 = E. Calcul du support = 98 98 99 99 On appelle support d’une expression Booléenne l’ensemble de toutes les variables qui apparaissent au moins une fois dans cette expression. … … 105 105 bip_t *support_abl(bip_t *p) 106 106 }}} 107 * ''' D.1''': Commencer par écrire la fonction display_varlist() qui affiche sur le terminal standard la liste des noms des variables contenues dans une liste chaînée de bipointeurs.107 * '''E.1''': Commencer par écrire la fonction display_varlist() qui affiche sur le terminal standard la liste des noms des variables contenues dans une liste chaînée de bipointeurs. 108 108 {{{ 109 109 void display_varlist(bip_t *p) … … 111 111 Pour éviter de confondre cet ensemble de noms avec une expression Booléenne, on affichera cette liste entre deux accolades de la façon suivante : { a b c d } 112 112 Valider cette fonction en construisant explicitement une liste chainée de variables au moyen des fonctions cons_bip() et consvar(), et affichez cette liste. 113 * ''' D.2''': Ecrire la relation de récurrence qui permet d’exprimer le support d’une expression Boléenne, connaissant le support de chacun de ses opérandes.114 * ''' D.3''': Ecrire la fonction union_list() qui effectue l’union de deux ensembles.113 * '''E.2''': Ecrire la relation de récurrence qui permet d’exprimer le support d’une expression Boléenne, connaissant le support de chacun de ses opérandes. 114 * '''E.3''': Ecrire la fonction union_list() qui effectue l’union de deux ensembles. 115 115 {{{ 116 116 bip_t *union_list(bip_t *p1, bip_t *p2) … … 118 118 cette fonction prend en entrée deux pointeurs sur deux listes chainées L1 et L2, et renvoie un pointeur sur la liste chaînée représentant l’union des deux listes. Les deux listes L1 et L2 ne doivent pas être modifiés par la fonction union_list(). 119 119 Attention: l’union est une opération différente de la simple concaténation, car chaque élément ne doit figurer qu’une seule fois dans la liste. On considère que les deux ensembles L1 et L2 qu'on veut réunir respectent cette condition. Valider cette fonction union_list() en construisant explicitement deux listes de variables non disjointes. On affichera les deux listes L1 et L2, ainsi que la liste résultant de l’union de L1 et L2. 120 * ''' D.4''': Ecrire effectivement la fonction support_abl(), en veillant à éviter les « fuites de mémoire ». On parle de fuite de mémoire chaque fois qu’un programme fait de l’allocation dynamique de mémoire sans libérer la mémoire qui n’est plus utilisée. Soyez attentifs à libérer la mémoire allouée par la fonction cons_bip() ...121 * ''' D.5''': Intégrez la fonction support_abl() dans le programme main(), et vérifiez que cette fonction calcule correctement le support des trois expressions E0, E1 et E2.120 * '''E.4''': Ecrire effectivement la fonction support_abl(), en veillant à éviter les « fuites de mémoire ». On parle de fuite de mémoire chaque fois qu’un programme fait de l’allocation dynamique de mémoire sans libérer la mémoire qui n’est plus utilisée. Soyez attentifs à libérer la mémoire allouée par la fonction cons_bip() ... 121 * '''E.5''': Intégrez la fonction support_abl() dans le programme main(), et vérifiez que cette fonction calcule correctement le support des trois expressions E0, E1 et E2. 122 122 123 123 = E. Fonction d’évaluation =