Error in program in Visualg

Asked

Viewed 1,673 times

6

I’m having problems with this program, because when I put it to work and type a value greater than 18, a message appears saying that is missing a FIMSE and that there is a FIMENQUANTO without a ENQUANTO corresponding. This is the objective of the program:Make a program that requests fifteen ages and check the age group according to the table below. Display all input and output 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
  • Try to eliminate these "senao’s" and put if(n<18)then /fimse... if(n>=18 and n<30)then...fimse .... if(n<60 and n>=30)then... otherwise.... fimse

  • Vegas I managed to help you? If my answer was helpful, can you leave one up?

2 answers

9


The problem is in the mode in which you are using the condition structure:

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

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

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

Note that I made a small change at the beginning of it where you inform the amount of ages you want to check the rating.

1

Try it this way:

 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 in the if’s. (note that you did n<18 and n<30 and n<60, if the guy typed 17 he would theoretically enter the 3 options. That’s why I made a mistake. )

Browser other questions tagged

You are not signed in. Login or sign up in order to post.