Chiffres romains en récursif et drag 'n drop

Soyez le premier à donner votre avis sur cette source.

Vue 5 541 fois - Téléchargée 333 fois

Description

Fournir un nombre en chiffre arabe, le glisser vers la conversion en romain. Exercice de style : réaliser la conversion avec le minimum de code. Une solution, la récursivité. Tout l'algorithme est dans la constante (mais les romains ne changeront plus leur numérotation).

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
60
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
11 février 2007

Je dirait que c'est un bon source qui comporte des bugs comme a pu le signaler delphiprog.
6/10 , je suis gentil
@+
@rt31
Messages postés
1
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
6 mai 2003

Commenter, c'est bien. Réfléchir avant, c'est mieux. Un peu de réflexion aurait permis de se rendre compte que le IF suivi du CASE constituait le coeur de l'algorithme...
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
J'ai quelques remarques ou suggestions à formuler...
Que se passe-t-il si on transmet une chaine vide à la fonction fromain ?
Réponse : Le résultat est indéfini...

"val(n[1],ch,err)" : que fait-on du code d'erreur Err ?
Réponse : il est ignoré !

"if ch in [5..8]" et plus plus loin, tu utilises une structure Case pour les autres chiffres. C'est à dire que Ch sera évalué plusieurs fois alors qu'une seule structure Case rendait le code plus simple et plus efficace.

La constante Rom mériterait d'être déclarée au niveau de la fonction fromain car elle n'a pas à être connue de l'extérieur.

Enfin, dans toute fonction, il est de bon ton d'initaliser le résultat dès le départ pour éviter des résultats erratiques en cas de sortie brutale. Ce conseil vaut doublement quand on fait appel à la récursivité pour traiter un problème.

Pour terminer sur une note positive, c'est là une bonne idée que tu as eue de proposer une conversion en chiffres romains. Puisque c'est ton premier source publié sur ce site, je t'encourage à poursuivre.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.