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: 776 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: 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 |
![]() |
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 |