Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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?

Acho que sei como finalmente fazer primeiramente eu pegaria o valor em romano digitado, pegaria o tamanho da letra valor atribuído seria n tamanho da letra e desse tamanho da letra tiraria n-1, depois tentaria dividir a letra, não sei o comando no VisualG para separar as letras e criaria um variável para armazenar o separamento dessas letras nesse caso separador criaria outra variável nesse caso s e receberia zero depois faria um para onde i =0 e i tem que ser menor que o tamanho da letra nessa e iria somando por +1 depois abriria um se verificando se a divisão da letras separador = "M" então s= s+1000 e dentro desse se abriria outro se  e se se separador[i-1]= "C" então s= s-200, terminaria esse se depois abriria outro se verificando se separador = "D" então s=s+500 e dentro abriria outro se e se separador[i-1] = "C" então s=s-200 depois fecharia esse se e abriria outro se separador = "C" então s=s+100 e dentro desse se abriria outro se se separador[i-1] = "X" e então s=s-20 depois terminaria esse se e abriria outro se, se separador = "L" então s=s+50 dentro abriria outro se, se separador[i-1] = "X" então

s=s-20 depois terminaria esse se e abriria outro se, se separador="X" então s=s+10 abriria outro se, se separador[i-1] = "I" então s=s-2 depois fecharia esse se depois abriria outro se, se separador="V" então s=s+5 e dentro desse se abriria outro se, se separador[i-1] = "I" então s=s-2 fecharia esse se depois abriria outro se se separador = "I" então s=s+1

depois daria um escreval(s)

O problema está na hora de separar as letras qual o comando no VisualG para separar letra ou não tem?

O comando copia é útil somente se separar letra por letra porém falha na hora, por exemplo de copiar um número romano, eu eu tenho que já passar esse comando com parâmetros já pré-deficinidos copie desta casa até esta casa (romano;1;2), que no não teria como colocar todos os parâmetros para todos os números de 1 a 3999

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por alexdyna
      Prezados,
      Amigos tenho que fazer um trabalho da faculdade onde o professor me da um arquivo que vou colocar anexo e tenho que fazer um algoritmo que leia o arquivo e monte uma tabela com as informações.
      pelo que vejo ele tem na primeira linha 8 barra e nas demais linha 10 barras
      ate a ultima que seria sua parada onde temos 2 barras seguidas.
       
      ficaria muito grato com a ajuda de todos.
       
      No arquivo anexo esta o texto:
      Nome/telefone/nascimento/Horas Curso/vendas T1/vendas T2/vendas T3/vendas T4/
       Luiz Ranza Neo/99934-5255/05/12/1989/200/107099,072578621/76915,8996218681/100922,271239691/76372,9971916498/
      Richard de Barrissaia/99326-4689/18/03/1990/150/55123,0080621828/68062,2200055909/67233,9928593779/45236,5928531083/
      Rodrigo Abalâminos/99911-7413/09/08/1987/168/71697,3866071191/58063,5644108225/88183,6230762134/48160,3116315664/
      José Gigfrid/99658-7874/15/04/1997/135/48816,199086596/50086,3689415844/52916,3066872779/55232,0663463164/
      Luiza Celly Silva/99659-1214/01/02/2000/90/29208,8223591438/39361,8088384592/45062,056112236/38913,7237126574/
      Maria Kunlun/99686-7845/21/04/1984/182/92076,1053757689/80440,5339844205/87575,0546657182/79220,9398178354/
      //
       
    • Por cerejafalante
      Olá pessoal, estou com uma lista de exercício de funções para fazer no visualg mas não sei por onde começar, alguém pode me ajudar fazendo esse exercício? ai eu pego ele de exemplo e faço os outros, obrigada
       
      o exercício é 
      Escreva um programa que calcula área de figuras: quadrado, retângulo, triângulo e círculo. O usuário informa qual forma deseja calcular a área, informa os parâmetros necessários e a área da forma é calculada em uma função. 
    • Por cerejafalante
      Pessoal tenho que fazer um algoritmo de função no visualg de uma calculadora. Eu fiz o algoritmo mas não sei como fazer função, alguém me ajudaaa
      o código está aqui, tem que por em função, obrigada
       
      Var
      n1,n2,r:real
      operacao:inteiro
      inicio
      repita
      escreval ("1. Multiplicação ")
      escreval ("2. Divisão ")
      escreval ("3. Subtração ")
      escreval ("4. Soma ")
      escreval ("5. Sair ")
      leia (operacao)
      se ( operacao = 5 ) entao
      fimalgoritmo
      fimse
      limpatela
      escreva ("Diga o primeiro numero: ")
      leia ( n1 )
      ate ( operacao >= 1 ) e ( operacao <= 5 )
      se ( operacao <= 4 ) e ( operacao >= 1 ) entao
      escreva ("Diga o segundo numero: ")
      leia (n2)
      fimse
      escolha operacao
      caso 1
      r <- n1*n2
      caso 2
      r <- n1/n2
      caso 3
      r <- n1-n2
      caso 4
      r <- n1+n2
      outrocaso
      escreva ("escolha incorreta")
      fimescolha
      escreval ("O resultado é: ", r)
      escreval ("")
      ate ( operacao = 5 )
      fimalgoritmo
    • Por LeoCS2724
      Preciso que alguem faça esse exercicios para min, pois estou fazendo uma lista de 100 exercicios, e preciso entrega-los até hoje.
      São para ser feitos em VISUAL G.


      3- Uma loja tem 10 cadastrados e deseja enviar uma correspondência a cada um deles anunciando um bônus especial. Faça um programa que leia o nome do cliente e o valor de suas compras no ano passado. Calcule e mostre um bônus de 10% se o valor das vendas for menor que R$1000,00 e 15% caso contrário.

      5- Faça um programa que receba a idade, altura e peso de 25 pessoas. Calcule e mostre:

      - A quantidade de pessoas com idade superior a 50 anos.

      - A média das alturas das pessoas com idade entre 10 e 20 anos.

      - A porcentagem de pessoas com peso inferior a 40 kg entre todas as pessoas analisadas;


      6- Faça um programa que receba 10 números e que calcule e mostre a quantidade de números entre 30 e 90.

      8- Faça um programa que receba várias idades e que calcule e mostre a média das idades digitadas. Finalize digitando idade igual a zero.


      9- A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e o número de filhos. A prefeitura deseja saber:

      a) a média do salário da população;

      b) a média do número de filhos;

      c) o maior salário


      10- Escrever um algoritmo que lê 5 valores para a, um de cada vez, e conta quantos destes valores são negativos, escrevendo esta informação.


      11- Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Zé seja maior que Chico.

      14-Escrever um algoritmo que leia 20 valores para uma variável n e, para cada um deles, calcule a tabuada de 1 até n. Mostre a tabuada na forma:


      1 x n = n


      2 x n = 2n


      3 x n = 3n


      .......


      n x n = n2


      15- Faça um algoritmo que leia uma quantidade não determinada de números positivos. Calcule a quantidade de números pares e ímpares, a média de valores pares e a média geral dos números lidos. O número que encerrará a leitura será zero.


      16- Foi realizada uma pesquisa de algumas características físicas da população de uma certa região. Foram entrevistadas 500 pessoas e coletados os seguintes dados:

      a- Sexo: M (masculino) e F (feminino)

      b- cor dos olhos: A (azuis), V (verdes) e C (castanhos)

      c- cor dos cabelos: L (louros), C (castanhos) e P (pretos)

      d- Idade

      Deseja-se saber:

      a maior idade do grupo

      a quantidade de indivíduos do sexo feminino, cuja idade está entre 18 e 35 anos e que tenham olhos verdes e cabelos louros.
    • Por LeoCS2724
      Preciso que alguem faça esse exercicios para min, pois estou fazendo uma lista de 100 exercicios, e preciso entrega-los até hoje.
      São para ser feitos em VISUAL G.


      3- Uma loja tem 10 cadastrados e deseja enviar uma correspondência a cada um deles anunciando um bônus especial. Faça um programa que leia o nome do cliente e o valor de suas compras no ano passado. Calcule e mostre um bônus de 10% se o valor das vendas for menor que R$1000,00 e 15% caso contrário.

      5- Faça um programa que receba a idade, altura e peso de 25 pessoas. Calcule e mostre:

      - A quantidade de pessoas com idade superior a 50 anos.

      - A média das alturas das pessoas com idade entre 10 e 20 anos.

      - A porcentagem de pessoas com peso inferior a 40 kg entre todas as pessoas analisadas;


      6- Faça um programa que receba 10 números e que calcule e mostre a quantidade de números entre 30 e 90.

      8- Faça um programa que receba várias idades e que calcule e mostre a média das idades digitadas. Finalize digitando idade igual a zero.


      9- A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e o número de filhos. A prefeitura deseja saber:

      a) a média do salário da população;

      b) a média do número de filhos;

      c) o maior salário


      10- Escrever um algoritmo que lê 5 valores para a, um de cada vez, e conta quantos destes valores são negativos, escrevendo esta informação.


      11- Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Zé seja maior que Chico.

      14-Escrever um algoritmo que leia 20 valores para uma variável n e, para cada um deles, calcule a tabuada de 1 até n. Mostre a tabuada na forma:


      1 x n = n


      2 x n = 2n


      3 x n = 3n


      .......


      n x n = n2


      15- Faça um algoritmo que leia uma quantidade não determinada de números positivos. Calcule a quantidade de números pares e ímpares, a média de valores pares e a média geral dos números lidos. O número que encerrará a leitura será zero.


      16- Foi realizada uma pesquisa de algumas características físicas da população de uma certa região. Foram entrevistadas 500 pessoas e coletados os seguintes dados:

      a- Sexo: M (masculino) e F (feminino)

      b- cor dos olhos: A (azuis), V (verdes) e C (castanhos)

      c- cor dos cabelos: L (louros), C (castanhos) e P (pretos)

      d- Idade

      Deseja-se saber:

      a maior idade do grupo

      a quantidade de indivíduos do sexo feminino, cuja idade está entre 18 e 35 anos e que tenham olhos verdes e cabelos louros.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.