Escreva um programa para converter números escritos em algarismos romanos (menores que 4000) para arábicos.
Passo 1
Beleza, vamos lá! O que esse exercício pede é para criar um programa que converta números romanos em números arábicos, mas só até 3999. Isso envolve programação e um pouco de conhecimento sobre os algarismos romanos. Para resolver isso, vamos precisar entender como os números romanos funcionam e depois pensar em como transformar isso em código que faça essa conversão automáticamente.
Passo 2
Primeiro, vamos dar uma olhada nos símbolos básicos dos números romanos e seus valores:
- I vale 1
- V vale 5
- X vale 10
- L vale 50
- C vale 100
- D vale 500
- M vale 1000
Essa é a base para entender os números romanos.
Passo 3
Agora, precisamos entender que os números romanos combinam esses símbolos para formar outros números. Geralmente, somamos os valores dos símbolos da esquerda para a direita. Por exemplo:
- III = 1 + 1 + 1 = 3
- VIII = 5 + 1 + 1 + 1 = 8
Mas tem uma regrinha especial: quando um símbolo de menor valor vem antes de um de maior valor, em vez de somar, a gente subtrai. Por exemplo:
- IV = 5 - 1 = 4
- IX = 10 - 1 = 9
Esses são chamados de “números de subtração”.
Passo 4
Com isso em mente, para converter um número romano para arábico, podemos seguir esta lógica:
- Percorrer cada símbolo do número romano da esquerda para a direita.
- Comparar o valor do símbolo atual com o valor do próximo símbolo.
- Se o valor atual for menor que o próximo, subtrai esse valor.
- Se for igual ou maior, soma esse valor.
- Repetir até o final do número romano para obter o valor arábico correspondente.
Passo 5
Vamos ver um exemplo para clarear:
Considere o número romano MCMIV.
- M = 1000
- C = 100
- M = 1000
- I = 1
- V = 5
Aplicando a regra:
- M (1000) seguido de C (100): 1000 >= 100, então soma 1000.
- C (100) seguido de M (1000): 100 < 1000, então subtrai 100.
- M (1000) seguido de I (1): 1000 >= 1, então soma 1000.
- I (1) seguido de V (5): 1 < 5, então subtrai 1.
- V (5): último símbolo, soma 5.
Total: 1000 - 100 + 1000 - 1 + 5 = 1904
Passo 6
Agora, pensando em programação, vamos precisar de:
- Um dicionário (ou mapa) que associe cada símbolo romano ao seu valor arábico.
- Uma maneira de percorrer cada símbolo do número romano.
- Aplicar a regra de subtrair ou somar com base na comparação entre símbolos adjacentes.
Além disso, precisamos garantir que o programa trate apenas números romanos válidos e dentro do limite especificado (menores que 4000).
Passo 7
Vamos resumir os passos para o programa:
- Criar um dicionário com os valores dos símbolos romanos.
- Percorrer o número romano da esquerda para a direita.
- Comparar o valor de cada símbolo com o próximo.
- Se o atual for menor que o próximo, subtrair o valor atual.
- Caso contrário, somar o valor atual.
- Acumular o resultado conforme percorre todo o número.
- Retornar o valor arábico final.
Resposta
Seguindo esses passos, conseguimos criar um programa que converte números romanos em arábicos de forma correta e eficiente!