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.