Php algo td2
Sujet
Partie A
Exercice 1
FONCTION lettre_au_hasard()
VAR
RETOURNER alphabet[alea(0,25)]
FIN FONCTION
Exercice 2
FONCTION noms(liste, lettre)
VAR
resultat : liste de chaînes de caractères
i : entier
i <- 0
POUR TOUT nom DE liste
SI nom[0] = 'lettre'
resultat[i] <- nom
FIN SI
i++
FIN POUR
RETOURNE resultat
FIN FONCTION
Partie B
Exercice 3
function lettre_au_hasard() {
global $alphabet;
return $alphabet [rand ( 0, 25 )];
}
Exercice 4
function noms($liste, $lettre) {
$resultat = array();
foreach ($liste as $nom){
if(substr($nom, 0, 1) == $lettre){
$resultat[] = $nom;
}
}
return $resultat;
}
Exercice 5
<?php
$alphabet = array (
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"
);
$listenoms = array (
"Alain",
"Antoine",
"Bernard",
"Colin",
"Christine",
"François",
"Guy",
"Gérard",
"Léa",
"Léon",
"Louis",
"Nathalie",
"Serge",
"Sylvie",
"Sylvain",
"Vincent"
);
function lettre_au_hasard() {
global $alphabet;
return $alphabet [rand ( 0, 25 )];
}
function noms($liste, $lettre) {
$resultat = array();
foreach ($liste as $nom){
if(substr($nom, 0, 1) == $lettre){
$resultat[] = $nom;
}
}
return $resultat;
}
function main(){
global $listenoms;
/* Lecture de la lettre */
$lettre = lettre_au_hasard();
/* Récupération des noms */
$noms = noms($listenoms, $lettre);
/* Récupération de la longeur */
$size = sizeof($noms);
/* Affichage du résultat */
if ($size == 0) {
echo "Il n’y a pas de noms commençant par la lettre ".$lettre;
}else if ($size == 1){
echo "Il y a 1 nom commençant par la lettre ".$lettre."\n";
echo "Ce nom est ".$noms[0];
}else{
echo "Il y a ".$size." noms commençant par la lettre ".$lettre."\n";
echo "Ces noms sont: \n";
foreach ($noms as $nom){
echo "- ".$nom."\n";
}
}
echo "\n";
}
main();
?>
Exécution
# php -f TD2.php Il n’y a pas de noms commençant par la lettre P # php -f TD2.php Il y a 2 noms commençant par la lettre C Ces noms sont: - Colin - Christine # php -f TD2.php Il y a 1 nom commençant par la lettre N Ce nom est Nathalie