Rpa007
-
Posts
1 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Rpa007
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Programa para converter números romanos em decimal
em Programação - outros
Postado
Olá pessoal. Tenho que fazer um exercício como descrito no título, que converta números romanos em decimal, usando a linguagem Pascal.
Assuntos que já vi: Manipulando Strings, REPEAT, FOR, WHILE, CASE e IF.
Sei que o maior número possível a ser formado será 3999 (MMMCMXCIX), que tem 9 caracteres.
Creio que a chave do programa está em conseguir definir quando terei que subtrair ou somar tal valor. Ex: IV = 4 e VI = 6, XC = 90 e CX = 110.
A posição e a quantidade de caracteres é o que define, pelo que entendi.
Dúvidas:
1) Lógica: será isso mesmo de verificar o tamanho do algarismo, e fazer:
(no caso, será apenas 1, 5, 10, 50, 100, 500, 1000 os valores possíveis, já que são os únicos de 1 algarismo.)
O "algarismo[1]" seleciona a primeira letra da variável algarismo, que foi definida como uma string. Da mesma forma o [2].
2)
No código acima, o valor continua sendo exibido em romano (ou seja, ele exibe o mesmo valor que eu digitei.) Como faço para passar a valer o valor em decimal? Ex: Digitei X, é para mostrar 10, porém programa ainda mostra X.
3) Há alguma lógica que funcione melhor para este programa, com os assuntos que eu aprendi?
Desculpem-me pelo grande número de perguntas, porém não achei nenhum tópico com dúvidas parecidas.
Desde já, agradeço.
___
Tabela com alguns números, para consulta: