Jump to content

irwingato

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About irwingato

Contato

  1. 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
  2. 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?
  3. Var // Seção de Declarações das variáveis Fatorial,Numero,x : Inteiro Primo,Resposta : Inteiro vetorr : vetor[0..1000] de inteiro Flag : Logico Inicio // Seção de Comandos, procedimento, funções, operadores, etc... Limpatela Mudacor("Amarelo","Frente") Escreva("Deseja até que número primo: ") leia(Numero) Escreval Escreva(" 1") Para Primo de 2 ate Numero faca Fatorial<- 2 Flag <- Falso enquanto (Primo<>fatorial) faca Resposta <- Primo MOD Fatorial Fatorial <- Fatorial + 1 se Resposta = 0 entao Flag <- Verdadeiro fimse fimenquanto se (Nao Flag) entao escreva(" , ",Primo) vetorr[x] := primo x := x + 1 fimse fimpara escreval escreval escreval("O Número Primo Anterior A ",numero," é ",vetorr[x-1]) O código ficou bom mas contém um erro o número 1 não é primo e preciso otimizá-lo ainda para ficar mais eficiente gostaria de quando você múltiplo de um número já removesse da contagem e passasse para o próximo número, pois quando é múltiplo já não é mais primo pois somente precisa ter 2 divisores exatos que no caso seria o 1 e o número digitado, a e outra falha no algoritmo tem que ser um número primo anterior e caso o número digitado seja primo deve informar o número primo anterior a este digitado
  4. Var // Seção de Declarações das variáveis respostas,gabarito: vetor[1..3]caractere i,acertos, erros: inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... //Escreval("Digite a resposta") //Escreval("Digite o gabarito") para i de 1 ate 3 faca Escreval("Digite a resposta") leia(respostas[i]) se(respostas[i]<>a) e (respostas[i]<>b) e (respostas[i]<>c) e (respostas[i]<>d) Escreval("Por favor digite respostas válidas de a,b,c e d") fimse fimpara para i de 1 ate 3 faca Escreval("Digite o gabarito") leia(gabarito[i]) se(gabarito[i]<>a) e (gabarito[i]<>b) e (gabarito[i]<>c) e (gabarito[i]<>d) Escreval("Por favor digite um gabarito válido de a,b,c e d") fimse fimpara acertos<-0 para i de 1 ate 3 faca se(respostas[i] = gabarito[i]) entao acertos<-acertos+1 fimse erros<-3-acertos fimpara escreval("O número de acertos foi:",acertos) escreval("O número de erros foi:", erros) Fimalgoritmo Criei esse algoritmo porém o mesmo apresenta o erro variável RESPOSTAS[1] não foi encontrada, já tentei achar o erro e nada, o algoritmo que fiz é para pedir as respostas de a até d caso não seja informado isso irá pedir para informar esse valor no gabarito também e também conta os acertos e os erros
×

Important Information

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