Rédiger une expression conditionnelle pour tester si un nombre est à la fois un multiple de 3 et de 5.
<?php $x=1245; if($x%3==0 AND $x%5==0) { echo "$x est multiple de 3 et de 5N.B : En pratique un multiple de 3 et de 5 est un multiple de 15 !
"; } else { echo "$x n'est pas multiple de 3 et de 5
"; } ?>
Écrire une expression conditionnelle utilisant les variables $age et $sexe dans une instruction if pour sélectionner une personne de sexe féminin dont l’age est compris entre 21 et 40 ans et afficher un message de bienvenue approprié.
<?php $sexe="F"; $age=43; if($sexe=="F" AND $age>=21 AND $age <= 40) { echo "Bonjour Madame vous avez entre 21 et 40 ans
"; } else { echo "Désolé, vous ne remplissez pas les conditions
"; } ?>
Effectuer une suite de tirages de nombres aléatoires jusqu’à obtenir une suite composée d’un nombre pair suivi de deux nombres impairs.
<?php $compteur=0; do { $x=rand(0,1000); $y=rand(0,1000); $z=rand(0,1000); $compteur++; echo $x, "," , $y, "," , $z,"Exemple de résultat obtenu : 194,285,494 435,759,162 237,292,768 366,533,397 Résultat obtenu en 4 coups
"; } while($x%2==1 OR $y%2==0 OR $z%2==0); echo "Résultat obtenu en $compteur coups"; ?>
Créer et afficher des numéros d’immatriculation automobile (pour Paris, par exemple) en commençant au numéro 100 PHP 75. Effectuer ensuite la même procédure en mettant en réserve les numéros dont le premier groupe de chiffres est un multiple de 100. Stocker ces numéros particuliers dans un tableau. Si on réalise le script complet, il affiche plusieurs millions de numéros de 100 PHP 75 à 999 ZZZ 75. L’exécution est donc très longue et risque de bloquer le serveur. Pour effectuer un test, les valeurs des chiffres sont limitées ci-dessous entre 100 et 120.
<?php $initx=80;//lettre P $inity=72;//lettre H $initz=80;//lettre P //Boucles imbriquées for($x=$initx;$x<=90;$x++) { for($y=$inity;$y<=90;$y++) { for($z=$initz;$z<=90;$z++) { for($num=100;$num<120;$num++) { echo "Numéro : $num ",chr($x),chr($y),chr($z)," 75Pour ne conserver que les nombres multiples de 100 nous remplaçons l’instruction echo par le stockage des numéros dans un tableau. Il est affiché à la fin de toutes les boucles à l’aide de la fonction print_r(). On constate alors qu’il contient déjà 65150 éléments !
"; } $initz=65;//on repart à la lettre A pour le troisième caractère } $inity=65;//on repart à la lettre A pour le deuxième caractère } } ?>
<?php $initx=80;//lettre P $inity=72;//lettre H $initz=80;//lettre P //Boucles imbriquées for($x=$initx;$x<=90;$x++) { for($y=$inity;$y<=90;$y++) { for($z=$initz;$z<=90;$z++) { for($num=100;$num<1000;$num+=100) { $tab[]="$num".chr($x).chr($y).chr($z)." 75"; } $initz=65;//on repart à la lettre A pour le troisième caractère } $inity=65;//on repart à la lettre A pour le deuxième caractère } } print_r($tab); ?>
Choisir un nombre de trois chiffres. Effectuer ensuite des tirages aléatoires et compter le nombre de tirages nécessaire pour obtenir le nombre initial. Arrêter les tirages et afficher le nombre de coups réalisés. Réaliser ce script d’abord avec l’instruction while puis avec l’instruction for. Avec une boucle while Notez qu’il est rare d’obtenir le nombre cherché en moins de 100 tirages.
<?php //Nombre à trouver $nb=789; //compteur $coup=0; //boucle de tirage while($x!=$nb) { $x=rand(0,1000); $coup++; //echo $x,"Avec une boucle for
";//pour afficher tous les tirages } echo "$nb trouvé en $coup coups "; ?>
<?php //Nombre à trouver $nb=789; //boucle de tirage for($coup=1;$x!=$nb;$coup++) { $x=rand(0,1000); //echo $x,"
";//pour afficher tous les tirages } echo "$nb trouvé en $coup coups "; ?>
Créer un tableau dont les indices varient de 11 à 36 et dont les valeurs sont des lettres de A à Z. Lire ensuite ce tableau avec une boucle for puis une boucle foreach et afficher les indices et les valeurs (la fonction chr(n) retourne le caractère dont le code ASCII vaut n).
<?php for($i=11;$i<=36;$i++) { $tab[$i]=chr(54+$i); } //Lecture avec for for($i=11;$i<=36;$i++) { echo "Elément d'indice $i : $tab[$i]
"; } echo "<hr />"; //Lecture avec foreach foreach($tab as $cle=>$valeur) { echo "Elément d'indice $cle : $valeur
"; } ?>
Utiliser une boucle while pour déterminer le premier entier obtenu par tirage aléatoire qui soit un multiple d’un nombre donné. Écrire la variante utilisant la boucle do…while. Avec une boucle while, notez qu’il faut initialiser $x avant la boucle.
<?php $nb=57; $compteur=0; $x=rand(0,1000); //Boucle while while($x%$nb!=0) { $x=rand(0,1000); $compteur++; } echo "$x est multiple de $nb: Résultat obtenu en $compteur coups"; ?>Avec une boucle do…while il n’est pas nécessaire d’initialiser $x.
<?php $nb=57; $compteur=0; do { $x=rand(0,1000); $compteur++; } while($x%$nb!=0); echo "$x est multiple de $nb: Résultat obtenu en $compteur coups"; ?>
Rechercher le PGCD (plus grand commun diviseur) de deux nombres donnés. Gérer au moyen d’une exception le cas où au moins un des nombres n’est pas entier. Si vous avez oublié l’algorithme d’Euclide pour calculer le PGCD visitez le site : http://villemin.gerard.free.fr/ThNbDemo/AlgoEucl.htm
<?php //Il faut $A > $B $A=56952; $B=3444; try { if(!(is_integer($A) OR is_integer($b))) {throw new Exception("Nombre(s) non entiers !",99);} else { echo "Le PGCD de $A et $B est : "; do { $R=$A%$B; $A=$B; $B=$R; } while($R!=0); echo $A ; } } catch(Exception $except) { echo $except->getMessage(); } ?>Le résultat affiché est ici : Le PGCD de 56952 et 3444 est : 84