corrigé fonctions chaine et numériques

Voici la transformation de chaine:

<?php
// initialisation
$ch = »bonjour LES aMis »;
// 1er caractere en majuscule
$res = strtoupper(substr($ch,0,1));
// les n-1 caracteres restant en minuscule
// et on concatene
$res .= strtolower(substr($ch,1,strlen($ch)-1));

print(« resultat ; $res »);
?>

et pour le calcul de PI :

Avec une boucle connue à l’avance cela donne :

<?php
$limite = 1000;
for ( $i=1; $i < $limite ; $i++) {
$pi_sur_4 += -(pow(-1,$i)) * 1/(2*$i-1);
// on affiche toutes les valeurs intermédiaires…
// derriere le compteur de boucle
print (« $i : « . 4*$pi_sur_4. »<br> »);
}
?>

Si l’on veut faire une boucle WHILE tant qu’on n’a pas atteint une certaine précision, on peut faire le code suivant :

<?php
$i=0;
do {
$precedent = $pi;
$i++;
$pi_sur_4 += -(pow(-1,$i)) * 1/(2*$i-1);
$pi = 4*$pi_sur_4;
print (« $i : « . $pi. »<br> »);
$differentiel = floor($pi*1000) – floor($precedent*1000);
} while ($differentiel != 0)
?>

Note : ce code n’est pas optimisé, on a rajouté volontairement des variables intermédiaires pour le rendre + lisible. On n’est pas non plus obligé de calculer PI à chaque boucle, PI/4 suffirait largement avec une multiplication par 4 unique à la fin…