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