fimse without a corresponding SE

Asked

Viewed 95 times

0

I’m trying to run this code, but on line 40 in the fimse, it shows the error: fimse without corresponding SE

Algoritmo "semnome"
// Disciplina   : [Linguagem e Lógica de Programação]
// Professor   : Antonio Carlos Nicolodi 
// Descrição   : Aqui você descreve o que o programa faz! (função)
// Autor(a)    : Nome do(a) aluno(a)
// Data atual  : 23/11/2019
Var
// Seção de Declarações das variáveis 
idade, obrigatorio, facultativo, naoeleitor,cont, i: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreva("Quantas pessoas quer cadastrar?")

leia(cont)

enquanto i <> cont faca

  escreval("digite a idade do morador")

  leia (idade)

  se ((idade >=18) e (idade <= 69)) entao

    obrigatorio = obrigatorio + 1

 fimse


 se ((idade = 16) ou (idade = 17) ou (idade >=70)) entao

  facultativo = facultativo + 1

 fimse

 se (idade <16) entao

 naoeleitor = nao eleitor + 1

fimse

i = i + 1

fimenquanto

escreval("A quantidade de eleitores obrigatorios e", obrigatorio)

escreval ("A quantidade de eleitores facultativos e", facultativo)

escreval ("A quantidade de nao eleitore e", naoeleitor)

fimalgoritmo
  • Which of these lines is line 40?

  • if ((age >=18) and (age <= 69)) then required = required + 1

  • The same symbol (=) is the comparison operator and not the assignment command. Here: naoeleitor = nao eleitor + 1I believe that there is no such space after the nao. Failed to initialize variable iwith zero.

1 answer

0

I’m trying to run this code, but on line 40 in the fimse, it is presenting the error: fimse without corresponding SE

In tests, it did not present the same error... both in version 2.5, and in version 3.0.6.5 of Visualg. Basically the error is in the "symbol" used for "assigning values". Follows:

Attribution commands in Visualg

There are 2: or <- or :=

Incorrect mode:

obrigatorio = obrigatorio + 1

Valid modes:

obrigatorio <- obrigatorio + 1 or obrigatorio := obrigatorio + 1

Addendum: the command = is used for "comparisons".

Initialization of variables

In Visualg, the middle variables that are already* initialized automatically, that is: the numeric variables are set to 0; the characters are set to ""; the logical variables are set to FALSO etc..

But, as good practice, it would be recommended to reinforce... both because this characteristic (of "autoinitialization") is not common in programming languages; and becomes more explicit to those who are analyzing the code.

Here’s an example based on your code:

algoritmo "Eleitores"
// Disciplina  :
// Professor   :
// Descrição   :
// Autor(a)    : Jéssica Almeida
// Data atual  : 23/11/2019
var
   idade: inteiro
   obrigatorio, facultativo, naoEleitor: inteiro
   cont, total: inteiro

inicio
   escreva("Quantas pessoas quer cadastrar?")
   leia(total)

   cont <- 0 //apesar de ser inicializado automaticamente com 0, não custa nada!
   enquanto (cont < total) faca
      escrevaL("Digite a idade do morador")
      leia (idade)

      se ((idade >= 18) e (idade < 70)) entao
         obrigatorio <- obrigatorio + 1
      fimSe

      se (((idade >= 16) ou (idade <= 17)) ou (idade >= 70)) entao
         facultativo <- facultativo + 1
      fimSe

      se (idade < 16) entao
         naoEleitor <- naoEleitor + 1
      fimSe

      cont <- cont + 1
   fimEnquanto

   escrevaL("A quantidade de eleitores obrigatorios é ", obrigatorio:1)
   escrevaL("A quantidade de eleitores facultativos é ", facultativo:1)
   escrevaL("A quantidade de não eleitores é ", naoeleitor:1)
fimAlgoritmo

inserir a descrição da imagem aqui

Browser other questions tagged

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