Exemple 2-3-2 b) «Erreur d'arrondi (méthode correcte)» - Script PHP

Initiation à la programmation avec le langage PHP, §2 Structures de contrôle répétitives

Le bouton permet d'exécuter le script PHP.

<!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>Erreur d'arrondi (méthode correcte)</title>
</head>
<body>
<?php
/*
	Tant que S est inférieur ou égal à 10, sommer:
	S = 0.2 + 0.2 + 0.2 + ...
*/
$s = 0;
$n = 0;					// nombre de termes
$sup = 10;				// borne supérieure
$eps = 1.0e-9;			// epsilon
$supeps = $sup+$eps; // borne supérieure plus epsilon
$terme = 0.2;
while ($s <= $supeps) {	
	/* Tant que la somme est inférieure ou égale
		à ($sup+$eps) effectue */
	$s = $s + $terme;
	$n++;				// signifie $n = $n + 1
}
/*
	Ici, on a ($s > $sup) à $eps près,
	donc on a fait un pas de trop
*/
$s = $s - $terme;
$n--;					// signifie $n = $n - 1
echo '<p>Le plus grand s inférieur ou égal à '
		.$sup
		.' est s = '
		.$s
		.' qui est la somme de '
		.$n
		.' termes '
		.$terme
		.'</p>';
?>
</body>
</html>

La partie mantisse des nombres en virgule flottante ne comporte qu'un nombre fini de bits, ce qui a pour conséquence que, dans les programmes informatiques, les nombres dits réels (non entiers) ne sont pas exacts, mais sont affectés d'une erreur de troncature ou d'arrondi. Les algorithmes doivent tenir compte cette approximation.

Pratiquement, en testant une inégalité, une petite imprécision, souvent appelée epsilon, doit être tolérée.

Contact |  Accueil   >   PHP   >   Initiation