Visualg - doubts about how to stop

Asked

Viewed 54 times

1

Good morning, I am making a code that he receives how many residents I want to register and how old, but if I type I want to register only one, he asks the age and returns the question again. I wonder, how do I get him to stop asking his age according to how much of a resident I want to register. For example: if I want to register 2, he has to ask me only twice the age of the resident. Var

// Seção de Declarações das variáveis 
Cont, EleitorObrigatorio, EleitorFacultativo, NaoEleitor, idade, i : Inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
Escreval ("Quantas pessoas quer cadastrar? ")
Leia (Cont)
i <- 1
Enquanto (i = Cont) faca

Escreval ("Digite a idade do morador? ")

Leia (Idade)

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

EleitorObrigatorio <- EleitorObrigatorio + 1

 Escreval (EleitorObrigatorio, " são eleitores obrigatórios")

senao

se ((idade >= 16) e (idade <= 17) ou (idade >= 71)) entao

EleitorFacultativo <- EleitorFacultativo + 1

 Escreval (EleitorFacultativo, " são eleitores facultativos")

senao

se (idade <= 15) entao

NaoEleitor <- NaoEleitor + 1

 Escreval (EleitorFacultativo, " não são eleitores")

Fimse

FimSe

FimSe


FimEnquanto


Fimalgoritmo

1 answer

0

Initialize your accumulators. The "while" test is wrong. Print totals only at the end.

algoritmo "Exercício"
Var
    Cont, EleitorObrigatorio, EleitorFacultativo, NaoEleitor, idade, i : Inteiro
Inicio
    EleitorObrigatorio <- 0
    EleitorFacultativo <- 0
    NaoEleitor <- 0
    Escreval ("Quantas pessoas quer cadastrar? ")
    Leia (Cont)
    i <- 1
    Enquanto (i <= Cont) faca
        Escreval ("Digite a idade do morador? ")
        Leia (Idade)
        se ((idade >= 18) e (idade <= 70)) entao
            EleitorObrigatorio <- EleitorObrigatorio + 1
        senao
            se ((idade >= 16) e (idade <= 17) ou (idade >= 71)) entao
                EleitorFacultativo <- EleitorFacultativo + 1
            senao
                se (idade <= 15) entao
                    NaoEleitor <- NaoEleitor + 1
                Fimse
            FimSe
        FimSe
    FimEnquanto
    Escreval (EleitorObrigatorio, " são eleitores obrigatórios")
    Escreval (EleitorFacultativo, " são eleitores facultativos")
    Escreval (NaoEleitor, " não são eleitores")
Fimalgoritmo
  • Even doing so, it is still in the looping and no longer appears how many are voters and etc

  • Lacked a i < i + 1 before the FimEnquanto.

  • It worked!!! Thank you so much

  • @Jéssicaalmeida do not forget to mark the answer as "Solved" to help the community to know if such a question has been helped (:

  • An additional remark: how to iterate a fixed number of times (cont) in my opinion it is clearer to use the command para i de 1 ate cont faca in place of enquanto.

Browser other questions tagged

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