Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

j2k

preciso converter numeros em algarismos romanos em!!

Recommended Posts

ola pessoal

 

preciso converter numerais cardinais (1, 2, 3, 4...) em algarismos romanos. Se alguem tiver ai, posta pra nós!

 

...

 

 

Se alguem quiser fazer um codigo pra isso, eu tenho dois códigos que podem ajudar:

 

 

1) O primeiro é um codigo que eu tenho que faz o contrario: converte romanos em numeros cardinais. Vejam:

 

Function parseRom(number_parse)aInt = "1,4,5,9,10,40,50,90,100,400,500,900,1000"aRom = "I,IV,V,IX,X,XL,L,XC,C,CD,D,CM,M"aIntArr = Split(aInt, ",", -1, 1)aIntRom = Split(aRom, ",", -1, 1)mVal = CInt(number_parse)mres = ""For viLoop = UBound(aIntArr) To LBound(aIntArr) Step -1 Do While mVal >= CInt(aIntArr(viLoop))  mVal = (mVal - CInt(aIntArr(viLoop)))  mres = mres & aIntRom(viLoop) LoopNext   parseRom = mresMsgBox mresEnd Function
...

 

2) O segundo é um codigo que faz o que eu quero (cardinais > romanos), mas está em ASP. Vejam:

 

<%@Language=VBScript%><%Option ExplicitResponse.Buffer = True%><html><head><title>Números Romanos FórumWeb - PLUSmasters</title><%Function ToRomano(Valor)Dim aInteiros(13)Dim aRomanos(13)Dim iDim ResultaInteiros(0) = 1aInteiros(1) = 4aInteiros(2) = 5aInteiros(3) = 9aInteiros(4) = 10aInteiros(5) = 40aInteiros(6) = 50aInteiros(7) = 90aInteiros(8) = 100aInteiros(9) = 400aInteiros(10) = 500aInteiros(11) = 900aInteiros(12) = 1000aRomanos(0) = "I"aRomanos(1) = "IV"aRomanos(2) = "V"aRomanos(3) = "IX"aRomanos(4) = "X"aRomanos(5) = "XL"aRomanos(6) = "L"aRomanos(7) = "XC"aRomanos(8) = "C"aRomanos(9) = "CD"aRomanos(10) = "D"aRomanos(11) = "CM"aRomanos(12) = "M"For i = 12 To 0 Step -1Do While Valor >= aInteiros(i)Valor = Valor - aInteiros(i)Result = Result + aRomanos(i)LoopNextToRomano = ResultEnd Function%><script Language="JavaScript">function Limpe() {document.Teste.T1.value=""document.Teste.T2.value=""document.Teste.T1.focus()}</script><script LANGUAGE="JavaScript">function apenasnumericos(caracter) {if(document.all) { // Internet Explorervar tecla = event.keyCode;}else {if(document.layers) { // Nestcapevar tecla = caracter.which;}}if(tecla > 47 && tecla < 58) { // numeros de 0 a 9return true;}else {if (tecla != 8) { // backspacereturn false;}else {return true;}}}</script></head><body onload="document.Teste.T1.focus();document.Teste.T1.select()"><%Dim RomanoRomano = ToRomano(Int(Request("T1")))%><form method="POST" name="Teste"><p><input type="text" name="T1" onKeyPress="return apenasnumericos(event);" size="4"maxlength="4" value="<%=Request("T1")%>"><br><input type="text" name="T2" size="20" value="<%=Romano%>"></p><p><input type="submit" value="Converter" name="B1"><input type="button" value="Limpar"name="B2" onclick="Limpe()"></p></form></body></html>

...

 

 

Se puderem me ajudar eu agradeço!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Campeão,

 

Pq você não inverte as duas primeiras linhas de programação, onde é

inserido os valores nas variaveis ?

 

Troca:

 

aInt = "1,4,5,9,10,40,50,90,100,400,500,900,1000"aRom = "I,IV,V,IX,X,XL,L,XC,C,CD,D,CM,M"

Por:

 

aInt = "I,IV,V,IX,X,XL,L,XC,C,CD,D,CM,M"aRom = "1,4,5,9,10,40,50,90,100,400,500,900,1000"

Será que não resolve ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.