Error in the program in VisualG

6

I'm having problems with this program, because when I put it to work and I type a value greater than 18, a message appears saying that it is missing a FIMSE and that there is a FIMENQUANTO without a corresponding ENQUANTO . the purpose of the program: Make a program that asks for fifteen ages and check the age group according to the table below. Display all incoming and outgoing data.

inicio 
n <- 0
i <- 0
escreval ("Digite 15 idades: ")
enquanto (i < 15) faca
   leia (n)
   i <- i + 1
   se (n < 18) entao
      escreval ("Sua idade corresponde a classificação: criança")
   senao se (n < 30) entao
      escreval ("Sua idade corresponde a classificação: jovem")
   senao se (n < 60) entao
      escreval ("Sua idade corresponde a classificação: adulto")
   senao
      escreval ("Sua idade corresponde a classificação: idoso")
   fimse
fimenquanto
fimalgoritmo
    
asked by anonymous 21.10.2017 / 00:08

2 answers

9

The problem is in the way you are using the condition structure:

 se (condicao) entao
     <comandos>
 senao
     <comandos>
 fimse

You always have to close the structure when you start it, so in order to perform a sequence of checks you need to be careful with the identation of your portugol. For this example of your question to work, you would have to do this:

Algoritmo "teste"
Var
// Seção de Declarações das variáveis
n,i,qtd: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
i <- 0
escreval("Digite quantas idades vc quer classificar: ")
leia(qtd)

 enquanto (i < qtd) faca
   escreval("Digite uma idade: ")
   leia(n)

   se (n < 18) entao
      escreval ("Sua idade corresponde a classificação: criança")
   senao
        se (n < 30) entao
           escreval ("Sua idade corresponde a classificação: jovem")
        senao
             se(n < 60) entao
                  escreval ("Sua idade corresponde a classificação: adulto")
             senao
                  escreval ("Sua idade corresponde a classificação: idoso")
             fimse
        fimse
   fimse

   i <- i + 1

 fimenquanto

Fimalgoritmo

See that I made a small change at the beginning of it, in which you tell how many ages you want to check the rating.

    
21.10.2017 / 02:28
1

Try this:

 inicio 
 n <- 0
 i <- 0
 escreval ("Digite 15 idades: ") 
 para i de 1 ate 15 faca
 leia (n) 
  se (n < 18) entao
  escreval ("Sua idade corresponde a classificação: criança")
  fimse
  se (n < 30 e n>18) entao
  escreval ("Sua idade corresponde a classificação: jovem")
  fimse
  se (n < 60 e n>30) entao
  escreval ("Sua idade corresponde a classificação: adulto")
  fimse
  se(n>60) entao
  escreval ("Sua idade corresponde a classificação: idoso")
  fimse
  fimenquanto
  fimalgoritmo

Other comparisons were missing from if's. (note that you made n

05.11.2017 / 13:34