Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Conversione da numero romano a numero arabo

Categoria: Codice Ultimo Aggiornamento: 25/10/05


Pubblichiamo di seguito una versione tradotta del metodo "MATH_RomainVersArabe" presente nella libreria Math4Dv2. il metodo prende come parametro una stringa in forma "romana" e restituisce l'equivalente in numeri arabi:

C_STRING(80;$1)
C_INTEGER($0;$risultatoArabo_L)

    `inizializzazione
$numeroRomano_S:=$1
$risultatoArabo_L:=0
MATHERROR:=0

    `calcolo
Repeat
  Case of
    : ($numeroRomano_S[[1]]="M")
      $risultatoArabo_L:=$risultatoArabo_L+1000
      $numeroRomano_S:=Substring($numeroRomano_S;2)

    : ($numeroRomano_S[[1]]="D")
      $risultatoArabo_L:=$risultatoArabo_L+500
      $numeroRomano_S:=Substring($numeroRomano_S;2)

    : ($numeroRomano_S[[1]]="C")
      Case of
        : (Length($numeroRomano_S)=1)
          $risultatoArabo_L:=$risultatoArabo_L+100
          $numeroRomano_S:=""
        : ($numeroRomano_S[[2]]="M")
          $risultatoArabo_L:=$risultatoArabo_L+900
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        : ($numeroRomano_S[[2]]="D")
          $risultatoArabo_L:=$risultatoArabo_L+400
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        Else
          $risultatoArabo_L:=$risultatoArabo_L+100
          $numeroRomano_S:=Substring($numeroRomano_S;2)
        End case

    : ($numeroRomano_S[[1]]="L")
      $risultatoArabo_L:=$risultatoArabo_L+50
      $numeroRomano_S:=Substring($numeroRomano_S;2)

    : ($numeroRomano_S[[1]]="X")
        Case of
        : (Length($numeroRomano_S)=1)
          $risultatoArabo_L:=$risultatoArabo_L+10
          $numeroRomano_S:=""
        : ($numeroRomano_S[[2]]="C")
          $risultatoArabo_L:=$risultatoArabo_L+90
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        : ($numeroRomano_S[[2]]="L")
          $risultatoArabo_L:=$risultatoArabo_L+40
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        Else
          $risultatoArabo_L:=$risultatoArabo_L+10
          $numeroRomano_S:=Substring($numeroRomano_S;2)
        End case

    : ($numeroRomano_S[[1]]="V")
      $risultatoArabo_L:=$risultatoArabo_L+5
      $numeroRomano_S:=Substring($numeroRomano_S;2)

    : ($numeroRomano_S[[1]]="I")
      Case of
        : (Length($numeroRomano_S)=1)
          $risultatoArabo_L:=$risultatoArabo_L+1
          $numeroRomano_S:=""
        : ($numeroRomano_S[[2]]="X")
          $risultatoArabo_L:=$risultatoArabo_L+9
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        : ($numeroRomano_S[[2]]="V")
          $risultatoArabo_L:=$risultatoArabo_L+4
          $numeroRomano_S:=Substring($numeroRomano_S;3)
        Else
          $risultatoArabo_L:=$risultatoArabo_L+1
          $numeroRomano_S:=Substring($numeroRomano_S;2)
      End case
    Else
      MATHERROR:=-1  `numero inesistente
      $numeroRomano_S:=""
      $risultatoArabo_L:=0
  End case
Until ($numeroRomano_S="")

$0:=$risultatoArabo_L




Autori, redattori e collaboratori per Math4Dv2:
Jacques Bossy
Philip Burns
Olivier Deschanels
Marc Duc-Jacquet
Bernard Escaich
Antoine Galmiche
Micaël Germann
Teddy Linet
Frédéric Quoirez
Michel Saiz
Robert Van Loo




Inviato da: PierPaolo Sichera Visite: 16427

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
330 utenti registrati

Pagina servita il 12/12/24 alle 21:36:08 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad