| Você está aqui: VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística | 
| Como converter de decimal para números romanos em VisuAlg - Exercícios Resolvidos de VisuAlgQuantidade de visualizações: 849 vezes | 
| Pergunta/Tarefa: Escreva um algoritmo VisuAlg que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII Veja a resolução comentada deste exercício usando VisuAlg: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
algoritmo "Converter um número decimal em número romano"
var
  // Variáveis usadas na resolução do problema
  valores_numeros_romanos: vetor[0..12] de inteiro
  numeros_romanos: vetor[0..12] de caractere
  numero, i: inteiro
  resultado: caractere
inicio
  // vamos criar um vetor com os valores decimais possíveis de
  // cada número romano
  valores_numeros_romanos[0] <- 1000
  valores_numeros_romanos[1] <- 900
  valores_numeros_romanos[2] <- 500
  valores_numeros_romanos[3] <- 400
  valores_numeros_romanos[4] <- 100
  valores_numeros_romanos[5] <- 90
  valores_numeros_romanos[6] <- 50
  valores_numeros_romanos[7] <- 40
  valores_numeros_romanos[8] <- 10
  valores_numeros_romanos[9] <- 9
  valores_numeros_romanos[10] <- 5
  valores_numeros_romanos[11] <- 4
  valores_numeros_romanos[12] <- 1
  // representação dos números romanos
  numeros_romanos[0] <- "M"
  numeros_romanos[1] <- "CM"
  numeros_romanos[2] <- "D"
  numeros_romanos[3] <- "CD"
  numeros_romanos[4] <- "C"
  numeros_romanos[5] <- "XC"
  numeros_romanos[6] <- "L"
  numeros_romanos[7] <- "XL"
  numeros_romanos[8] <- "X"
  numeros_romanos[9] <- "IX"
  numeros_romanos[10] <- "V"
  numeros_romanos[11] <- "IV"
  numeros_romanos[12] <- "I"
  // vamos pedir para o usuário informar um número decimal
  escreva("Informe um número decimal: ")
  leia(numero)
  // para guardar o resultado
  resultado <- "";
  // o número é maior que zero?
  se numero > 0 entao
    // percorremos o array de valores decimais dos números romanos
    para i de 0 ate 12 faca
      // enquanto o número informado for maior que o valor do
      // do número romano atual
      enquanto numero >= valores_numeros_romanos[i] faca
        // reduz o número informado
        numero <- numero - valores_numeros_romanos[i]
        // concatena o número romano e continua o cálculo
        resultado <- resultado + numeros_romanos[i]
      fimenquanto
    fimpara
  fimse
  // mostramos o resultado
  se resultado = "" entao
    escreva("O número informado não possui número romano")
  senao
    escreva("O número romano correspondente é: ", resultado)
  fimse
fimalgoritmo
 | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de VisuAlg | 
| Veja mais Dicas e truques de VisuAlg | 
| Dicas e truques de outras linguagens | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





