Jump to content
irwingato

Crie um algoritmo que receba do usuário um número romano e converta em arábico

Recommended Posts

Var
   // Seção de Declarações das variáveis
   romano:caractere
   subtexto :caractere
   i:inteiro
   letra1:caractere


Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   escreval("Digite um número em romano para ser convertido em arábico")
   escreval("menor que 4000 e maior que 0")
   leia(romano)
   para i de 1 ate Compr(romano) faca
      subtexto <- Copia(romano,i,1)

      escreval(subTexto)

      fimpara

Consegui fazer somente isso, o problema está na hora de salvar letra por letra num vetor e saber a posição de cada letra pois se for uma letra menor que a posterior subtrai-se um exemplo é o X antes de C subtrai-se 10 ficando 90 e quando o C vale 100 e quando vem antes de um número maior que ele um exemplo é D ficando 400, acho que somente a letra I, X, C, subtraem-se se estiver antes de um número maior o resto soma-se, o problema está em saber a posição da letra.

Alguém  tem alguma ideia?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By luadiego
      algoritmo "ESCOLHA DE NUMEROS PARES OU IMPARES UNSANDO A ESTRUTURA DE CONDICIONAMENTO ESCOLHA COM A ESTRUTURA DE REPETIÇÃO PARA"
      var
         V,MUN,VALORES:INTEIRO
      inicio
          ESCREVA("DIGITE O NUMERO DESEJADO :")
          LEIA(V)
          escreval("----------------------------")
          escreval("  [1] PARA PAR              ")
          escreval("  [2} para IMPAR            ")
          ESCREVAL("----------------------------")
          ESCREVAL("ESCOLHA UM DOS VALORES")
          LEIA(VALORES)
          ESCOLHA(VALORES)
          caso 1
          PARA MUN <- 0 ATE V FACA
           SE (MUN MOD 2 =0) ENTAO
            escreval(MUN)
           FIMSE
          MUN <- MUN +1
          FIMPARA
           caso 2
         PARA MUN <- 0 ATE V FACA
           SE (MUN MOD 2 =1) ENTAO
            escreval(MUN)
           FIMSE
          MUN <- MUN +1
          FIMPARA
         FIMESCOLHA
      fimalgoritmo
    • By luizcmoficial
      escreval("CPF COMPLETO: ",vet[1],vet[2],vet[3]," .",vet[4],vet[5],vet[6]," .",vet[7],vet[8],vet[9]," -",digitoum,digitodois)

      Gostaria de deixar os números um do lado do outro, porém sem esse espaçamento.
      Os números sempre ficam todos meio separados, desta maneira: 3 2 1 . 1 4 3 . 1 2 2 - 5 9
      Não conheço nenhum comando que consiga fazer isso, ou nem sei se existe algum jeito. 
    • By luizrufino
      Boa tarde pessoal, estou com dificuldade para 
      desenvolver as linhas de códigos de um problema.
       
      Escreva um algoritmo em potrugol que leia o NOME do responsável e o número de filhos matriculados em uma escolinha de futebol. com mensalidade de $120,00, imprimir o valor que o responsável vai pagar, baseando-se na seguinte tabele de descontos
       
      filhos matriculados        Desconto
       1                                             10%
       2 a 3                                       15%
      acima de  3                             20
       
      Se alguém puder me ajudar, pode ser somente a estrutura básica.
    • By pedrof
      algoritmo "Bhaskara" var a, b, c, delta, raiz_delta, x1, x, x_delta, x2: Real inicio Escreva("Informe um numero inteiro diferente de 0: ") Leia(a) Escreva("Informe outro numero inteiro diferente de 0: ") Leia(b) Escreva("Novamente, informe outro numero inteiro diferente de 0: ") Leia(c) delta <- (b^2-4*a*c) Se (delta<0) entao delta <- Abs(delta) raiz_delta <- (RaizQ(delta)) x <- (b-b*2)/(2*a) x_delta <- raiz_delta/(2*a) x1 <- (x, "+", x_delta, "i") x2 <- (x, "-", x_delta, "i") Escreval("Utilizando ", a, " como 'a', ", b, " como 'b', ", c, " como 'c' em Delta e aplicando a ") Escreval("Formula de Bhaskara, chegamos ao resultado:) Escreva("x1 = ", x1, " e x2 ", x2) FimSe fimalgoritmo

      Parece ser algo bem idiota, mas não estou conseguindo resolver... Ajuda?
    • By Montesuma Oliveira
      Olá aos mestres do algoritmo com VisuAlg, tenho o seguinte algoritmo:
       
      algoritmo "Estrutura Indexadas - Vetor(Array)" // Seção de Declarações var indice, qtd_Veiculos, tot_Veiculos : inteiro nome_veiculo: vetor [1..40] de caractere inicio // Seção de Comandos escreval("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair: ") leia(qtd_Veiculos) enquanto qtd_Veiculos <> -1 faca    para indice de 1 ate qtd_Veiculos faca       escreva("Digite o Nome do Veículo: ")       leia(nome_veiculo[indice])    fimpara    tot_Veiculos <- 0    tot_Veiculos <- (tot_Veiculos + (indice + 1))    escreval("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair: ")    leia(qtd_Veiculos) fimenquanto para indice de 1 ate tot_Veiculos faca    escreval("O Veículo ", nome_veiculo[indice], " tem o índice ", indice) fimpara fimalgoritmo Estou usando vetor, o que acontece é o seguinte, por exemplo, digite dois veículos, quando ele retorna perguntando se quero encerrar, eu digo que quero incluir mais dois veículos, ao digitar -1 para sair, ele imprime somente os dois últimos veículos cadastrados e não 4 veículos, que deveria ser o correto, conforme figura anexa. Onde estou errando? Fico no aguardo de ajuda, muito grato.
       
       
       
       
       
       
       
       
       
       
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.