Introduction à Php - Cours E.Thirion
Transcription
Introduction à Php - Cours E.Thirion
Introduction à Php - Exercices - Simulation de dés - page 1 Introduction à Php Exercices Simulation de lancer de dés Auteur : E. Thirion - Dernière mise à jour 22/12/2015 Ce document est extrait du site http://cours.thirion.free.fr/Cours/IntroPHP Cliquez ici pour y accéder directement. Les exercices présentés ici sont des fichiers à complèter. Pour faire ces exercices , il vous faudra obligatoirement télécharger un certain nombre de dossiers et installer WAMP (Windows Apache Mysql Php) sur votre PC. L'installation de WAMP, les dossiers à télécharger et la manière de les installer sur votre ordinateur sont décrits dans le document suivant. Le téléchargement n'est possible que via un login et un mot de passe, que vous pouvez obtenir en m'envoyant un mail à l'adresse suivante: en précisant un peu qui vous êtes et les raisons pour lesquels ce cours vous intéresse. Lorsque vous aurez votre login et mot de passe, cliquez sur le lien suivant pour télécharger. Lorsque vous aurez tout installé sur votre machine, vous pourrez tester vos exercices en cliquant sur l'entrée adéquate dans la partie Test des script du menu de gauche de votre copie du site installée sur votre machine. Le lien test de la colonne Votre Solution vous permettra d'exécuter votre solution à un exercice donné, alors que le lien test de la colonne Corrigé vous permettra d'exécuter le corrigé de l'exercice. Organisation des fichiers Le fichier Des-Fonctions.php du dossier Etudiant/Des contient différentes fonctions Php que vous aurez à écrire. Chaque exercice correspond à un fichier php Des-Exo... du dossier Etudiant/Des : Les fichiers Des-Exo... sont appelés par les liens de test et utilisent tous (par un include) le fichier DesFonctions.php. Pour faire les différents exercices vous aurez simplement à complèter différentes fonctions du fichier DesFonctions.php. Ne modifiez pas les fichiers Des-Exo... Le dossier Images/Face contient six fichiers images (format gif) nommés Face1.gif, Face2.gif, ....., Face6.gif représentant les six faces d'un dé: Introduction à Php - Exercices - Simulation de dés - page 2 Exercice 1 Voici le contenu du fichier Des-Exo1.php : <?php include('Des-Fonctions.php'); ?> <html> <body> <table align=center> <tr> <td> <?php $d = Dé(); ImageFace($d); ?> </td> </tr> </table> </body> </html> Pour que ce script fonctionne: ● la fonction Dé doit retourner un nombre aléatoire compris entre 1 et 6. ● La fonction ImageFace doit générer la balise img de la face numéro $d. Votre travail : Complètez le code des fonctions Dé et ImageFace. Pour la balise img, on prendra une hauteur et une largeur de 50 pixels. Exercice2 Le fichier Des-Exo2.php contient le code suivant: <?php include('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice2</h3></center> <table border=2 align=center cellpadding=10> <tr height=50> <td> <?php $d=Dé(); ImageFace($d); ?> <tr> <td align=center> </table> </font> </body> </html> <?php NomFace($d); ?> </td> </tr> </td> </tr> Introduction à Php - Exercices - Simulation de dés - page 3 Le rôle de cette page Php est d'afficher au hasard l'image d'une des six faces de dé ainsi que le chiffre obtenu en toute lettres (c'est à dire "un" ou "deux" ou "trois" ou "quatre" ou "cinq" ou "six"). Par exemple, si la fonction Dé retourne la valeur 5, le navigateur affichera: Votre travail : Ecrivez le code de la fonction NomFace. Exercice 3 Le fichier Des-Exo3.php contient le code suivant (colspan = 2 sert à étendre la cellule contenant le message sur deux colonnes) : <?php include('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice3</h3></center> <table border=2 align=center cellpadding=10> <tr height=50> <td align=center> <?php $d1=Dé(); ImageFace($d1); ?> </td> <td align=center> <?php $d2=Dé(); ImageFace($d2); ?> </td> </tr> <tr> <td align=center colspan=2> <?php Message($d1,$d2); ?> </td> </tr> </table> </font> </body> </html> Cette page Php a pour but de générer deux lancers de dé. Si les deux dés affichent la même face (par exemple 2), le navigateur devra afficher ceci : Introduction à Php - Exercices - Simulation de dés - page 4 Dans le cas contraire, il devra afficher ceci: Votre travail : Ecrivez le code de la fonction Message. Exercice 4 Le fichier Des-Exo4.php contient le code suivant: <?php include('Des-Fonctions.php'); ?> <html><body><font face="Verdana"> <center><h3>Exercice4</h3></center> <table border=2 align=center cellpadding=10> <tr height=50> <?php Suite1(); ?> </tr> </table> </font></body></html> Cette page Php a pour but d'afficher les six faces dans l'ordre 1, 2, 3, .... 6 comme suit: Votre travail : Ecrivez le code de la fonction Suite1 en utilisant obligatoirement une boucle. Introduction à Php - Exercices - Simulation de dés - page 5 Exercice 5 Question A Le fichier Des-Exo5-A.php contient le code suivant: <?php include('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice5 - A</h3></center> <table border=2 align=center cellpadding=10> <tr height=50> <?php Suite2 (1,6); Suite2 (1,0); ?> </tr> <tr height=50> <?php Suite2 (2,6); Suite2 (1,1); ?> </tr> <tr height=50> <?php Suite2 (3,6); Suite2 (1,2); ?> </tr> <tr height=50> <?php Suite2 (4,6); Suite2 (1,3); ?> </tr> <tr height=50> <?php Suite2 (5,6); Suite2 (1,4); ?> </tr> <tr height=50> <?php Suite2 (6,6); Suite2 (1,5); ?> </tr> </table> </font> </body> </html> L'exécution de cette page doit provoquer l'affichage suivant: La fonction suite2 ($n,$m) utilisée dans cette page fonctionne comme suit: ● Si $n est strictement supérieur à $m. Elle n'a aucun effet. ● Sinon, elle génère les cellules de tableau contenant les image des faces $n, $n+1, ..... jusqu'à $m. Votre travail : Ecrivez le code de la fonction Suite2 en utilisant obligatoirement une boucle. Introduction à Php - Exercices - Simulation de dés - page 6 Question B Le fichier Des-Exo5-B.php contient le code suivant: <?php include('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice5 - B</h3></center> <table border=2 align=center cellpadding=10> <?php Exo5A ( ); ?> </table> </font> </body> </html> Cette page a exactement le même effet que celle de la question A. Pour que cela fonctionne, la fonction Exo5A doit donc générer les six lignes du tableau. Votre travail : Ecrivez le code de la fonction Exo5A en utilisant obligatoirement une et une seule boucle. Exercice 6 Le fichier Des-Exo6.php contient le code suivant: <?php include ('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice6</h3></center> <table border=2 align=center cellpadding=10> <tr height=50> <?php $n = Suite3 ( ); ?> </tr> <tr> <td align=center colspan=<?php echo $n; ?> > <?php echo "$n lancers de dé"; ?> </td> </tr> </table> </font> </body> </html> Cette page Php permet de simuler une suite de lancers de dé se terminant par un six. Elle affiche également le nombre de lancers. Dans l'exemple suivant, il a fallu 8 lancers pour obtenir un six: Introduction à Php - Exercices - Simulation de dés - page 7 La fonction suite3 utilisée dans cette page php doit donc générer une suite de cellules contenant des images de face de dés tirées au hasard et se terminant obligatoirement par un six. Comme les images sont tirées au hasard, la longueur de la suite est a priori inconnue.La fonction suite3 doit également retourner le nombre de lancers afin qu'il puisse être affiché dans le deuxième script. Votre travail : Ecrivez le code de la fonction Suite3 en utilisant obligatoirement une boucle. Exercice 7 Le fichier Des-Exo7.php contient le code suivant: <?php include('Des-Fonctions.php'); ?> <html> <body> <font face="Verdana"> <center><h3>Exercice7</h3></center> <?php $d1=Dé(); $d2=Dé(); $d3=Dé(); ?> <table border=2 align=center cellpadding=10 > <tr height=50> <td align=center> <?php ImageFace($d1); ?> </td> <td align=center> <?php ImageFace($d2); ?> </td> <td align=center> <?php ImageFace($d3); ?> </td> </tr> <tr> <td align=center colspan=3> <?php Message2($d1,$d2,$d3); ?> </td> </tr> </table> </font> </body> </html> Cette page Php affiche trois lancers de dés aléatoires ainsi qu'un message précisant si l'on a obtenu un double, un triple ou une suite ou rien. Exemple1: une face apparait exactement deux fois Le navigateur affiche également dans ce cas quelle est la face qui apparait deux fois: Introduction à Php - Exercices - Simulation de dés - page 8 Exemple 2: la même face apparait trois fois. De même, si on obtient un triple, le numéro de la face obtenue trois fois est précisé: Exemple 3: suite On obtient une suite, si les trois lancers de dés correspondent à trois entiers consécutifs ( dans l'ordre croissant ou décroissant). Exemple: Il y a donc huit suites possibles: 1-2-3, 2-3-4, 3-4-5, 4-5-6 (ordre croissant) ou bien 6-5-4, 5-4-3, 4-3-2, 3-2-1 (ordre décroissant). Exemple 4: on obtient, ni un double, ni un triple, ni une suite. Le code de la fonction Message2 figure dans le fichier Des-Fonctions.php. Elle fait appel à trois fonctions: ● Double($d1,$d2,$d3) : retourne 0 si n'y a pas de double et sinon, le numéro de la face qui apparait deux fois. ● Triple ($d1,$d2,$d3) : retourne 0 si n'y a pas de triple et sinon, le numéro de la face qui apparait trois fois. ● Suite ($d1,$d2,$d3) : retourne true s'il s'agit d'une suite et false sinon. Votre travail : Ecrivez le code des fonctions Double, Triple et Suite.