Jeu de l anagramme [tb08] - Exercice

Documents pareils
alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

1.6- Génération de nombres aléatoires


Quelques algorithmes simples dont l analyse n est pas si simple

La simulation probabiliste avec Excel

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

1 Recherche en table par balayage

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Cours de Probabilités et de Statistique

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Tutoriel : Ecrire un article sur le site de la TEAM GSAS

Procédure pour emprunter ou réserver un livre numérique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Modes opératoires pour le chiffrement symétrique

NOTICE D INSTALLATION

LES DECIMALES DE π BERNARD EGGER

Logiciel SuiviProspect Version Utilisateur

Guide Numériser vers FTP

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Comment ouvrir un compte et accéder à la télédéclaration? Rendez-vous sur le site :

Objets Combinatoires élementaires

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

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

Guide d utilisation de la bibliothèque en ligne du FMI Création d un livre personnalisé

Algorithmique et programmation : les bases (VBA) Corrigé

Carré parfait et son côté

LES MOTEURS DE RECHERCHE SUR INTERNET

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Suites numériques. Exercice 1 Pour chacune des suites suivantes, calculer u 1, u 2, u 3, u 10 et u 100 : Introduction : Intérêts simpleset composés.

SERVICES EN LIGNE DES SUBVENTIONS ET DES CONTRIBUTIONS

Algorithmes récursifs

a) b)

A.-M. Cubat PMB - Import de lecteurs - Généralités Page 1 Source :

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

i7 0 Guide de référence rapide Français Document number: Date:

MUNIA Manuel de l'utilisateur

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Limites finies en un point

1. Pourquoi? Les avantages d un bon référencement

Programmation linéaire

Définitions. Numéro à préciser. (Durée : )

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

JULIE SMS V2.0.1 NOTICE D INSTALLATION ET D UTILISATION

Chapitre 4. Gestion de l environnement. Pré-requis. énoncé

Correction du baccalauréat ES/L Métropole 20 juin 2014

Quelques tests de primalité

NOUVEAU Site internet

Envoi automatique des Avis d échéances Locataires par

Fiche pédagogique : ma famille et moi

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

OFFRE DE FORMATION DANS LE SYSTÈME LMD

CORRECTION EXERCICES ALGORITHME 1

Les suites numériques

Leçon 01 Exercices d'entraînement

Auto-Entreprise : Activités : Eric SOTY - Siret n Formation Bureautique, continue d'adultes. Tél : Fax :

INU Information et sites Web 10 avril 2015 SEO. Dominic Forest, Ph.D.

AURELIE Gestion Commerciale Mode d emploi pour Gestion des cartes de fidélité 1/ But : / Pré-Requis : / Fiches à créer au préalable :...

Evolutions dans FFBClubNet v :

SOLUTION DE GESTION COMMERCIALE POUR IMPRIMEURS

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Par défaut, VisualQie utilise la messagerie qui est déclarée dans Windows, bien souvent OUTLOOK EXPRESS ou encore OUTLOOK.

Présentation du Sedex Data Monitor Une nouvelle gamme excitante d outils de reporting performants

Installation de la visionneuse de fichiers PDF, Adobe Reader (si ce n'est pas déjà fait)

Cryptographie et fonctions à sens unique

Ell-Cam Serrure électronique

Google AdWords ou référencement naturel Comment choisir?

Résolution d équations non linéaires

Principes d AdWords. Quelques mots de présentation. Une audience large : les réseaux de ciblage. Réseau de recherche

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Avertissements et Mises en garde

Services de Marketing sur Internet

Python - introduction à la programmation et calcul scientifique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

16 Chapitre 16. Autour des générateurs pseudoaléatoires

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Effectuer un paiement par chèque

Les Enjeux du Référencement de Sites Internet. Un livre blanc réalisé par Benchmark Group pour Netbooster

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

Plan du cours Cours théoriques. 29 septembre 2014

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Foire aux questions. Présentation

Réaliser un ing avec Global Système

TP 1. Prise en main du langage Python

Meilleures pratiques de l authentification:

Solutions de gestion de la sécurité Livre blanc

PRODUITS Utiliser la messagerie intégrée dans VisualQie

C f tracée ci- contre est la représentation graphique d une

Quelle surface indiquer sur la déclaration? Quel nombre de pièces indiquer sur la déclaration?

Europresse.com. Pour bibliothèque d enseignement Pour bibliothèque publique. Consulter facilement la presse. Guide version 1.

Didacticiel de création de sa fiche antenne Portail Consomm action

Mon aide mémoire traitement de texte (Microsoft Word)

tâches nature durée en jours prédécesseurs C commande des matériaux 1 A D creusage des fondations 4 B E commande des portes et fenêtres 2 A

Prise en main. août 2014

TSTI 2D CH X : Exemples de lois à densité 1

Algorithmique avec Algobox

Transcription:

Jeu de l anagramme [tb08] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 8 avril 2015 Table des matières 1 Jeu de l anagramme / pg-jeugrama1 (C++) 1 1.1 Présentation du jeu.............................. 1 1.2 Saisie d un mot (6 points).......................... 2 1.3 Procédures et fonctions utilitaires (6 points)................ 3 1.4 Proposition d un mot (3 points)....................... 4 1.5 Divination (4+1 points)........................... 4 1 Jeu de l anagramme / pg-jeugrama1 (C++) Mots-Clés Tableaux, Algorithmique, Programmation, C++. Requis Structures de base, Structures conditionnelles, Algorithmes paramétrés, Structures répétitives, Schéma itératif, Tableaux. Cet exercice réalise le jeu de l anagramme. 1.1 Présentation du jeu Anagramme Une anagramme (le mot est féminin) du grec anagramma : renversement de lettres est une construction qui permute les lettres d un mot pour en extraire un mot nouveau. Exemple : crane, écran, nacre, carne, rance, ancre. (Wikipédia) Jeu de l anagramme Il se joue à deux. L un pense à un mot, mélange les lettres de ce mot qui est un anagramme du mot initial et affiche cet anagramme. L autre doit deviner le mot initial en proposant des anagrammes. Après chacun des anagrammes proposés, l autre joueur donne le nombre de lettres bien placées. Au bout de sept échecs, le joueur a perdu s il n a pas réussi à deviner le mot initial. 1

Unisciel algoprog Jeu de l anagramme / tb08 2 Version programmée La machine organise le jeu. Voici le début d une partie : Le premier joueur entre le mot potence. (La longueur du mot est de 7 caractères) La machine mélange les lettres et affiche eteconp Le second joueur propose tecnpoe. (La machine ne vérifie pas que le mot existe!) La machine affiche : 1 lettre(s) bien placée(s) (dernier e bien placé) Le joueur propose petonce. La machine affiche que 5 lettres sont bien placées.... Déroulement du programme 1. Le premier joueur entre un mot de 3 à 10 lettres pendant que l autre joueur ne regarde pas. 2. La machine mélange les lettres de ce mot puis affiche l anagramme. 3. Le second joueur propose un anagramme. 4. La machine indique combien de lettres sont bien placées. 5. La machine reprend au point 3 sauf si le joueur a épuisé tous ses coups ou trouvé le mot initial. A la fin de la partie, la machine affiche si le joueur a gagné ou non. Paramètres formels des tableaux Il sera impératif de les définir correctement : Par référence dans le cas d un paramètre effectif en Résultat ou en Modifié. Par référence constant en Donnée. 1.2 Saisie d un mot (6 points) L idée est d utiliser un tableau d au plus dix caractères pour mémoriser le mot à deviner ainsi que pour proposer un mot. Pour indiquer qu une lettre a été prise, on la remplacera par le caractère souligné qui n est pas une lettre. (1 point) Définissez les constantes entières NMIN de valeur 3 (longueur minimale) et NMAX de valeur 10 (longueur maximale) des mots. Puis définissez le type TabCarac comme étant un tableau de NMAX caractères. (1 point) Écrivez une fonction estlettre(c) qui teste et renvoie Vrai si un caractère c est une lettre minuscule (donc compris entre a et z ), Faux sinon. (2 points) Déduisez une procédure saisirlettre(c) qui effectue la saisie validée d une lettre dans un caractère c, c.-à-d. que la procédure doit demander un caractère jusqu à ce que estlettre(c) soit vraie.

Unisciel algoprog Jeu de l anagramme / tb08 3 (2 points) Écrivez une procédure saisirmot(mot,n) qui effectue une saisie sécurisée de n (entier) qui doit être compris entre NMIN et NMAX puis fait la saisie d un TabCarac dans mot de n lettres par appel à la procédure saisirlettre. (0.5 point) Écrivez le début du programme qui déclare un entier n et un TabCarac adeviner puis effectue sa saisie. Testez. 1.3 Procédures et fonctions utilitaires (6 points) (2 points) Écrivez une procédure melanger(mot,n) qui mélange les n caractères d un TabCarac mot comme suit : Pour j variant de n-1 à 1 (pas décroissant) 1. Tirez au hasard un entier k entre 0 et j inclus. 2. Permutez les caractères en position k et j de mot. Outil C++ La fonction rand() renvoie un entier pseudo-aléatoire. Elle est définie dans la bibliothèque <cstdlib>. Utilisez l opérateur modulo pour projeter l entier pseudoaléatoire dans l intervalle souhaité. (1 point) Écrivez une procédure affichermot(mot,n) qui affiche les n premiers caractères d un TabCarac mot. (1 point) Écrivez une procédure copiermot(mot,copie,n) qui recopie les n caractères d un TabCarac mot dans un TabCarac copie. (2 points) Écrivez une fonction rechlin(c,mot,n) qui recherche et renvoie l indice d un caractère c dans les n premiers caractères d un TabCarac mot, -1 en cas de recherche infructueuse.

Unisciel algoprog Jeu de l anagramme / tb08 4 1.4 Proposition d un mot (3 points) Pour la saisie sécurisée de n caractères dans un TabCarac mot étant donné l anagramme TabCarac ana, on utilisera l algorithme suivant : Recopiez l anagramme ana dans un TabCarac copie. Tant que les n caractères n ont pas été saisis : Saisissez une lettre dans c. Recherchez c dans la copie. En cas de recherche fructueuse, placez c dans mot, incrémentez le nombre de caractères saisis et remplacez le caractère dans copie par le blanc souligné (_). Sinon, affichez : Lettre non presente dans l anagramme Finalement, affichez le mot saisi. (3 points) spécifié. Écrivez une procédure proposermot(mot,n,ana) qui réalise l algorithme 1.5 Divination (4+1 points) Reste à définir la procédure qui permet à un joueur de proposer des mots jusqu à ce qu il trouve le mot de n caractères d un TabCarac adeviner en au plus sept coups. Cette procédure devra : Recopiez adeviner dans un TabCarac ana. Mélangez les lettres de l anagramme ana. Déclarez un TabCarac mot, un entier ncoups du nombre de coups effectués et un entier nbp du nombre de lettres bien placées. Initialisez ncoups et nbp. Tant que les sept coups n ont pas été joués et que le mot n a pas été trouvé : Incrémentez le nombre de coups effectués. Affichez le message suivant (où [x] désigne le contenu de x) : coup [ncoups] -- Anagramme du mot a trouver = [ana] Proposez un mot de n caractères parmi ana. Calculez le nombre de lettres bien placées nbp. Affichez le message suivant :

Unisciel algoprog Jeu de l anagramme / tb08 5 [nbp] lettre(s) bien placee(s) Affichez l un des messages, selon que le joueur a ou non trouvé le mot : Super gagne en [ncoups] coups Perdu -- le mot a trouve etait [adeviner] (1 point) Écrivez une fonction bienplaces(mot,n,adeviner) qui calcule et renvoie le nombre de caractères bien placés parmi les n premiers caractères d un TabCarac mot et TabCarac adeviner. Définissez la constante entière NCOUPS de valeur 7. (3 points) Écrivez une procédure devinermot(adeviner,n) qui réalise l algorithme spécifié ci-avant. (0.5 point) Complétez votre programme en appelant la procédure précédente.

Unisciel algoprog Jeu de l anagramme / tb08 6 Validez votre programme avec la solution. Solution simple C++ @[pg-jeugrama1.cpp]