Ir ao conteúdo
  • Cadastre-se

VisualG VisualG, esperava encontrar ENTAO


Posts recomendados

Estou fazendo esse código, porém quando vou executar, informa que na linha 7 era esperado o então, todavia, ele está lá !

 

Algoritmo "semnome"
var
idade: real
inicio
escreva ("Qual a idade: ")
leia(idade)
se idade_eleitor < 16 então
    imprime "NÃO É ELEITOR"
se idade_eleitor >= 16 e  idade_eleitor  < 18  então
    imprime "FACULTATIVO"
se idade_eleitor >= 18 e idade_eleitor  <70 então
    imprime "OBRIGATÓRIO"
se não "FACULTATIVO"
fimse
fimse
fimse
Fimalgoritimo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Jéssica Aparecida Almeida      o visualg não explica muito bem o que realmente está errado no código , precisa fazer uma vistoria e observar o que pode estar fora do normal do que é estabelecido nessa linguagem , e  o então no visualg não pode conter acentuação ,  e nem o senao , e o imprime não é um comando do visualg , creio que você queria dizer escreval , mas pode ser também imprime desde que você faça hum procedimento que receba a frase por parâmetro ,  então seu código poderia ser assim  :

Algoritmo "semnome"
var
idade_eleitor: real                       //variável diferente
ok : logico
op : caractere
procedimento imprime(string : caractere)
inicio
  escreval(string)
fimprocedimento
inicio
ok := falso
repita
  escreva ("Qual a idade: ")
  leia(idade_eleitor)
  se idade_eleitor < 16 entao           //então não pode ter acentuação
    imprime ("NÃO É ELEITOR")           //imprime seria hum procedimento ?
  senao
    se (idade_eleitor >= 16) e (idade_eleitor < 18) entao//então não pode ter acentuação
                                     //duas ou mais comparações precisa ser entre parenteses
      imprime ("FACULTATIVO")
    senao
      se (idade_eleitor >= 18) e (idade_eleitor < 70) entao//então não pode ter acentuação
          imprime ("OBRIGATÓRIO")
      senao
          imprime("FACULTATIVO")
      fimse
    fimse
  fimse
  escreva("testar outro S/N ")
  leia(op)
  se maiusc(op)="N" entao
    ok := verdadeiro
  fimse
ate ok
Fimalgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Eu comecei a estudar Portugol hoje no VisuAlg, então, não tenho muito conhecimento.

Eu reescrevi seu código mudando algumas coisas.

 

Você declara a variável "idade", mas chama a variável não declarada "idade_eleitor". Se você não declarou essa variável, não pode chamá-la.

 

Você começa o seu algoritmo usando o comando "escreva", depois tenta usar "imprime". Eu usei o comando "escreval", pra pular uma linha logo depois de imprimir na tela o texto que eu quero.

 

Você esqueceu de abrir e fechar os parênteses, '(' e ')' depois de pedir pra "imprimir".

 

Nenhum comando pode ser escrito com letras acentuadas. O comando "então" deveria ser "entao".

 

Você esqueceu de dar o comando para comparar a idade pro caso de ser maior que 70. Mas escreveu uma ultima linha de "FACULTATIVO".

 

No final, o código reescrito ficou assim:


 

Algoritmo "semnome"

var

idade: real

inicio

      escreval ("Informe sua idade: ")
      leia (idade)


          se idade < 16 entao
          escreval ("NÃO É ELEITOR")
          fimse


          se (idade >= 16) e (idade <= 18)  entao
          escreval ("Seu voto é FACULTATIVO")
          fimse


          se (idade > 17) e (idade <70) entao
          escreval ("Seu voto é OBRIGATÓRIO")
          fimse


          se idade >= 70 entao
          escreval ("Seu voto é FACULTATIVO")
          fimse


fimalgoritmo

 

Eu rodei e testei com idades menores que 16, igual a 16, maior que 16, menor que 70, igual a 70 e maior que 70.

Eu também coloquei o comando (fimse) logo depois do (se), além de ter pulado uma linha, porque pra mim fica mais fácil de ler.

Como eu disse, comecei a estudar hoje, não conheço lógica de programação muito bem, mas deve haver um jeito de deixar o código menor e mais eficiente.

 

Espero ter ajudado.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Raziel_Rocha, seja bem vindo ao Fórum do Clube do Hardware... :)

 

Em relação as sugestões de correções, é bem por aí mesmo, apenas ficou uns detalhes em relação aos valores das condições. Por exemplo: se informar que tem 18 anos, vai dar é facultativo e obrigatório (2 resultados prum mesmo valor).

Segue um exemplo de código:

algoritmo "FCdH"
var
   idade :inteiro
inicio
   escreva ("Informe sua idade: ")
   leia(idade)
   se (idade < 16) entao
      escreval("NÃO É ELEITOR")
   fimSe
   se (idade >= 16) e (idade < 18) entao
      escreval("Seu voto é FACULTATIVO")
   fimSe
   se (idade >= 18) e (idade < 70) entao
      escreval("Seu voto é OBRIGATÓRIO")
   fimSe
   se (idade >= 70) entao
      escreval("Seu voto é FACULTATIVO")
   fimSe
fimAlgoritmo


Um resumo geral e com alguns complementos:

  1. a idade é inteira, em vez de real;
  2. o limite para facultativo é 17. Com 18 já é "obrigatório" (vide erro citado mais acima). Obs.: apesar de ser valores inteiros, é preferível utilizar <18 do que <=17;
  3. Na outra verificação, é preferível >=18 do que >17;

 

Seguem outros exemplos de solução:

algoritmo "FCdH"
var
   idade :inteiro
inicio
   escreva ("Informe sua idade: ")
   leia(idade)
   se (idade < 16) entao
      escreval("NÃO É ELEITOR")
   fimSe
   se ((idade >= 16) e (idade < 18)) ou (idade >= 70 ) entao
      escreval("Seu voto é FACULTATIVO")
   fimSe
   se (idade >= 18) e (idade < 70) entao
      escreval("Seu voto é OBRIGATÓRIO")
   fimSe
fimAlgoritmo

ou

algoritmo "FCdH"
var
   idade :inteiro
inicio
   escreva ("Informe sua idade: ")
   leia(idade)
   se (idade < 16) entao
      escreval("NÃO É ELEITOR")
   senao
      se ((idade >= 16) e (idade < 18)) ou (idade >= 70 ) entao
         escreval("Seu voto é FACULTATIVO")
      senao
         se (idade >= 18) e (idade < 70) entao
            escreval("Seu voto é OBRIGATÓRIO")
         fimSe
      fimSe
   fimSe
fimAlgoritmo

ou

algoritmo "FCdH"
var
   idade :inteiro
inicio
   escreva ("Informe sua idade: ")
   leia(idade)
   se (idade < 16) entao
      escreval("NÃO É ELEITOR")
   senao
      se ((idade >= 16) e (idade < 18)) ou (idade >= 70 ) entao
         escreval("Seu voto é FACULTATIVO")
      senao
         escreval("Seu voto é OBRIGATÓRIO")
      fimSe
   fimSe
fimAlgoritmo

Etc.

 

 

@Jéssica Aparecida Almeida, por favor, poste enunciado completo para analisarmos melhor... pois as característica do programa dependem especificamente do que foi pedido (e também do que você já estudou - ou seja: meio que evitar recursos que ainda não foi "ensinado", desta forma seguindo um fluxo de aprendizagem).

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...