Érire sous forme scientifique
$juste = 1 ;
//initialistaion des varaibles envoyées par le post
$nombre_alea = $_POST['nombre_alea'];
$a = $_POST['a'];
$b = $_POST['b'];
if ($_POST['Verifier'])
{
$nombre = abs($nombre_alea) ;
$puissance = floor (log10($nombre) ) ;
$p = ($nombre_alea / pow(10,$puissance) ) ;
$compa = abs($p-$a) ;
echo " Pour écrire le nombre ";
$decimales = 5-$puissance ;
$nb_formate = number_format($nombre_alea, $decimales, ',', ' ');
echo $nb_formate ;
echo ", vous avez proposé : $a x 10 $b
" ;
//vérifiation de la valeur de la puissance
if ($puissance==$b)
{
//vérification de la valeur du nombre avant la puissance. bug php, donc pas d'égalité mais on véifie si la difféence est inférieur à 1E-12
if ($compa<1E-12)
{
$juste = 1 ;
echo " CORRECT
" ;
}
else
{
echo " FAUX Rappelez-vous que l'écriture scientifique utilise un nombre compris entre 1 et 10 (exclus)
" ;
$juste = 0 ;
}
}
else
{
echo " FAUX Erreur dans la puissance de 10
" ;
$juste = 0 ;
}
}
?>
if ($juste == 1)
{
// initialise avec les microsecondes depuis la dernièe seconde entière
mt_srand((float) microtime()*1000000);
$randvala = mt_rand(-30000,30000);
$randvalb = mt_rand(-9,9);
$quotient = pow(10,$randvalb);
$nombre_alea = $randvala / $quotient ;
}
echo " écrire sous la forme scientifique le nombre suivant : x =" ;
$nombre = abs ($nombre_alea) ;
$puissance = floor (log10($nombre) ) ;
$decimales = 5-$puissance ;
$nb_formate = number_format($nombre_alea, $decimales, ',', ' ');
echo $nb_formate ;
echo "
" ;
?>
Attention. Pour que le script puisse comprendre ce que vous écrivez, vous devez entrer les nombres avec pour séparateur décimal un point et non pas une virgule.