Convertir des chiffres arabes en chiffres romains

cs_lio119 Messages postés 1 Date d'inscription jeudi 5 janvier 2012 Statut Membre Dernière intervention 6 janvier 2012 - 6 janv. 2012 à 16:47
kosovar49 Messages postés 31 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 3 juillet 2012 - 6 janv. 2012 à 17:00
Bonjour à tous,

Voilà en cherchant sur le net, j'ai trouvé une fonction permettant de convertir des chiffres arabes en chiffres romains. J'ai rajouté un champ texte et un bouton valider qui, lorsque je clique dessus, devrait convertir le nombre entrer. Malheureusement, celui-ci ne me retourne aucune valeur mais il ne m'affiche aucune erreur non plus.

Voici le code en question :

<!DOCTYPE html PUBLIC "-//W 3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Conversion de chiffres arabes en chiffres romains</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>


<form method="post" action="">
Entrez un nombre :

</form>

<?php
if(isset($_POST['txtnbr']))
{$txtnbr = $_POST['txtnbr'];}
?>

<?php

function NbrRomain($number)
{
$basicRomanNumbers = array( 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I');
$basicNumbers = array( 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1);

if ($number > 4999) $number = 4999;

if ($number <0) $number 1;

$number = (int) $number;

$romanNumber = '';
$i = 0;

while($number > O)
{
if($number >= $basicNumbers[$i])
{
$number = $number - $basicNumbers[$i];
$romanNumber = $romanNumber.$basicRomanNumbers[$i];
}
else
{
$i++;
}
}
return $romanNumber;
echo $romanNumber;
}

?>

</html>

Merci d'avance de votre aide !

1 réponse

kosovar49 Messages postés 31 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 3 juillet 2012
6 janv. 2012 à 17:00
Bonjour,
Lorsque tu post sur le forum tu as des outils pour mettre ton code, voilà c'était une petite parenthèse.

Sinon pour ton problème, c'est une petite erreur d’inattention.
Tu pourrais me dire ou tu appel ta fonction?
if(isset($_POST['txtnbr']))
{$txtnbr = $_POST['txtnbr'];
echo NbrRomain($txtnbr);
}

Sinon dans ta fonction tu retourne ton nombre et après tu fais un echo du nombre, le nombre tu le ne verra jamais s'afficher car tu sors de ta fonction avec le return.
Et tu as une deuxième toute petite erreur mais je te laisse la chercher.
Quand tu auras appelé ta fonction, il va te sortir une erreur toute bête :).
De mon coté ton code marche après les rectifications, juste il faut que tu gère le faite que l'on saisisse le nombre "0" car il me sort "I", après je sais pas si tu veux ça comme résultat.
Bonne fin de journée.
0