Bonjour,
Alors voila mon code pour convertir un chiffre romain en chiffre arabe et inversement, je ne comprend pas pourquoi il ne marche pas !
soyez indulgent je débute xD
CODE HTML
CODE PHP
Alors voila mon code pour convertir un chiffre romain en chiffre arabe et inversement, je ne comprend pas pourquoi il ne marche pas !
soyez indulgent je débute xD
CODE HTML
Bloc de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>conversion</title>
</head>
<body>
<h1>Conversion de nombre arabe en nombre romain</h1>
<form action="traitement.php" method="GET">
<p>Nombre arabe : <input type="text" name="arabe"/>
<input type="submit" value="->"/>
<input type="submit" value="<-"/>
Nombre romain : <input type="text" name="romain" /></p>
</body>
</html>
CODE PHP
Bloc de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>conversion</title>
</head>
<body>
<?php
// Retourne la valeur romaine d'un chiffre décimal.
function decEnRom($num)
{
// Vérification de l'entier
$n = intval($num);
$res = '';
// Declaration du tableau
$tabDecEnRom = array('M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400,
'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40,
'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1);
// Boucle de convertion
foreach ($tabDecEnRom as $romain => $valeur)
{
$trouver = intval($n / $valeur);
$res .= str_repeat($romain, $trouver);
$n = $n % $valeur;
}
// Nombre convertis
return $res;
}
// Retourne la valeur decimale d'un chiffre romain.
function romEnDec($num)
{
$somme = 0;
for ( $i = 0; $i < strlen($num) - 1; $i++ )
{
if ( valeur($num{$i}) >= valeur($num{$i + 1}))
{
somme += valeur($num{$i});
}
else
{
somme -= valeur($num{$i});
}
}
somme = somme + valeur($num{$i});
}
// Retourne la valeur d'un caractère romain.
function valeur($n)
{
switch($n)
{
Case "I": echo "1"
Case "V": echo "5"
Case "X": echo "10"
Case "L": echo "50"
Case "C": echo "100"
Case "D": echo "500"
Case "M": echo "1000"
}
}
// Récupération des variables.
$arabe = $_GET['arabe'];
$romain = $_GET['romain'];
// Traitement de la variable et message d'erreur possible.
if( 1 => $arabe || 4999 <= $arabe)
{
echo "<p>Votre nombre n'est pas compris entre 1 et 4999.</p>";
}
else
{
// Utilisation des variables.
if (isset($_GET['->']))
{
echo " le nombre arabe convertis est : ";
echo decEnRom($arabe);
}
elseif (isset($_GET['<-']))
{
echo " le nombre romain convertis est : ";
echo romEnDec($romain);
}
else
{
echo "Erreur !";
}
}
?>
</body>
</html>