Fonction conversion chiffre romain en chiffre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 061 fois - Téléchargée 35 fois

Contenu du snippet

C'est la mécanique inverse du source précédent.

Source / Exemple :


function ConvRomainToInt(str: string): integer;
var
  i: integer;
begin
  result:= 0;
  For i:= 1 to Length(str) do
  begin
    if str[i] = 'M' then
      result:= result + 1000
    else if str[i] = 'C' then
      result:= result + 100
    else if str[i] = 'L' then
      result:= result + 50
    else if str[i] = 'X' then
      result:= result + 10
    else if str[i] = 'V' then
      result:= result + 5
    else if str[i] = 'I' then
    begin
      // On est sur l'avant dernière lettre alors
      if i = Length(str) - 1 then
      begin
        if str[i + 1] = 'X' then
        begin
          result:= result + 9;
          break;
        end
        else if str[i + 1] = 'V' then
        begin
          result:= result + 5;
          break;
        end
        else
          result:= result + 1;
      end
      else
        result:= result + 1;
    end;
  end;
end;

A voir également

Ajouter un commentaire Commentaires
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
20 oct. 2004 à 19:22
MoveX : non, je ne suis pas enseignant du tout.
Quant à mes réponses, j'applique le proverbe suivant :
"Donne un poisson à un homme qui a faim, il mangera une fois.
Apprends-lui à pêcher, il ne mourra plus de faim."

En clair, je prefères mettre sur la piste d'une solution que de la donner.
Mais tu as raison, on s'éloigne du sujet...~:o)

JulioDelphi : la structure Case..of a besoin d'une valeur appartenant à un ensemble scalaire. Or, les codes ASCII appartiennent à l'intervalle de 0..255.
Mais tu as parfaitement raison pour les chaines. D'autres langages comme Basic ou PHP le permettent, mais pas le Pascal.
JulioDelphi
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
20 oct. 2004 à 09:49
OMG c'est vrai ! le case of marche avec ça !
HAAAAAAAAAAlélouiyaaaaaa
merci je dormirais moins bete ce soir :D
je connaissais pas :)
MoveX
Messages postés
230
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
16 juillet 2005
1
20 oct. 2004 à 07:15
delphiprog, serais tu un professeur? quand on lit je lis tes remarques, javoue etre trouble, tu as toujours la "demie reponse" avec le lien qui va bien afin que l on trouve tout seul ou quelque chose comme ca... enfin bref. non?

ok ok, je suis hors sujet
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
18 oct. 2004 à 23:31
JulioDelphi : le ième caractère d'une chaine est du type Char. Il n'y a donc aucune difficulté dans le cas présent à utiliser une structure Case ... of.
CQFD.
JulioDelphi
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
18 oct. 2004 à 22:58
flo : explik a MHI comment on fait un case of avec des strings :)

(oui je sais on peut le faire qd meme mais fo ruser)
Afficher les 7 commentaires

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.