Transformer un entier en chiffres romains

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 199 fois - Téléchargée 197 fois

Contenu du snippet

Petite fonction qui retourne un entier un chiffres romains
seulement entre 1 et 9999 !

Source / Exemple :


function ChiffresRomains(Nombre: integer): string;
const
LetUnit:array[0..9] of string=('','I','II','III','IV','V','VI','VII','VIII','IX');
LetDix:array[0..9] of string=('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC');
LetCent:array[0..9] of string=('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM');
LetMill:array[0..9] of string= ('','M','MM','MMM','MMMM','MMMMM','MMMMMM','MMMMMMM','MMMMMMMM','MMMMMMMMM');
var
centaines,dixaines,unite,milliers:integer;
Nmbr,Fin:string;
begin
Nmbr := inttostr(Nombre);
Unite := 0;
centaines:=0;
dixaines := 0;
milliers := 0;
//décompose le nombre
//unite:
if Length(Nmbr)>0 then
unite := strtoint(copy(Nmbr,Length(Nmbr),1));
//dixaines:
if Length(Nmbr)>1 then
dixaines := strtoint(copy(Nmbr,Length(Nmbr)-1,1));
//centaines:
if Length(Nmbr)>2 then
centaines := strtoint(copy(Nmbr,Length(Nmbr)-2,1));
//milliers
if Length(Nmbr)>3 then
milliers := strtoint(copy(Nmbr,1,Length(Nmbr)-3));

Fin := LetUnit[unite];
Fin := LetDix[dixaines] + Fin;
Fin := LetCent[centaines] + Fin;
Fin := LetMill[milliers] + Fin;
Result := Fin;
end;

Conclusion :


Je sais, c'est très barbare comme j'ai fais ca (et pas de jeux de mots stupids)

A voir également

Ajouter un commentaire

Commentaire

Messages postés
155
Date d'inscription
jeudi 6 décembre 2001
Statut
Membre
Dernière intervention
19 avril 2010

Muharf a l'ecole on a develloper un algo vachement mieux faudra que je le send !

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.