[PDF] TP de programmation fonctionnelle et logique Corrige du TP 5



Previous PDF Next PDF







TP de programmation fonctionnelle et logique Corrige´ du TP 4

TP de programmation fonctionnelle et logique Corrige´ du TP 4 : petits programmes Prolog 1 Calculer la longueur d’une liste size([],0)



TP Prolog n°1

T P Prolog n°1 1) Familiarisation avec l’environnement Prolog La rédaction d'un programme Prolog exige d'avoir deux fenêtres ouvertes en même temps : - SWI-Prolog lui-même accessible depuis C:\windows\Program Files\pl\bin - La fenêtre d’édition de SWI-prolog contenant le programme en cours de rédaction



Projet de Programmation Logique n 1 - LIPN

Vous devrez rendre par email a votre responsable de TP d’ici le 22 mai un chier tar gz contentant : {un rapport en format pdf d etaillant pr ecis ement le travail e ectu e et les choix d’impl e-mentation; {un chier pl contenant le code correspondant aux exercices des sections 2 et 3, en suivant rigoureusement l’ enonc e;



INFO2 – IG - Université Paris-Nord TP1 de prolog

TP1 de prolog 2009-2010 Utilisation de Swi-Prolog sous Unix Choisissez votre éditeur préféré pour créer un fichier avec une extension pl dans lequel vous écrirez votre programme (par exemple tp1 pl) Attention à ne pas utiliser de majuscule pour la première lettre du nom du fichier



TP Prolog 2009/2010 Master ILI & SIA - univ-artoisfr

TP Prolog 2009/2010 Master ILI & SIA Exercice 1: Une agence de voyages propose à ses clients des séjours de une ou deux semaines à Rome, Londres ou Tunis Le catalogue de l’agence contient, pour chaque destination, le prix du transport (indépendant de la durée) et le



Prolog - TP3

Au cours du TP 2, vous avez ecrit le pr edicat inverser/2 qui permet d’inverser une liste Ecrivez un nouveau pr edicat permettant d’inverser une liste en utilisant un accumulateur et un wrapper ? inverse([a,b,c,d], [d,c,b,a]) yes Exercice 5 nombre d’occurrences d’un terme Ecrivez un pr edicat occurrence/3 occurrence(X,Liste,N) compte le



Le langage Prolog - miashs-wwwu-gafr

Prolog est un langage de programmation à part Le nom Prolog vient de Programmation Logique Il est utilisé principalement en Intelligence Artificielle Ce qui est original, c'est qu'en Prolog, il suffit de décrire ce que l'on sait sur le domaine étudié, (en Intelligence Artificielle, on appelle cela une base de connaissances),



TP numéro 1 - persoliriscnrsfr

TP numéro 1 1 Utilisation de Swi-Prolog sous Unix Choisissez votre éditeur préféré pour créer un fichier avec une extension pl dans lequel vous écrirez votre programme (par exemple tp1 pl) Attention à ne pas utiliser de majuscule pour la première lettre du nom du fichier



[PDF] exemple programme prolog

[PDF] exercice prolog liste corrigé

[PDF] prolog cours pdf

[PDF] west side story tonight analyse

[PDF] west side story fiche technique

[PDF] tp fibre optique bac pro sen

[PDF] bac pro environnement nucléaire salaire

[PDF] fibre optique bac pro eleec

[PDF] bac pro techniques d'interventions sur installations nucléaires

[PDF] cours fibre optique bac pro sen

[PDF] 3x500 record du monde

[PDF] détection

[PDF] analyse et suivi des appels d’offres

[PDF] fiche descriptive facturation

[PDF] dsn arret de travail

TP de programmation fonctionnelle et logique

Corrig

´e du TP 5 : d´ecomposition d"un entier en facteurs premiers

Ce TP est

`a rendre imp´erativement pour le mercredi 30 mai, d´elai de rigueur. Vous devez envoyer votre programme

par mail `a l"adresse :vivien@icps.u-strasbg.fr. Vous pouvez r´ealiser ce TP seul ou en binˆome.

Le but de ce TP est de r

´ealiser la d´ecomposition en facteurs premiers d"un entier. Ainsi, au nombre<12>, nous voulons que ProLog associe la d

´ecomposition :<2 * 2 * 3>.

Dans tout le sujet nous supposerons que nous ne manipulons que desentiers strictement positifs.

1. Un nombre est premier s"il n"est divisible que par 1 et par lui-m

ˆeme.´Ecrivez un pr´edicatnonpremierqui est vrai si et seulement si le nombre qui lui ait pass ´e en argument n"est pas premier, c"est-`a-dire si et seulement si ce nombre admet un diviseur non trivial, ou est

´egal`a un.

nonpremier(1). nonpremier(X) :- Y is X-1, between(2,Y,Z), between(Z,Y,T), X =:= T*Z.

Exemples d"utilisation :

?- nonpremier(1). Yes ?- nonpremier(7). No ?- nonpremier(12). Yes 2.

´Ecrivez,`a partir du pr´edicatnonpremier, un pr´edicatpremierqui est vrai si et seulement si le nombre qu"il

prend en argument est premier. premier(X) :- nonpremier(X), !, fail. premier(

Exemples d"utilisation :

?- premier(1). No ?- premier(7). Yes ?- premier(12). No 3.

´Ecrivez un pr´edicattouslespremiers, prenant en argument deux nombresXetY, et vrai siXest un nombre

premier inf

´erieur ou´egal`aY. Ce pr´edicat doit pouvoir´enum´erer tous les nombres premiersXinf´erieurs ou

egaux`a une valeurYdonn´ee. touslespremiers(X,Y):- between(2,Y,X), premier(X).

Exemple d"utilisation :

?- touslespremiers(X,9).

X = 2 ;

X = 3 ;

X = 5 ;

1

X = 7 ;

No 4.

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). division(A,B,Q,R) :- Bmoins1 is B-1, between(0,Bmoins1,R), between(0,A,Q), A =:= B*Q+R. autre solution : division(A,B,0,A):- A= B, BmoinsA is A - B, division(BmoinsA, B, Qmoins1, R),

Q is Qmoins1 + 1.

5.

´Ecrivez,`a partir du pr´edicatdivision, un pr´edicatdiviseprenant en entr´ee trois entiersA,BetCet qui est

vrai siAest divisible parBde quotientC. Ce pr´edicat devraˆetre capable de calculerCconnaissantAetB.

divise(A,B,C):-division(A,B,C,0).

Exemple d"utilisation :

?- divise(12,2,C). C = 6 Yes 6.

´Ecrivez une fonctiondecompositionprenant en entr´ee deux variablesXetDet qui,`aXentier de valeur

donn ´ee, associeD, une de ses d´ecompositions en facteurs premiers. decomposition(X,X):-premier(X),!. decomposition(X,D):-touslespremiers(Y,X), divise(X,Y,Z), decomposition(Z,E), D = Y * E.

Exemples d"utilisation :

?- decomposition(7,X).

X = 7 ;

No ?- decomposition(12,X).

X = 2* (2*3) ;

X = 2* (3*2) ;

X = 3* (2*2) ;

No

Note : les parenth

`eses n"ont ici aucune esp`ece d"importance...

7. Modifiez le pr

´edicat pr´ec´edent pour qu"il ne produise plus qu"une d´ecomposition en facteurs premiers, celle

dans laquelle les facteurs sont rang

´es dans l"ordre croissant.

decompositionbis(X,X):-premier(X),!. decompositionbis(X,D):-touslespremiers(Y,X), divise(X,Y,Z), !, decompositionbis(Z,E), D = Y * E.

Exemples d"utilisation :

2 ?- decompositionbis(12,X).

X = 2* (2*3) ;

No ?- decompositionbis(2001,X).

X = 3* (23*29) ;

No 8.

´Ecrivez un pr´edicatpluspetitpremierprenant en entr´ee deux variablesXetYet qui est vrai si et seulement

siXest le plus petit entier premier sup´erieur ou´egal`a l"entierYde valeur donn´ee. pluspetitpremier(X,X):- premier(X), !. pluspetitpremier(X,Z):- Y is Z+1, pluspetitpremier(X,Y).

Exemples d"utilisation :

?- pluspetitpremier(X,97).

X = 97 ;

No ?- pluspetitpremier(X,98).

X = 101 ;

No 3quotesdbs_dbs5.pdfusesText_10