Informatique et recherche
opérationnelle
IFT2030

Concepts des langages de programmation

Automne 2002


Accueil

Professeur et
Démonstrateurs

Horaires et locaux

Notes de cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Démonstration 10: LFP (Larges Foulées en Prolog)

Note: Pas de "baratin" cette semaine, vous démonstrateurs aborderons avec vous un exemple de code Prolog.

Travail pratique (pas noté mais fortement recommandé)

Convertir des chiffres en mots [demo10-nombres.pl]

Écrivez un programme qui converti des nombres positifs (inférieurs à un milliard) en une liste de mots.

Ex:Convertir(1281) donne[mille.deux.cent.quatre.vingt.un]

Bonus: faites un programme qui respecte l'orthographe des nombres.
Mille et quatre sont invariables, en revanche, cent prend un s, lorsqu'il est précédé d'un multiple et qu'il n'est pas suivi d'un autre nombre (deux cents, mais deux cent trente).

Énigme d'Einstein [demo10-einstein.pl]

Voici une énigme proposée par Einstein, à laquelle selon lui 98% des gens ne sauraient pas répondre.

5 hommes habitent 5 maisons de 5 couleurs distinctes. Ils fument des cigarettes de 5 marques différentes, boivent 5 boissons distinctes, et élèvent des animaux de 5 espèces différentes.

la question est: Qui a un poisson ?

1.Le norvégien habite la première maison 
2.L'anglais habite la maison rouge 
3.La maison verte est située à gauche de la maison blanche 
4.Le danois boit du thé 
5.Celui qui fume des rothmans habite à coté de celui qui élève des chats 
6.Celui qui habite la maison jaune fume des dunhill 
7.L'allemand fume des marlboro 
8.Celui qui habite la maison du milieu boit du lait 
9.Celui qui fume des rothmans à un voisin qui boit de l'eau 
10.Celui qui fume des pallmall élève des oiseaux 
11.Le suedois élève des chiens 
12.Le norvégien habite à coté de la maison bleue 
13.Celui qui élève des chevaux habite à coté de la maison jaune 
14.Celui qui fume des philip morris boit de la bière 
15.Dans la maison verte, on boit du café 
Écrivez un programme Prolog qui résoud cette égnigme.

Question subsidiaire: si vous n'arrivez pas à répondre à cette question mais que parvenez à écrire un programme qui le résoud, êtes-vous intelligent ?

Si les énigmes vous passionnent, jetez-vous sur le lien suivant.

Des maris jaloux[demo10-maris.pl]

Un classique du genre (en Prolog, pas dans la vie), celui des maris jaloux: il y a trois femmes et leurs trois maris sur une rive qui souhaitent traverser la rivière afin de se rendre sur l'autre rive pour échapper à leur poursuivants animés de sombres intentions que nous garderons par décence secrètes. Heureusement, il y a là une barque qui ne peut cependant revoir en son bord qu'au plus deux personnes à la fois.

Seulement voilà, les maris sont jaloux et refusent, malgré l'arrivée imminente de leurs poursuivants, que leur femme ne se retrouve seule (cad sans autre femme) sur l'une des rives ou dans le bateau en présence d'autres hommes s'il ne sont pas là.

Le suspens est intense, et seul vous et votre interpréteur Prolog pourront les sauver.

Question subsidiaire: comment expliquez-vous que les maris jaloux acceptent que leur femme soit sur une autre rive avec un autre homme si une autre femme si trouve aussi ?

Plus sérieusement, montrez (avec votre interpréteur) que si quatre couples sont présents sur la rive, alors il faudra que les maris fassent fi de leur jalousie sans quoi leurs dangereux poursuivants les rattraperont.

[top]


Dernière mise à jour : Thu Nov 28 18:11:55 EST 2002
dift2030@iro.umontreal.ca