TD 3 Prolog - PowerPoint PPT Presentation

1 / 5
About This Presentation
Title:

TD 3 Prolog

Description:

Ecrire un programme prolog qui compte le nombre de caract res a ' et b ' dans un fichier ... Dessiner l'arbre de preuve Prolog si n cessaire. ( a(Z)? Puis b(Z) ... – PowerPoint PPT presentation

Number of Views:161
Avg rating:3.0/5.0
Slides: 6
Provided by: RAC64
Category:
Tags: dessiner | prolog

less

Transcript and Presenter's Notes

Title: TD 3 Prolog


1
TD 3 Prolog
  • Ecrire un prédicat factorielle et une version
    avec accumulateur de factorielle.
  • Ecrire un prédicat sommeliste qui calcule la
    somme des termes d une liste d entiers. Ecrivez
    une version avec accumulateur.
  • Réalisez l opération de fusion de 2 listes
    triées par ordre croissant. ( ex fusionner
    2,5,5 et 1,3,4,9 donne 1,2,3,4,5,5,9).
  • Ecrire un programme prolog qui compte le nombre
    de caractères  a  et  b  dans un fichier
    texte et affiche le résultat à l écran

2
Statistiques sur un fichier
  • Exemple d utilisation ? countab( t.txt ).3
    a et 25 b ? countab( nofile.zzz ).Erreur
    entree/sortie
  • On utilisera les predicats open/3, close/1,
    get_char/2 write(term), nl/0, la variable
    end_of_file et enfin catch/3 dont la syntaxe
    précise se trouve dans l aide de SWI Prolog.

3
La coupure
  • 1. Donner toutes les réponses à des questions a-j
    posées avec des inconnues. Dessiner l'arbre de
    preuve Prolog si nécessaire. ( a(Z)? Puis b(Z)?
    Puis c(Z) .. J(Z)? )

d(X) -baseColor(X),color(X).d(8).e(X,Y)-
baseColor(X),color(Y).e(8,8).f(X,Y)-
baseColor(X),color(Y), !.f(8,8).g(X,Y)-
baseColor(X),!,color(Y).g(8,8).h(X,Y)-
color(Y),!,baseColor(X).h(8,8).i(X) -
color(X),!,baseColor(X).i(8).j(X) -
color(orange),!,Xorange.j(8).
baseColor(red).baseColor(blue).baseColor(yellow)
.color(green).color(blue).a(X) -
baseColor(X).a(8).b(X) - baseColor(X),!.b(8).
c(X) - !, baseColor(X).c(8).
4
  • 2. Expliquer (ou spécifier clairement) les
    prédicats mystery1 et mystery2.mystery1(X,
    XXs, Xs).mystery1(X, YYs, YZs)
    -mystery1(X, Ys, Zs).mystery2(X, XXs, Xs)
    - !.mystery2(X, YYs, YZs) -mystery2(X,
    Ys, Zs).

5
  • 3. Soit la négation par échec réalisée par le
    prédicat not/1. Comment fonctionne l'opération
    not(owns(Ls,X)) selon que X et Ls sont libres ou
    instanciés ? (l'arbre risquant d'être infini, que
    répond Prolog ? Les inconnues prennent -elles des
    valeurs ?)
Write a Comment
User Comments (0)
About PowerShow.com