Exercices sur les Tableaux Php - Cours E.Thirion

Transcription

Exercices sur les Tableaux Php - Cours E.Thirion
Exercices sur les tableaux Php - page 1
Exercices sur les Tableaux Php
E. Thirion - 23/12/2015
Ce document est extrait du site http://cours.thirion.free.fr/Cours/TableauxPHP
Liens utiles:
●
Cours associé à ce document
●
Installation des dossiers et logiciels nécessaires.
●
Conditions d'accès au téléchargement.
●
Voir tous les cours du même auteur.
Corrigés
Le corrigé des exercices suivants se trouve dans le dossier Corrige-TableauxPHP disponible par
téléchargement.
Principe des exercices
Les exercices sont des fichiers php à complèter que vous trouverez dans le dossier Etudiant après
installation du cours sur votre ordinateur. Le fichier à utiliser est indiqué pour chaque exercice (Solution
dans ...). Pour exécuter votre solution cliquez sur l'entrée Votre solution de la partie Test des scripts du
menu. Le résultat de l'exécution de votre script apparaitra alors dans le cadre droit. Vous pouvez de même
exécuter le corrigé de l'exercice en cliquant sur l'entrée Corrigé située juste en-dessous de Votre Solution.
Exercice 1: Mois de l'année
Solution dans : Etudiant\Solution-Mois.php
On voudrait réaliser un tableau HTML $Mois donnant le nombre de jours de chaque mois de l'année par un
script PHP utilisant un tableau PHP.
Les clefs de ce tableau PHP sont les noms des mois de l'année. La valeur d'un élément du tableau est le
nombre de jours du mois indexant cet élément:
Le tableau HTML possède trois colonnes et se présente comme ceci :
La deuxième colonne donne le numéro du mois.
Exercices sur les tableaux Php - page 2
Exercice 2: Maximum d'un tableau
Solution dans : Etudiant/Solution-MaxTab.php.
Il s'agit de complèter le code de cette page de manière à ce qu'elle affiche les valeurs maximales d'un
tableau d'entiers comme ceci :
Il vous suffira pour cela :
•
d'écrire à l'endroit indiqué dans le fichier une fonction php MaxTab($T) qui retourne la plus grande
valeur du tableau $T.
•
d'écrire la procédure AfficherMaxTab($T,$Max) permettant d'afficher le tableau $T en mettant en
évidence les éléments dont la valeur est égale à $Max, comme dans la figure ci-dessus. Pour
améliorer la présentation du tableau vous pouvez utiliser la fonction CellulePoliceTaille définie dans
Includes-Du-Prof.php ou définir vous même une fonction équivalente. Cette fonction génère les
balises HTML d'une cellule de tableau de manière à ce que le texte contenu dans cette cellule soit
affiché dans une police donnée et une taille de caractère donnée.
Le fichier Etudiant/Solution-MaxTab.php contient les trois instructions suivantes (à ne pas modifier !) :
$T = TableauAleatoire(10,1,7);
$Max = MaxTab($T);
AfficherMaxTab($T,$Max);
La première construit le tableau $T, grace à un appel à la fonction TableauAleatoire($n,$vmin,$vmax) qui
retourne un tableau de $n éléments dont les valeurs sont des nombres entiers au hasard compris entre
$vmin et $vmax. Cette fonction est définie dans le fichier Includes-Du-Prof.php.
Les deux instructions suivantes utilisent votre fonction MaxTab et votre procédure AfficherMaxTab pour
calculer la valeur maximale de $T puis afficher le tableau $T avec les éléments maximaux mis en évidence.
Exercices sur les tableaux Php - page 3
Exercice 3: Gestion d'un tableau indexé numériquement
Solution dans : Etudiant/Fonction-Gestab.php
Il s'agit de réaliser une page PHP permettant de gérer un tableau $T indexé numériquement à partir du
formulaire que voici :
Le code HTML de ce formulaire est contenu dans le fichier Formulaire-GesTab.php. Ce formulaire fait
appel (par un mécanisme que nous verrons ultérieurement) à différentes fonctions du fichier FonctionGestab.php lorsque l'utilisateur clique sur un des boutons.
Votre rôle est d'écrire le code de ces fonctions afin de faire fonctionner chaque bouton du formulaire. Vous
n'avez pas à vous occuper de l'affichage du tableau $T, car le code permettant de l'afficher se trouve dans
Formulaire-GesTab.php.
Question 1 : initialisation
La fonction Gestab_Initialiser () est appelée lorsque le formulaire est affiché la première fois par un clic sur
le lien solution. Cette fonction doit initialiser le tableau $T. Vous y mettrez ce qu'il vous plaira. L'essentiel est
que le tableau soit indexé numériquement.
En supposant par exemple que le tableau $T est initialisé de la manière suivante :
$T = array("Italie","Espagne","France","Allemagne","Espagne");
on devrait voir apparaitre ceci lorsque l'on clique sur le lien solution :
Exercices sur les tableaux Php - page 4
Question 2 : adjonction d'un élément
Lorsque l'utilisateur entre une valeur $v et clique sur le bouton Ajouter, Php exécute l'appel de fonction
Gestab_Ajouter ($v).
Arrangez vous pour que cet appel de fonction ajoute cette nouvelle valeur à la fin du tableau.
Exemple:
Avant
Après
Question 3 : suppression d'un élément
Lorsque l'utilisateur entre une clef $c et clique sur le bouton Supprimer, Php exécute l'appel de fonction
Gestab_Supprimer ($c) qui doit faire disparaitre l'élément du tableau indexé par cette clef.
Exemple:
Avant
Après
Exercices sur les tableaux Php - page 5
Vous procéderez de la manière suivante :
•
Recopiez dans un tableau $T2, tous les éléments de $T, sauf celui dont la clef est $c.
•
Recopiez $T2 dans $T.
Question 4 : modification d'un élément
Lorsque l'utilisateur entre une clef $c et une valeur $v puis clique sur le bouton Affecter, Php exécute l'appel
de fonction Gestab_Affecter($v,$c) qui doit donner la valeur $v à l'élément du tableau indexé par $c.
Exemple (ne tenez par compte de la clef 2 qui provient de l'opération précédente) :
Avant
Après
Après avoir écrit le code nécessaire, testez ce qu'il se passe si vous affectez une valeur à une clef
numérique qui n'est pas dans le tableau.
Ensuite essayez ceci : affectez une valeur à une clef non numérique avec le bouton Affecter, puis ajoutez un
nouvelle valeur numérique par le bouton Ajouter.
Exercices sur les tableaux Php - page 6
Question 5 : Recherche par valeur
Lorsque l'utilisateur entre une valeur $v, puis clique sur le bouton Rechercher valeur, Php exécute l'appel
de fonction Gestab_Rechercher_Val ($v).
Dans cette fonction, vous écrirez le code Php permettant de créer un tableau $TClef, contenant les clefs de
toutes les lignes de $T contenant $v.
Si cette fonction est bien écrite, les lignes du tableau contenant la valeur $v doivent s'afficher en orange et si
aucune ligne ne contient la valeur $v, un message d'erreur s'affichera.
Exemple (ne tenez pas compte de la clef 3 et de la valeur Japon, elles viennent de l'opération précédente) :
Avant
Après
Si la valeur en question, ne se trouve pas dans le tableau, on verra le message d'erreur suivant :
Exercices sur les tableaux Php - page 7
Question 6 : Recherche par clef
Lorsque l'utilisateur entre une clef $c, puis clique sur le bouton Rechercher clef, Php exécute l'appel de
fonction Gestab_Rechercher_Clef ($c).
Dans cette fonction, vous écrirez le code Php permettant de créer un tableau $TClef, qui sera vide si $c
n'est pas une clef de $T et qui contiendra uniquement $c sinon.
Si cette fonction est bien écrite, la ligne du tableau contenant la clef $c doit s'afficher en orange et si aucune
ligne ne contient la clef $c, un message d'erreur s'affichera.
Exemple avec clé existante:
Avant
Après
Exemple avec clé inexistante:
Avant
Pour cette question les fonctions array_keys et in_array pourront être utiles.
Après