Structure de contrôle « tant que »
while (condition) {action ;}
Il faut remarquer que, puisque la «condition» est testée au début, il est possible que le bloc d'instructions dénommé «action» ne soit pas du tout exécuté.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<meta name="robots" content="NoIndex,NoFollow">
<title>Somme de termes:
valeur numérique de sin(x)</title>
</head>
<body>
<?php
/*
Données
*/
$x=1; // 1 radian = 57.296°
$eps = 1.0e-9; // majorant du dernier terme
/*
Somme de termes:
S=(x^1)/1!-(x^3)/3!+(x^5)/5!-(x^7)/7!+(x^9)/9!-...
Valeur numérique approchée du nombre sin(x)
*/
$num = $x; // numérateur du dernier terme
$den = 1; // dénominateur du dernier terme
$t = $num/$den; // dernier terme
$rang = 1; // rang du dernier terme {1,3,5,7,9,...}
$s = $x; // somme partielle
$x2 = $x*$x; // carré de x
while ( abs($t) > $eps) {
$num = -$num*$x2;
$rang++; // signifie $rang=$rang+1
$den=$den*$rang;
$rang++;
$den=$den*$rang;
$t = $num/$den;
$s = $s + $t;
}
echo '<p>Valeur numérique approchée de sin('
.$x.') = '
.$s
.' par la somme '
.(($rang+1)/2)
.' termes.</p>';
echo '<p>Valeur numérique précise de sin('
.$x
.') = '
.sin($x)
.' par la fonction PHP.</p>';
?>
</body>
</html>