CORRECTION DU TP 04
Exercice 1 : Parcours et tri de tableau
<?php echo "\n";
$note = array(7 , 20 , 14 , 11);
$note[4]=18;
echo "<p>";
foreach($note as $value) echo "$value<br/>\n";
echo "</p>\n";
echo "<p>";
for($i=0;$i<count($note);$i++) echo "$note[$i] <br/>\n";
echo "</p>\n";
sort($note);
echo "<p>";
foreach($note as $value) echo "$value<br/>\n";
echo "</p>\n";
?>
Exercice 2
echo "\n";
$nom=$_GET['nom'];
// Parcours du tableau foreach echo "<table>";
foreach($noms as $key => $value)
echo "<tr><td>$value</td></tr>";
echo "</table>";
natcasesort($noms);
echo "<h2>Tableau trié </h2>";
// Si on parcourt avec une boucle FOR classique, on aura l'impression que le tableau n'est pas trié.
// car on trie à la fois les valeurs et les indices echo "<table>";
foreach($noms as $key => $value)
echo "<tr><td>$value</td></tr>";
echo "</table>";
// insertion du nom
$trouve=false;
foreach($noms as $value)
$leNom=substr($value,0,(strlen($value)-2)); // a pour but d’eliminer des //caracteres en fin de ligne if ($nom==$leNom) $trouve=true;
if ($trouve)
echo "Le nom est déjà présent dans le tableau, il n'est pas possible de l'insérer !";
else{
$noms[count($noms)]=$nom;
echo "Insertion dans le tableau effectué";
}
natcasesort($noms);
echo "<table>";
foreach($noms as $key => $value)
echo "<tr><td>$value</td></tr>";
echo "</table>";
Exercice 4 : tableau associatif et instruction foreach
<?php
include('read.php');
for($i=1; $i<15;$i++) echo "\n";
echo "********************************\n";
echo "* Saisie des notes d'etudiants *\n";
echo "********************************\n\n";
do{
echo "Savez-vous combien de notes vous devez saisir (O/N) ?";
$rep=read();
}while($rep!='O' && $rep!='N');
if ($rep=='N'){
$rep='O';
while($rep=='O'){
echo "\nSaisir un nom:";
$nom=read();
echo "Saisir la note de $nom:";
$notes[$nom]=read();
do{
echo "\nSouhaitez vous saisir d'autres notes (O/N)?";
$rep=read();
}while($rep!='O' && $rep!='N');
} }
else{
echo "Indiquez le nombre de notes a saisir:";
$nb=read();
for($i=0;$i<$nb;$i++){
echo "\nSaisir un nom:";
$nom=read();
echo "Saisir la note de $nom:";
$notes[$nom]=read();
} }
// Tri du tableau par notes décroissantes en préservant les clés arsort($notes);
// Affichage du tableau avec foreach // et mémorisation pour statistiques
$min=20;
$max=0;
$nb=0;
$somme=0;
foreach($notes AS $cle => $valeur){
echo "\n- $cle: $valeur";
$somme=$somme+$valeur;
if($valeur < $min) $min=$valeur;
if($valeur > $max) $max=$valeur;
$nb++;
}
// Affichage des résultats echo "\n";
echo "\nResultats\n";
echo "\nLa moyenne est: ".($somme/$nb);
echo "\nLa moins bonne note est: ".($min);
echo "\nLa meilleure note: ".($max);
echo "\n";
?>
Exercice 5: Lexique d’expressions québécoises
<style type="text/css">
body {color:#000;background-color:#fff;font: 1em arial,helvetica,verdana,sans- serif;}
.lettre {
color:#fff;
background-color:#99c;
display:inline;
font-weight : bold;
padding:1px 5px;}
#menu {text-align: center;}
#menu a {text-decoration:none;
color:#fff;
background-color:#9c9;
font-weight : bold;
padding:1px 5px;}
</style>
</head>
<body>
<h1>Lexique d'expressions québécoises</h1>
<p id="menu">
<?php
$alphabet=range('A','Z');
foreach($alphabet as $lettre)
echo '<a href="#'.$lettre.'">'.$lettre."</a>\n";
?>