TD1: PHP(Corrigé) Exercice 1 Variables et conversion Question 1.1 : Qu’affiche le

TD1: PHP(Corrigé) Exercice 1 Variables et conversion Question 1.1 : Qu’affiche le code suivant ? 1 var_dump(1 + 2) ; echo '<br/>'; 2 var_dump('1'+ '2'); echo '<br/>'; 3 var_dump(1 . 2) ; echo '<br/>'; 4 var_dump('1'. '2'); echo '<br/>'; 5 var_dump("3 fruits" + '1 légume' . 'donnent'); echo '<br/>'; 6 var_dump("3 fruits" . '1 légume' + 'donnent'); echo '<br/>'; 7 var_dump(1/2 + true - "-2");echo '<br/>';   1 int(3) 2 int(3) 3 string(2) "12" 4 string(2) "12" 5 string(8) "4donnent" 6 int(3) 7 float(3.5) ✸ Question 1.2 : Considérons les variables $voitures = 3; $motos = 6;. Afficher, à l’aide d’une seule instruction PHP, le paragraphe : J’ai 3 voitures et 6 motos, j’ai donc 9 véhicules. Les nombres 3, 6 et 9 dépendent des valeurs des variables données précédemment. Le faire une fois en utilisant uniquement les apostrophes et une fois en utilisant uniquement les guillemets.   1 echo '<p> J\'ai '.$voitures. ' voitures et ' .$motos. ', j\'ai donc '. 2 ($voitures + $motos) . ' véhicules </p>'; 3 4 echo "<p> J'ai $voitures voitures et $motos, j'ai donc ". 5 ($voitures + $motos) . "véhicules </p>"; ✸ Exercice 2 Boucles Écrire la table de multiplication de 7 (de 1 à 10). Cette table sera présentée d’abord sous forme d’une liste non ordonnée puis sous la forme d’une table HTML.   Mathieu LACROIX ✄ ✂  ✁ 18 Programmation Web (M3104) Département informatique 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Table de multiplication</title> 6 </head> 7 <body> 8 <?php 9 echo '<ul>'; 10 for($i = 1 ; $i <= 10 ; $i++) 11 echo '<li>' . $i . ' * 7 = ' . ($i *7) . '</li>'; 12 echo '</ul>'; 13 14 15 echo '<table><tr><td></td><td> * 7 </td></tr>'; 16 $i = 1; 17 while ($i <= 10) { 18 echo '<tr><td>' . $i . '</td><td>' . ($i * 7) . '</td></tr>'; 19 $i++; 20 } 21 echo '</table>'; 22 ?> 23 </body> 24 </html> ✸ Exercice 3 Tableaux Question 3.1 : Soit le tableau $t = ['a'=>'z', 10=>20, 'toto'=>'titi', 'php']. Quelles sont les clés du tableau ? Quelles sont les valeurs ?   — Clés : ’a’, 10, ’toto’, 11 — Valeurs : ’z’, 20, ’titi’, ’php’ ✸ Question 3.2 : Définir une variable de type tableau. Ce tableau devra contenir tous les types de données PHP possibles pour les clés et pour les valeurs.   — Types de données possibles pour les clés : entier, string — Types de données possibles pour les valeurs : entier, float, string, booléens, tableau (array). 1 $tab = ['a' => 'b', 23, 23.5, 18 => false, [ 1,2,3] ]; Il existe également le type object pour les valeurs. Nous verrons ce type plus tard. ✸ Question 3.3 : Ajouter à ce tableau deux valeurs 'jour' et 'nuit'. La clé associée à la première valeur sera 'bon'. La deuxième clé sera donnée par l’interpréteur PHP. Quelle clé donnera-t-il ?   1 $tab['bon'] = 'jour'; 2 $tab[] = 'nuit'; // La clé sera 20. ✸ Exercice 4 Parcours de tableaux Programmation Web (M3104) ✄ ✂  ✁ 19 Mathieu LACROIX I.U.T. de Villetaneuse Le tableau suivant donne les noms des étudiants et leur note en PHP. 1 $tabE1 = [ 2 'Frédérique' => 12, 3 'Silvia' => 3, 4 'Julien' => 19, 5 'Lionel' => 12, 6 'Mario' => 12, 7 'Andrea' => 9, 8 'Gérard' => 3 9 ]; Question 4.1 : Afficher sous forme d’une liste ordonnée les noms des différents étudiants.   1 echo '<ol>'; 2 foreach ($tabE1 as $c => $v) 3 echo '<li>' . $c . '</li>'; 4 echo '</ol>'; ✸ Question 4.2 : Afficher sous forme d’une table HTML les noms et les notes des étudiants.   1 echo '<table><tr><td>Nom</td><td>Note</td></tr>'; 2 foreach ($tabE1 as $c => $v) { 3 echo '<tr><td>' . $c . '</td><td>' . $v . '</td></tr>'; 4 } 5 echo '</table>'; ✸ Question 4.3 : Créer un autre tableau $tabE2 dans lequel les notes sont maintenant les clés.   1 $tabE2 = [ 2 3 => ['Silvia', 'Gérard'], 3 9 => ['Andrea'], 4 12 => ['Frédérique', 'Lionel', 'Mario'], 5 19 => ['Julien'] 6 ]; ✸ Question 4.4 : Refaire les deux premières questions avec le tableau $tabE2.   1 echo '<ol>'; 2 foreach ($tabE2 as $vTab) 3 foreach ($vTab as $v) { 4 echo '<li>' . $v . '</li>'; 5 } Mathieu LACROIX ✄ ✂  ✁ 20 Programmation Web (M3104) Département informatique 6 echo '</ol>'; 7 8 echo '<table><tr><td>Nom</td><td>Note</td></tr>'; 9 foreach ($tabE2 as $c => $vTab) 10 foreach($vTab as $v) 11 echo '<tr><td>' . $v . '</td><td>' . $c . '</td></tr>'; 12 echo '</table>'; ✸ Exercice 5 Fonctions sur les tableaux I Considérons le tableau suivant. 1 $anneeScolaire = [ 2 "Rentrée" => [2,9,2019], 3 "Vacances Toussaint" => [ 4 "début" => [19,10,2019], 5 "fin" => [4,11,2019] 6 ], 7 "Vacances Noël" =>[ 8 "début" => [21,12,2019], 9 "fin" => [6,1,2020] 10 ], 11 "Vacances d'hiver" =>[ 12 "début" => [8,2,2020], 13 "fin" => [24,2,2020] 14 ], 15 "Vacances de printemps" =>[ 16 "début" => [4,4,2020], 17 "fin" => [20,4,2020] 18 ], 19 "Fin des cours" => [4,7,2020] 20 ]; Écrire le code permettant d’obtenir l’affichage suivant. 1 - Rentrée : 2/9/2019 2 - Vacances Toussaint : du 19/10/2019 au 4/11/2019 3 - Vacances Noël : du 21/12/2019 au 6/1/2020 4 - Vacances d'hiver : du 8/2/2020 au 24/2/2020 5 - Vacances de printemps : du 4/4/2020 au 20/4/2020 6 - Fin des cours : 4/7/2020 R On utilisera uniquement deux boucles foreach imbriquées ainsi que les fonctions count et implode.   1 echo '<ul>'; 2 foreach($anneeScolaire as $c => $vTab){ 3 echo '<li>' . $c . ' : ' ; 4 if(count($vTab)==3) 5 echo implode('/', $vTab) . '</li>'; 6 else 7 echo 'du ' . implode('/', $vTab['début']) . ' au ' 8 . implode('/', $vTab['fin']) . '</li>'; 9 } 10 echo '</ul>'; Programmation Web (M3104) ✄ ✂  ✁ 21 Mathieu LACROIX I.U.T. de Villetaneuse ✸ Exercice 6 Fonctions sur les tableaux II Question 6.1 : Qu’affiche le code suivant ? 1 $tab = [ 2 => 'test', 0 => 'nombre' ]; 2 3 if (in_array(2, $tab)) 4 echo '<p> in_array : 2 est dans le tableau </p>'; 5 6 if(in_array('nombre', $tab)) 7 echo '<p> in_array : nombre est dans le tableau </p>';   in_array : nombre est dans le tableau ✸ Question 6.2 : Dans le if, peut-on remplacer in_array par array_search ?   Il est possible de remplacer le deuxième test par array_search('nombre', $tab)!==false (pour le premier il faut changer ‘nombre’ par 2). Par contre, il faut impérativement !==false pour que l’interpréteur fasse une comparaison stricte avec false. Autrement, comme la valeur retournée est 0, elle est automatiquement castée en booléen donc en false. ✸ Exercice 7 Fonctions Considérons le tableau suivant : 1 $joueurs = [ 2 ['nom' => 'Mehwish', 'score' => 150], 3 ['nom' => 'Laurent', 'score' => 120], 4 ['nom' => 'Ines', 'score' => 98], 5 ['nom' => 'Sondes', 'score' => 153], 6 ['nom' => 'Davide', 'score' => 118] 7 ]; Écrire une fonction meilleur_joueur() prenant en paramètre un tableau ayant la même structure que le tableau $joueurs et retournant un tableau contenant le nom et le score du meilleur joueur.   1 function meilleur_joueur($t) { 2 $max = $t[0]; 3 foreach ($t as $v) { 4 if($v['score'] > $max['score']) 5 $max = $v; 6 } 7 return $max; 8 } 9 $res = meilleur_joueur($joueurs); 10 echo '<p> Meilleur joueur : ' . $res['nom'] . ' avec un score de ' 11 . $res['score'] . '</p>'; ✸ Mathieu LACROIX ✄ ✂  ✁ 22 Programmation Web (M3104) Département informatique Exercice 8 Objets Définir une classe Compte représentant un compte bancaire. Cette classe contiendra deux attributs privés, montant et interet (annuel), un constructeur prenant en paramètre un montant initial et un intérêt, une méthode get_montant retournant le montant du compte, ainsi qu’une méthode un_an modifiant le montant du compte au bout d’un an en fonction de l’intérêt. Créer deux comptes, un d’un montant de 200 euros à 20% et l’autre d’un montant de 1000 euros à 2%. Afficher le montant de chaque compte au bout de 10 ans.   1 class Compte { 2 private $montant; 3 private $interet; //En pourcentage 4 5 public function __construct($interet, $montantInitial) { 6 $this->montant = $montantInitial; 7 $this->interet = $interet; 8 } 9 10 public function un_an() { 11 $this->montant *= 1+ $this->interet / 100; 12 } 13 14 public function get_montant() { 15 return $this->montant; 16 } 17 } 18 19 $c1 = new Compte(20,200); 20 $c2 = new Compte(2,1000); 21 for($i = 1 ; $i <= 10 ; $i++) 22 { 23 $c1->un_an(); 24 $c2->un_an(); 25 } 26 echo '<p> Valeur du compte = ' . $c1->get_montant() . ' euros </p>'; 27 echo '<p> Valeur du compte = ' . $c2->get_montant() . ' euros </p>'; ✸ Exercice 9 Expressions régulières uploads/Sports/ td1-corrige 22 .pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Oct 30, 2021
  • Catégorie Sports
  • Langue French
  • Taille du fichier 0.2406MB