• Aucun résultat trouvé

TD de programmation fonctionnelle et logique TD 9 : programmes Prolog et coupure

N/A
N/A
Protected

Academic year: 2022

Partager "TD de programmation fonctionnelle et logique TD 9 : programmes Prolog et coupure"

Copied!
1
0
0

Texte intégral

(1)

TD de programmation fonctionnelle et logique TD 9 : programmes Prolog et coupure

1. ´Ecrivez, sans utiliser la primitive de division, un pr´edicatdivision(A,B,Q,R)o`uQetRsont respectivement le quotient et le reste de la division deAparB(pour l’utilisation du pr´edicat, on suppose queAetBsont donn´es, et que l’on rechercheQetR).

2. ´Ecrivez un pr´edicat qui prend en entr´ee un ´el´ement et une liste et qui est vrai si l’´el´ement appartient `a la liste.

Optimisez l’ex´ecution de ce pr´edicat au moyen d’une coupure.

3. ´Ecrivez un pr´edicat qui prend en entr´ee un ´el´ement et une liste et qui est vrai si l’´el´ement appartient au moins deux fois `a la liste.

4. ´Ecrivez un pr´edicatsomme cube(A,B,C)qui est vrai si l’entierCest la somme des cubes des entiers stric- tement positifsAetB. ´Ecrivez ce pr´edicat de telle sorte qu’il puisse, ´etant donn´eC, ´enum´erer toutes les valeurs possibles deAet deB.

5. Optimisez le pr´edicat de la question 4, sachant que l’on n’a plus besoin que d’une seule solution.

6. Optimisez le pr´edicat de la question 4, sachant que l’on ne veut pas perdre de solutions.

7. ´Ecrivez un pr´edicat qui calcule le plus petit entier qui peut s’´ecrire, de deux mani`eres diff´erentes, comme la somme des cubes de deux entiers (ce nombre est inf´erieur `a 10000).

8. Le motard g´en´ereux. Un motard veut offrir une moto identique `a chacune de ses petites amies. Le nombre repr´esentant le coˆut de l’op´eration est, si l’on inverse tous les chiffres, celui qui repr´esente le prix unitaire d’une moto. De mauvaises langues ont pr´etendu que le motard en question avait au moins deux petites amies, mais pas plus de 8. Le prix de la moto offerte se situant entre 10 000 et 99 999 francs, combien le motard a-t-il de petites amies et quel est le prix d’une moto ?

1

Références

Documents relatifs

(a) ´ Ecrivez une fonction r´ ealisant ce sch´ ema de calcul en supposant que la liste est une liste d’entiers, et que op´ eration est une fonction qui prend deux entiers en entr´

Un polynˆome (creux) sera alors constitu´e d’une liste de monˆomes, cette liste n’´etant pas suppos´ee ˆetre tri´ee en fonction des degr´es des

(a) ´ Ecrivez un pr´edicat coherent qui prend en entr´ee un graphe et qui est vrai si et seulement si le graphe est bien d´efini, c’est-`a-dire si et seulement si tous les sommets

(a) ´ Ecrivez un pr´edicat coherent qui prend en entr´ee un graphe et qui est vrai si et seulement si le graphe est bien d´efini, c’est-`a-dire si et seulement si tous les sommets

´ Ecrivez une fonction qui prend en entr´ee la liste de toutes les entr´ees, celle de tous les plats de r´esistance, et celle de tous les desserts, et qui renvoie la liste de tous

Ecrire le prédicat multListe/3 qui, étant donné une liste d’entiers et un coefficient, détermine une nouvelle liste dans laquelle tous les nombres de la première liste ont été

Ecrire un programme définissant une variable de type caractere, deux pointeurs vers des caractere, et qui fait en sorte que si l'on modifie le contenu de

a)- Ecrire en langage C une fonction itérative, nbre_occurrences, qui détermine le nombre de fois où un élément noté elt apparaît dans un tableau T donné contenant de N entiers.