Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
Postado

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
  • Membro VIP
Postado

@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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!