Forum des informaticiens de la FST
L'équipe du Forum Info-Fst, vous souhaite la bienvenue parmi nous.

Rejoignez le forum, c’est rapide et facile

Forum des informaticiens de la FST
L'équipe du Forum Info-Fst, vous souhaite la bienvenue parmi nous.
Forum des informaticiens de la FST
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Derniers sujets
» bonjour a tous
Correction des exercices de listes de l'AP Empty27/1/2016, 16:53 par jackygaby

» livre scientifique (pdf) en téléchargement
Correction des exercices de listes de l'AP Empty27/1/2016, 13:14 par trazomtg

» Je me présente
Correction des exercices de listes de l'AP Empty23/1/2014, 19:39 par BOUSRI

» phd informatque
Correction des exercices de listes de l'AP Empty22/9/2013, 20:42 par info_info

» télécharger des vidéos avec sécurité
Correction des exercices de listes de l'AP Empty21/5/2013, 23:10 par larbi

» cherche Dictionnaire Vidal
Correction des exercices de listes de l'AP Empty29/4/2013, 18:18 par benbrahimaboubrahimh

» New Member
Correction des exercices de listes de l'AP Empty13/3/2013, 11:53 par abdallah2013

» anciens rapport pfe svp
Correction des exercices de listes de l'AP Empty19/2/2013, 09:32 par abidi

» ingeinieur civil
Correction des exercices de listes de l'AP Empty25/1/2013, 18:30 par bkejji

» La nature de métamatière et l'hommage rendu aux anciens
Correction des exercices de listes de l'AP Empty10/1/2013, 07:43 par neige

Le Deal du moment :
TCL C74 Series 55C743 – TV 55” 4K QLED 144 ...
Voir le deal
499 €

Correction des exercices de listes de l'AP

3 participants

Aller en bas

Correction des exercices de listes de l'AP Empty Re: Correction des exercices de listes de l'AP

Message par Kais 24/12/2005, 13:28

et voila le code prolog de l'exercice.

Merci à Mr Bsaies

Code:
puissance(0,0,Y):-Y<>0,!.
puissance(Y,Y,1):-!.
puissance(X,Y,Z):-T=Z-1,puissance(E,Y,T),X=E*Y.


predicates
  fib1(integer,integer)
  fib2(integer,integer)
  fib3(integer,integer)
  iteration(integer,integer,integer,integer,integer)
clauses
  fib1(0,1).
  fib1(1,1).
  fib1(X,Y) :- X>=2,J=X-2,I=X-1,fib1(J,R),fib1(I,H),Y=R+H.
/* cette version ne permet pas d'aller plus loin que fib(11,N). */
  fib2(0,1):-!.
  fib2(1,1):-!.
/* jusqu'a fib2(22,K).*/
  fib2(X,Y):-J=X-2,I=X-1,fib2(J,R),fib2(I,H),Y=R+H.

  fib3(0,1):-!.
  fib3(1,1):-!.
  fib3(N,R):-iteration(N,2,1,1,R).
  iteration(N,N,X,Y,R):-R=X+Y,!.
  iteration(N,I,X,Y,R):-II=I+1,XX=Y,YY=X+Y,iteration(N,II,XX,YY,R).
/* meme borne que precedemment avec un temps de calcul moindre */

  produit(0,X,0).
  produit(X,Y,Z):-suc(X,T),produit(T,Y,E),somme(E,Y,Z).

  inf(X,Y):-suc(Y,_).
  inf(X,Y):-suc(X,X1),suc(Y,Y1),inf(X1,Y1).
  div(A,B,Q,R):-produit(B,Q,T),somme(T,R,A),inf(R,B).

domains
  liste=integer*
predicates
  liste_pair(liste,liste)
clauses
  liste_pair1([],[]).
  liste_pair1([X|L],[X|Y]) :- 0=X mod 2, liste_pair1(L,Y).
  liste_pair1([X|L],Y) :- 0<>X mod 2, liste_pair1(L,Y).

  liste_pair([],[]):-!.
  liste_pair([X|L],[X|Y]):-0=X mod 2,!,liste_pair(L,Y).
  liste_pair([_|L],Y) :-liste_pair(L,Y).


predicates
  reverse1(liste,liste)
  reverse2(liste,liste)
  reverse_acc(liste,liste,liste)
  append(liste,liste,liste)
  appart1(integer,liste)
  appart2(integer,liste)
  prefixe1(liste,liste)
  prefixe2(liste,liste)
  suffixe2(liste,liste)
  sous_liste(liste,liste)
  sous_liste2(liste,liste)
clauses
  append([],X,X).
  append([X|L],Y,[X|Z]):-append(L,Y,Z).
  reverse1([],[]).
  reverse1([X|L],Z):- reverse1(L,T),append(T,[X],Z).

  reverse2(X,Y):- reverse_acc(X,[],Y).
  reverse_acc([X|Y],A,Z):-reverse_acc(Y,[X|A],Z).
  reverse_acc([],Y,Y).

 prefixe1([],_).
  prefixe1([X|Xs],[X|Ys]):-prefixe1(Xs,Ys).

  suffix(X,X).
  suffix(X,[Y|L]):-suffix(X,L).

  prefixe2(X,Y):-append(X,Z,Y).
  suffixe2(X,Y):-append(Z,X,Y).

 sous_liste(X,Y):- append(Z,B,Y), append(A,X,Z).
  sous_liste2(X,L):-prefixe(P,L),suffixe(X,P). /*(Suffixe de prefixe)*/
  sous_liste3(X,L):-prefixe(X,T),suffixe(T,L). /*(Prefixe de suffixe)*/

/* --select(X,Y,Z): La liste Z est le resultat obtenu en rayant
une occurrence X de la liste Y. ce programme est utlisable suivant
plusieurs mode----*/
  select(X,[X|L],L).
  select(X,[Y|L],[Y|M]):-select(X,L,M).

/*delete(L,X,M): La liste M est le resultat obtenu en effacant
toutes les occurrences de X dans le liste L----*/
  delete([],_,[]).
  delete([X|L),X,M):- delete(L,X,M).
  delete([X|L),Y,[X|M]):- X<>Y, delete(L,X,M).


  member(X,[X|_]).
  member(X,[_|L]):-member(X,L).


  make-set([],[]).
  make-set([X|L],T):-member(X,L),!,make-set(L,T).
  make-set([X|L],[X|T]):-make-set(L,T).


  subset([],_).
  subset([X|L],T):-member(X,T), subset(L,T).


  union(L1,L2,L):-concate(L1,L2,T),make-set(T,L).


  inter([],_,[]).
  inter([X|L],T,[X|E]):-member(X,T),!,inter(L,T,E).
  inter([_|L],T,E):-inter(L,T,E).


   sous-suite-ex([],_).
   sous-suite-ex([X|L],[X|M]):-sous-suite-ex(L,M).
   sous-suite-ex(L,[_|M]):-sous-suite-ex(L,M).


/* ------------------------------Tri par permutation ------------- */
  sort(L,M):-permutation(L,M),ord(M).
  permutation([],[]).
  permutation(L,[Y|M]):-select(Y,L,U),permutation(U,M).
  ord([]).
  ord([_]).
  ord([X|[Y|L]]):-X<=Y,ord([Y|L]).

/* -------- Tri par insertion ------*/
  sort([],[]).
  sort([X|L],M):-sort(L,U), insert(X,U,M).
  insert(X,[],[X]).
  insert(X,[Y|M],[Y|U]):- X>Y, insert(X,M,U).
  insert(X,[Y|M],[X|[Y|M]]):-X<=Y.
/* -------- tri par insertion utilisant un accumulateur -------*/
 predicates
 insert(integer,liste,liste)
 sort(liste,liste)
 sort_ins(liste,liste,liste)
clauses
 insert(X,[],[X]):-!.
 insert(X,[Y|L],[X|[Y|L]]):- X<=Y,!.
 insert(X,[Y|L],[Y|M]):-insert(X,L,M).
 sort_ins([],L,L):-!.
 sort_ins([X|L],D,H):-insert(X,D,T),sort_ins(L,T,H).
 sort(L,M):-sort_ins(L,[],M).


/* ------------------- Tri rapide ------------------- */
  qs([],[]).
  qs([X|L],M):- partition(L,X,P,G), qs(P,LP), qs(G,LG),
                app(LP,[X|LG],M).
  partition([],Y,[],[]).
  partition([X|L],Y,[X|M],U):-X<=Y,partition(L,Y,M,U).
  partition([X|L],Y,M,[X|U]):-X>Y, partition(L,Y,M,U).

predicates
 pp(liste,integer)
 tri_sel(liste,liste)
 select(integer,liste,liste)
/*--------------------- tri par selection du minimum-------*/
clauses
 pp([],_):-!,fail.
 pp([X],X):-!.
 pp([X|[Y|L]],X):- pp([Y|L],Z), X<=Z,!.
 pp([_|[Y|L]],T):-pp([Y|L],T).
 select(X,[X|L],L):-!.
 select(X,[Y|L],[Y|M]):- select(X,L,M).
 tri_sel([],[]).
 tri_sel([I|L],[X|M]):-pp([I|L],X),select(X,[I|L],T),tri_sel(T,M).

/*----------------------------- Tri par fusion
---------------------------*/
predicates
 trier(liste,liste)
 separer(liste,liste,liste))
 fusion(liste,liste,liste)
clauses
  trier([],[]).
  trier([X],[X]).
  trier([X|[Y|L]],LL):-separer([X|[Y|L]],L1,L2),
                      trier(L1,LL1), trier(L2,LL2),
                      fusion(LL1,LL2,LL).
  separer([],[],[]).
  separer([X],[X],[]).
  separer([X|[Y|L]],[X|M],[Y|U]):-separer(L,M,U).
  fusion([],L,L).
  fusion([X|L],[],[X|L]).
  fusion([X|L1],[Y|L2],[X|L]):-X<=Y, fusion(L1,[Y|L2],L).
  fusion([X|L1],[Y|L2],[Y|L]):-X<=Y, fusion([X|L1],L2,L).


  Tri-Cr-De([],[],[]):-!.
  Tri-Cr-De([X],[X],[X]):-!.
 
Tri-Cr-De(L,C,D):-Min-max(I,G,E,L),Tri-Cr-De(E,L1,L2),append([I|L1],[G],C),
                             append([G|L2],[I],D).


tri-bul(L,T):-append(L1,[X|[Y|L2]],L),X>Y,!,concate(L1,[Y|[X|L2]],E),tri-bu(E,T).
tri-bul(L,L).

Kais
Kais
Admin
Admin

Masculin Nombre de messages : 427
Age : 42
Section et Année : Promo I4 2006
Date d'inscription : 17/09/2005

https://info-fst.superforum.fr

Revenir en haut Aller en bas

Correction des exercices de listes de l'AP Empty Vous etes genials!!!

Message par Tiger 25/12/2005, 00:16

Merci!!! cheers
Bonne revision,a propos pourriez vous svp mettre le calendrier des exams sur le forum. Encore merci pour tt ce que vous faites.
Tiger
Tiger
Nouveau membre
Nouveau membre

Masculin Nombre de messages : 9
Section et Année : I4
Date d'inscription : 01/12/2005

Revenir en haut Aller en bas

Correction des exercices de listes de l'AP Empty Re: Vous etes genials!!!

Message par Nidhal 25/12/2005, 13:14

tiger a écrit:Merci!!! cheers
Bonne revision,a propos pourriez vous svp mettre le calendrier des exams sur le forum. Encore merci pour tt ce que vous faites.
Tout ce que je sais c'est qu'on commence par le TC.
Nidhal
Nidhal
Admin
Admin

Masculin Nombre de messages : 232
Age : 40
Section et Année : MSI 2
Date d'inscription : 05/10/2005

Revenir en haut Aller en bas

Correction des exercices de listes de l'AP Empty OUAOUUUUUUUUUUUUUUUUUU

Message par Tiger 26/12/2005, 00:27

Beau debut!!!!!!!!!!!!!!!!!!!!!! affraid
Tiger
Tiger
Nouveau membre
Nouveau membre

Masculin Nombre de messages : 9
Section et Année : I4
Date d'inscription : 01/12/2005

Revenir en haut Aller en bas

Correction des exercices de listes de l'AP Empty Re: Correction des exercices de listes de l'AP

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum