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:
  1. Percorrer cada símbolo do número romano da esquerda para a direita.
  2. 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.
  3. 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:
  1. Criar um dicionário com os valores dos símbolos romanos.
  2. Percorrer o número romano da esquerda para a direita.
  3. 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.
  4. Acumular o resultado conforme percorre todo o número.
  5. 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!

Exercícios relacionados