vendredi 9 septembre 2016
    1. Program romain_decimal;
    2. Var ch : string;
    3. (******************************************)
    4. Procedure saisie(var ch : string);
    5. Function valide(ch : string):boolean;
    6. Var i : integer;
    7. ok : boolean;
    8. Begin
    9. i:=0;
    10. Repeat
    11. i:=i+1;
    12. ok:= ch[i] in ['M','D','C','L','X','V','I'] Until (not ok) or (i=length(ch));
    13. valide := ok;
    14. End;
    15. Begin
    16. Repeat
    17. Write('Entrer un nombre en chiffres romains : ');
    18. Readln(ch);
    19. Until valide(ch);
    20. End;
    21. (********************************************)
    22. Function convert(ch : string):integer;
    23. Var i, s, v, v2 : integer;
    24. Function decimal(c : char):integer;
    25. Begin
    26. Case c Of
    27. 'I' : decimal := 1;
    28. 'V' : decimal := 5;
    29. 'X' : decimal := 10;
    30. 'L' : decimal := 50;
    31. 'C' : decimal := 100;
    32. 'D' : decimal := 500;
    33. 'M' : decimal := 1000;
    34. End;
    35. End;
    36. Begin
    37. s := 0;
    38. For i:=1 To Length(ch) Do
    39. Begin
    40. v := decimal(ch[i]);
    41. If (i < Length(ch)) Then
    42. Begin
    43. v2 := decimal(ch[i+1]);
    44. If (v < v2) Then v:= -v;
    45. End;
    46. s := s + v;
    47. End;
    48. convert := s;
    49. End;
    50. (**********************P.P******************)
    51. Begin
    52. Saisie(ch);
    53. Writeln(ch , ' = ', convert(ch));
    54. End.

0 commentaires:

Enregistrer un commentaire

Page Facebook

Turbo Pascal 32 bits

Turbo Pascal 64 bits