Devoir surveillé d'informatique UE INF121 durée : 2h00



Documents pareils
Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Recherche dans un tableau

Exercices de dénombrement

Les règles de base du poker :

Date : Tangram en carré page

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

POKER ET PROBABILITÉ

S initier aux probabilités simples «Un jeu de cartes inédit»

Poker. A rendre pour le 25 avril

LibreOffice Calc : introduction aux tableaux croisés dynamiques

CALCUL DES PROBABILITES

Coefficients binomiaux

Programmation Objet - Cours II

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Vers l'ordinateur quantique

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Le Seven Card Stud. Club Poker 78

PROBABILITÉS CONDITIONNELLES

Par combien de zéros se termine N!?

Le bridge c'est quoi? Laval Du Breuil École de bridge Picatou, Québec

L'INTÉRÊT COMPOSÉ. 2.1 Généralités. 2.2 Taux

S initier aux probabilités simples «Question de chance!»

Rallye Mathématiques de liaison 3 ème /2 nde et 3 ème /2 nde pro Epreuve finale Jeudi 21 mai 2015 Durée : 1h45

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

OPTIMISATION À UNE VARIABLE

GEA II Introduction aux probabilités Poly. de révision. Lionel Darondeau

Le chiffre est le signe, le nombre est la valeur.

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Publipostage avec Calc

DIFFÉRENCIATION DES RÔLES DES JOUEURS

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Accident de voiture : six bons réflexes pour remplir le constat amiable

Exercices sur le chapitre «Probabilités»

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

BADPLUS V5 MANUEL D'UTILISATION. Imports de données joueurs à partir de la base fédérale en ligne Poona. Stéphan KIEFFER - Dominique BOSSERT

Probabilités. Une urne contient 3 billes vertes et 5 billes rouges toutes indiscernables au toucher.

YANN ROUDAUT - Professeur de l Ecole Française de Poker - roudaut@ecolefrancaisedepoker.fr

Canevas théoriques du projet sur le poker Partie A

Algorithmes de recherche

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Chapitre 10. Les interfaces Comparable et Comparator 1

Raisonnement par récurrence Suites numériques

REGLES POKER TEXAS HOLD EM NO LIMIT "CASH-GAME"

Algorithmique et Programmation, IMA

D'UN THÉORÈME NOUVEAU

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Initiation à la programmation en Python

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

REGLEMENT DES JEUX PARTOUCHE IMAGES (Serveur vocal et Internet)

Espaces probabilisés

LES DECIMALES DE π BERNARD EGGER

Probabilités (méthodes et objectifs)

I. Introduction aux fonctions : les fonctions standards

FÉDÉRATION INTERNATIONALE DE PÉTANQUE ET JEU PROVENÇAL REGLEMENT DU CHAMPIONNAT DU MONDE DE TIR INDIVIDUEL

Analyse Combinatoire

BANQUES DE DONNÉES PÉDAGOGIQUES

Importer les fichiers élèves - professeurs du secrétariat

13 conseils pour bien choisir son prestataire de référencement

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Utilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition

Poker Academy Texas Hold em. Manuel d utilisation. Sommaire

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

Les tests logiques avec Excel

Feuille d exercices 2 : Espaces probabilisés

Comedy Magic vous présente l'animation Casino Factice

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Représentation d un entier en base b

Correction TD algorithmique

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Licence Sciences et Technologies Examen janvier 2010

All in Lorsqu un joueur n est plus en mesure de miser l entier du montant exigé, il est qualifié de «All in».

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

JEUX DE CASINO challenges possibles a partir de 10 ANS utilisation en intérieur

Complément d information concernant la fiche de concordance

SOMMAIRE. Travailler avec les requêtes... 3

La fonction exponentielle

REMARQUES SUR LE PETIT FRAGMENT DE TABLETTE CHYPRO MINOENNE TROUVÉ A ENKOMI EN par EMILIA MAS SON

CHAPITRE VIII : Les circuits avec résistances ohmiques

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

TP3 : Manipulation et implantation de systèmes de fichiers 1

Exercices Corrigés Premières notions sur les espaces vectoriels

7 Card Stud et 7 Card Stud Hi Lo

Application 1- VBA : Test de comportements d'investissements

Développements limités. Notion de développement limité

Système binaire. Algèbre booléenne

CHAPITRE IX : Les appareils de mesures électriques

1. Introduction Création d'une requête...2

Feuille TD n 1 Exercices d algorithmique éléments de correction

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

La Stratégie de l'entame à Sans Atout

Unitecnic 2200 Unitecnic 2200 CS

Probabilités sur un univers fini

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Transcription:

Devoir surveillé d'informatique UE INF121 durée : 2h00 Répondez sur le sujet. Ne vous ez pas à la taille des pointillés : la taille des pointillés ne correspond pas forcément à la taille de la réponse. Les appareils électroniques sont interdits à l'exception d'une montre. Aucun document n'est autorisé à l'exception d'une feuille A4 recto-verso manuscrite portant votre nom. Le barème et le temps à passer sur chaque question sont donnés à titre indicatif. Les questions sont indépendantes et peuvent être traitées séparément. Vous avez le droit d'utiliser les fonctions des questions précédentes même si vous ne les avez pas écrites. N'oubliez pas d'indiquer votre nom, votre prénom et votre groupe. Avant de commencer à répondre, prenez 10 minutes pour lire le sujet et repérez les quetions faciles Nom :............................................................................................. Prénom :......................................................................................... Groupe :.......................................................................................... 4 pt Exercice 1 : Algorithme de l'exponentiation rapide (15min) Vous connaissez l'algorithme standard de calcul de x n : Algorithme standard : x 0 = 1 x i+1 = x x i Il existe un algorithme plus ecace pour calculer x n. Le but de cet exercice est de dénir la fonction puis qui implante cet algorithme. Prol puis : Z N Z Sémantique : puis (x, n) est la nème puissance de x. 1

L'algorithme ecace choisit à chaque étape du calcul de x n l'équation à appliquer parmi les 4 équations suivantes selon la parité de n. Algorithme ecace : (1) x 0 = 1 (2) x 1 = x (3) x 2i = (x...... ) i quand i > 0 (4) x 2i+1 = x (x...... ) i quand i > 0 1 pt Q1. (5 min, 1 pt) Donnez les étapes du calcul de 2 8 et de 2 14 avec l'algorithme ecace en indiquant sur chaque êche l'équation utilisée. On ne demande pas de faire le calcul nal. 2 8(=2 4) (3) (...........).. (=2.. )...... (...........)...................................................................... Combien d'étapes prend le calcul avec l'algorithme ecace?.. étapes Combien d'étapes aurait pris ce calcul avec l'algorithme standard?.. étapes 2 14(=...........)...... (.... ).. (=................... )....................................................................................................................................................................................................................................................................................................................................................... Combien d'étapes prend le calcul avec l'algorithme ecace?.. étapes Combien d'étapes aurait pris ce calcul avec l'algorithme standard?.... étapes 1 pt Q2. (5 min, 1 pt) Complétez la réalisation de la fonction puis. Dénition de la fonction par des équations (1) puis (x, 0) =.. (2) puis (x, 1) =.. (3) puis (x, i) =.................................. quand................................... (4) puis (x, i) =....................................................... quand................................... 2

let (puis : int * int -> int) = 2 pt Q3. Preuve de terminaison (5 min, 2 pt) Complétez la preuve de terminaison de la fonction puis. Faîtes uniquement la preuve pour l'équation (3). On ne demande pas de traiter l'équation (4) car la preuve est similaire. TERMINAISON Preuve de terminaison : (i) Les arguments de la fonction............... sont............................................... la fonction.............................................................................................. (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (....... ) =...... puisque les arguments de la fonction............... sont............... la fonction........., ils sont donc de type.................., et donc............. (iii) Montrons que la mesure...................................... à.............. appel.............. : Pour (ii), on considère uniquement les équations qui comportent des.............................: Pour l'équation.................. (3) on doit montrer : 3

(3) appel initial { }} { puis (x, i) = appel............ { }} {.......................... quand............................................ Mesure (...... )? > Mesure (............. ) quand............................................ def =.....? > def =...... quand............................................ Ainsi Mesure (...... ) > Mesure (............. ) quand............................................ En eet,......................................................................................................................................................................................................................................................... 4

5.5 pt Exercice 2 : Ordonner trois entiers à l'aide d'une fonction récursive (26min) Cet exercice montre que la récursivité permet d'ordonner un triplet (x, y, z) d'entiers sans qu'il soit nécessaire de détailler tous les cas possibles dans une immense suite de if...then...else... imbriqués. 1.5 pt Q4. (5 min, 1.5 pt) Complétez la dénition de la fonction trier Prol trier :............................................ Sémantique : trier (x, y, z) est le triplet des entiers x, y, z ordonnés dans l'ordre croissant. Exemple trier (3, 1, 2) = (1, 2, 3) Algorithme : Pour ordonner le triplet (x, y, z) on compare y avec l'un de ses voisins (x ou z) ; on ordonne y et un voisin si nécessaire et on appelle récursivement trier pour vérier que le triplet est trié ou bien faire d'autres réarrangements. Dénition récursive de la fonction par des équations 1) trier (x, y, z) = (..,..,.. ) quand..................... 2) trier (x, y, z) = trier (................. ) quand............ 3) trier (x, y, z) = trier (................. ) quand........... let (trier :... ) =.5 pt Q5. Trace d'exécution (2 min,.5 pt) Donnez la suite des appels récursifs engendrés par trier (3, 2, 1) en indiquant pour chaque appel l'équation utilisée... trier (3, 2, 1) trier....................................................................... 1 (1, 2, 3) 5

.5 pt Q6. Couple ordonné, couple inversé (4 min,.5 pt) Complétez la dénition de la fonction nbinv. Un couple (x, y) est une inversion si x > y ; par exemple, (3, 1) et (5, 2) sont des inversions. Les couples bien ordonnés (par exemple (1, 3) et (2, 5)) ne sont pas des inversions. Prol nbinv :............. {0, 1} Sémantique : nbinv (x, y) compte le nombre d'inversion dans le couple d'entiers (x, y). Autrement dit, nbinv (x, y) vaut.. si x > y et.. sinon Exemple nbinv........... = 0 nbinv........... = 1 let (nbinv :...) =... ;; 1 pt Q7. Décompte des inversions (5 min, 1 pt) Complétez la dénition de la fonction nbinv3. Prol nbinv3 :...................... {0, 1, 2, 3} Sémantique : nbinv3 (x, y, z) compte le nombre d'inversion dans le triplet d'entiers (x, y, z). C'est à dire le nombre de couples inversés parmi (x, y), (x, z), (y, z). Exemple nbinv3............... = 0 nbinv3............... = 3 nbinv3 (3, 1, 2) =.. nbinv3 (2, 1, 3) =.. let (nbinv3 :...) =...... ;; 6

2 pt Q8. Preuve de terminaison (10 min, 2 pt) Lorsque le triplet (x, y, z) est bien ordonné alors x y z et alors il ne contient plus aucune inversion. Complétez la preuve de terminaison de la fonction trier en prenant pour mesure le nombre d'inversions. TERMINAISON Preuve de terminaison : (i) Les arguments de la fonction............... sont............................................... la fonction.............................................................................................. (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (............) =.............................. {0, 1, 2, 3}... N d'après le prol de la fonction.............. (iii) Montrons que la mesure...................................... à.............. appel.............. : Pour (ii), on considère uniquement les équations qui comportent des.............................: Pour l'équation récursive (2) on doit montrer : Équation (2) appel initial { }} { trier (x, y, z) = appel récursif { }} {.......................... quand........... Mesure (............)? > Mesure (............) quand........... = =........................................................................................? >........................................................................................ quand........... ce qui se simplie en nbinv (....... ) =.....? > nbinv (....... ) quand........... ok > =..... donc on a bien Mesure (............) > Mesure (............) quand........... On ne demande pas la preuve de la terminaison de l'équation (3) qui est similaire. 7

Exercice 3 : La meilleure combinaison au poker (72min) 13 pt L'objectif de ce problème est d'écrire un programme qui détermine automatiquement la meilleure combinaison de carte à partir des deux cartes données au joueur en début de partie et de trois cartes posées sur la table. 3.1 Commençons par dénir le type des cartes On dénit un ensemble Famille et un ensemble Valeur où le symbole Valet correspond au valet, Dame à la dame et Roi au roi, on vous laisse libre de choisir comment réprésenter les cartes de 1 à 10 DÉFINITION MATHÉMATIQUE D'ENSEMBLES déf Famille = {,,, } déf Valeur = {2, 3,..., 10, Valet, Dame, Roi, As} 1 pt Q9. (4 min, 1 pt) Complétez les dénitions de type et d'ensembles ci-dessous, sachant qu'une carte est un couple qui indique la valeur et la famille de la carte. Attention à l'ordre dans lequel vous donnez les éléments du type valeur car on veut que 2 < 3 <... < 10 < Valet < Dame < Roi < As DÉFINITION INFORMATIQUE D'UN TYPE type famille =.. type valeur =.. DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf Carte = {(v, f) v.............., f............... } =................................ DÉFINITION INFORMATIQUE D'UN TYPE type carte =... ;;.5 pt Q10. (2 min,.5 pt) Complétez la dénition de la fonction valeur-carte Prol valeur-carte :................................. Sémantique : valeur-carte (c) est la valeur de la carte c 8

Exemple valeur-carte (Roi, ) = Roi let... = ;;... 1 pt Q11. (5 min, 1 pt) Complétez la dénition de la fonction valeur-vers-chaine Prol valeur-vers-chaine : Valeur Chaîne Sémantique : valeur-vers-chaine (v) est la chaîne de caractères correspondant à la valeur v Exemples 1. valeur-vers-chaine (Roi) = "roi" 2. valeur-vers-chaine (...... ) = "as" 3. valeur-vers-chaine (.......... ) = "2" let (valeur-vers-chaine :...) = 9

3.2 Les règles du poker Au début de la partie, chaque joueur reçoit deux cartes (qu'on appelle sa main). On étale ensuite trois cartes face visible sur la table et chaque joueur essaie de constituer la meilleure combinaison de cartes à partir de ses 2 cartes connues de lui-seul et des 3 cartes de la table connues de tous les autres joueurs. Ensuite commencent les enchères, le blu, le goudron et les plumes ; à partir de ce moment-là il s'agit moins d'informatique que de psychologie et de western. 3.3 Les annonces du poker Pour avoir des chances d'emporter le tour le joueur doit trouver la meilleure annonce parmi les annonces suivantes 1 que l'on donne dans l'ordre décroissant : de la plus forte (le carré) à la plus faible (5 cartes orphelines, c'est-à-dire 5 cartes de valeurs diérentes) un carré : 4 cartes de même valeur un full : 5 cartes formant un brelan et une paire une double paire : 4 cartes formant deux paires un brelan : 3 cartes de même valeur une paire : 2 cartes de même valeur je me couche : 4 ou 5 cartes orphelines (ça ne vaut rien... inutile de bluer, mieux vaut passer le tour) La famille des cartes ne joue aucun rôle dans le poker. Par contre la valeur des cartes compte et permet d'ordonner deux combinaisons similaires : un carré d'as est plus fort qu'un carré de rois, qui est plus fort qu'un carré de dames,....75 pt Q12. Représentation des annonces (4 min,.75 pt) Complétez la dénition du type caml annonce qui permet de représenter les annonces du poker. On rappelle que la famille des cartes ne jouent aucun rôle au poker. DÉFINITION INFORMATIQUE D'UN TYPE type annonce = Carré of valeur Brelan of.. Paire of.. DoublePaire of.. Full of.. Jemcouche ;; 3.4 Recherche de la meilleure combinaisons de cartes Pour trouver la meilleure combinaison de 5 cartes, chaque joueur commence par construire la meilleure combinaison des deux cartes de sa main à l'aide de la fonction combiner de la question Q14. Ensuite on améliore cette combinaison à deux cartes en ajoutant une carte de la table, grâce à la fonction améliorer de la question Q15. On obtient ainsi une combinaison de 3 cartes qu'on améliore de la même manière en ajoutant la seconde carte de la table, puis en ajoutant la dernière carte de la table. On obtient nalement la meilleure combinaison de 5 cartes. Ces combinaisons peuvent contenir des cartes orphelines, il faut les éliminer de la combinaison an d'en faire une annonce. Dans ce problème on distingue donc deux types : le type annonce qui ne contient pas de carte orpheline. Les annonces sont le résultat de la recherche de la meilleure combinaison. 1 Dans ce problème on ne considère pas les suites mais vous pourrez vous amuser à le faire chez vous. 10

le type combinaison qui est utilisé pendant les étapes de recherche de la meilleure combinaison. Tant qu'on n'a pas pris en compte toutes les cartes de la table, les combinaisons conservent les cartes orphelines car celles-ci pourraient se combiner avec une prochaine carte de la table. 3.5 Représentation des combinaisons de cartes On représente les combinaison possibles à l'aide de diérents constructeurs : P(v) représente une paire, B(v) représente un brelan, C(v) un carré où v représente la valeur des cartes (on oublie la famille qui n'a pas d'importance) O2(o 1, o 2 ) représente deux cartes orphelines et O3(o 1, o 2, o 3 ) trois orphelines. Les valeurs o 1, o 2 et o 3 sont donc diérentes. F(v 1, v 2 ) représente un full (trois cartes de valeur v 1 et deux cartes de valeur v 2 ) Dp(v 1, v 2 ) représente une double paire (deux cartes de valeur v 1, deux cartes de valeur v 2 ). Bo(v, o) représente un brelan de v et une carte orpheline de valeur o. Po(v, o) représente une paire de v et une carte orpheline de valeur o. Poo(v, o 1, o 2 ) représente une paire de v et deux cartes orphelines de valeurs o 1 et o 2 diérentes. Nul représente le cas de 4 ou 5 cartes orphelines ; il est inutile de préciser leurs valeurs puisque cela ne vaut rien. 1 pt Q13. (6 min, 1 pt) Complétez la dénition du type combinaison. DÉFINITION INFORMATIQUE D'UN TYPE type combinaison = (* combinaison de 2 cartes *) P of valeur O2 of valeur * valeur (* combinaisons de 3 cartes *) B of... Po of... O3 of... (* combinaisons de 4 cartes *) C of valeur Dp of valeur * valeur Bo of... Poo of... (* combinaisons de 5 cartes *) F of... (* combinaisons de 4 ou 5 orphelines *) Nul ;; 11

1 pt Q14. (5 min, 1 pt) Complétez la dénition de la fonction combiner qui construit la main, c'est-à-dire la combinaison de départ à partir des deux cartes données au joueur. Prol combiner : Carte Carte Combinaison Sémantique : combiner (c 1, c 2 ) est la meilleure combinaison que l'on peut réaliser avec les cartes c 1 et c 2. C'est soit une paire, soit deux orphelines. Exemples 1. combiner (........, ), (........, )) = P(Roi) 2. combiner (Valet, ), (Dame, )) =......................................... let (combiner : carte * carte -> combinaison) =............ ;; 2 pt Q15. (15 min, 2 pt) Complétez la fonction suivante qui tente d'améliorer une combinaison en utilisant une carte supplémentaire de la table. An de ne pas oublier de cas, procéder de manière méthodique en considérant d'abord qu'on ajoute la carte à des combinaisons à deux cartes, puis à des combinaisons à trois cartes, etc. Prol améliorer : Combinaison Carte Combinaison Sémantique : améliorer (comb, carte) est la meilleure combinaison que l'on peut réaliser avec la combinaison comb et la carte c. Exemples 1. améliorer (P(Roi), (Roi, )) = B(Roi) 2. améliorer (P(Roi), (Dame, )) = Po(Roi, Dame) 3. améliorer (C(Roi), (Dame, )) = C(Roi) on ne peut pas améliorer un carré! 4. améliorer (O2(Valet, Dame), (Roi, )) = O3(Valet, Dame, Roi) 12

let (améliorer : combinaison * carte -> combinaison) = function (comb,carte) -> let.. = valeur-carte (...) in match... with (* améliorer une combinaison à deux cartes *) P(v1) O2(o1,o2) (* améliorer une combinaison à trois cartes *) B(v1) Po(v1,o) O3(o1,o2,o3) (* améliorer une combinaison à quatre cartes *) Bo(v1,o) Poo(v1,o1,o2) Dp(v1,v2) ;; 13

1.5 pt Q16. (5 min, 1.5 pt) Complétez les dénitions de types et la dénition de la fonction meilleure-combinaison. Pensez à utiliser les fonctions précédentes. DÉFINITION MATHÉMATIQUE D'ENSEMBLES déf Main = {(c 1, c 2 ) c 1, c 2 Carte} déf Table = {(c 1, c 2, c 3 ) c 1, c 2, c 3 Carte} DÉFINITION INFORMATIQUE D'UN TYPE type main =... ;; type table =... ;; Prol meilleure-combinaison : Main Table Combinaison Sémantique : meilleure-combinaison (m, t) est la meilleure combinaison de 4 cartes parmi les 2 cartes de la main m et les 3 cartes de la table t Exemple meilleure-combinaison ( ( (Roi, ), (Valet, ) ), ( (Roi, ), (Roi, ), (Roi, ) ) ) = C(Roi) Algorithme de la table. : On améliore la combinaison de départ à deux cartes en ajoutant une par une les cartes 14

let (meilleure-combinaison :... -> combinaison) = function (m,t) 3.6 Les annonces Avant d'abattre ses cartes et de montrer la combinaison qu'il a réalisée chaque joueur retire les cartes orphelines. Ce que le joueur annonce n'est donc pas de type combinaison mais de type annonce. L'intérêt du type annonce est qu'il interdit de mentionner les cartes orphelines et permet uniquement de représenter des combinaisons de cartes qui correspondent à des annocnes de poker : Carré, Full, Double Paire, Brelan, Paire, ou bien Je me couche..25 pt Q17. (1 min,.25 pt) Pour indiquer qu'on se couche, on a choisi le symbole Jemcouche. Pourquoi ne peut-on pas utiliser le symbole Nul du type combinaison dans le type annonce pour indiquer qu'on se couche?........................................................................................................................................................................................................ 1 pt Q18. Annonce d'une combinaison (8 min, 1 pt) Complétez la fonction annonce qui traduit la combinaison d'un joueur sous la forme d'une annonce : (1) en éliminant les cartes orphelines (2) en indiquant que le joueur se couche s'il n'a pas réussi à obtenir une combinaison correspondant aux annonces autorisées dans ce problème. (3) en ordonnant les double paires de manière à annoncer la paire la plus forte d'abord. À ce propos, on rappelle que les opérateurs de comparaison <,, =,, > sont de type T T Bool ce qui signie qu'ils sont valables pour tous les types, y compris le type valeur. Vous avez donc le droit de les utiliser pour comparer des valeurs de cartes. Prol annoncer :...................................................... Sémantique : Exemples 1. annoncer (Nul) = Jemcouche d'après (2) 2. annoncer (Po(Valet, Dame)) =................................ d'après...... 3. annoncer (O3(v 1, v 2, v 3 )) =........................... d'après...... 15

4. annoncer (Dp(Valet, Roi) =................................(Roi, Valet) d'après...... let (annoncer :...) = function P(v)...... ;; 16

Q19. Comparaison des annonces (10 min, 1.5 pt) Complétez la dénition du prédicat sup. 1.5 pt Prol sup : Annonce Annonce......... Sémantique : sup (a 1, a 2 ) indique si l'annonce a 1 est strictement supérieure à l'annonce a 2 Exemples 1. sup (................................(Roi, Dame),................................(Roi, Valet)) =......... 2. sup (................................(Dame, Valet),................................(Roi, Valet)) =......... 1 let (sup : annonce * annonce ->... ) = 2 function 3 Carré(v1), Carré(v2) 4 5 6 7 8 9 10 11 12 13 14 15 17

16 17 18 1.5 pt Q20. Le gagnant du tour (7 min, 1.5 pt) Complétez la dénition de la fonction gagnant. ( ) ( ) Prol gagnant : Chaîne Main Chaîne Main Table Chaîne Sémantique : gagnant ( ( ) ( ) j 1, m 1, j2, m 2, t ) est le nom du joueur (soit j1, soit j 2 ) qui a obtenu la meilleure annonce à partir des cartes de sa main et des cartes de la table ; la fonction retourne "exaequo" si les annonces sont équivalentes. let (gagnant :......) = function...... ;; 18