Bom dia, eu digitei esse código na intenção de cadastrar idade das pessoas infinitas e no final apresentar

uma tabela mostrando quem é obrigatório facultativo e que não pode votar. veja:
algoritmo "semnome"
//
//
// disciplina : pic
// professor : fábio fernande
// descrição : cadantramento facultativo de pessoas.
// autor(a) : stephany de souza duarte
// data atual : 03/11/2019
var
// seção de declarações das variáveis
id, ob, fa, np, soma, re: inteiro

resp: caractere
inicio
// seção de comandos, procedimento, funções, operadores,
escreval("")
escreval(" seja bem vindo")
escreval("")
escreval("")
escreval("vamos começar? ")
escreval("")

repita
repita
escreval("qual é a idade do cidadão a ser cadastrado? ")
leia(re)
ate(re> ="0")e(re< ="200")entao
se (re> =0)e (re< =200)entao
soma< -soma+1
se (re> =18) e (re< =69) entao
ob< -ob+1
senao
se (re=16) ou (re=17) ou (re> =70) entao
fa< -fa+1
senao
se (re> =0)e(re< =15) entao
np< -np+1
senao
escreval ("por favor digite apenas uma idade")
fimse
fimse
fimse
fimse
repita
escreval ("por favor digite apenas [s] ou [n]")
escreval("deseja continuar? ")
leia(resp)
ate(resp="n")ou(resp="n")ou(resp="s ")ou(resp="s")
ate (resp="n")ou(resp="n")
limpatela
escreval("relatório")
escreval(" foram cadastrado's um total de ",soma," eleitores! ")
escreval("")
escreval(" sendo: ")
escreval("")
escreval("obrigatório : ",ob," pessoa's.")
escreval("facultativo : ",fa," pessoa's.")
escreval("não àpito : ",np," pessoa's.")
escreval("")
escreval("fim do relatório")
fimalgoritmo

consegui fazer com o que quando a pessoa digita qual quer outra coisa além se s ou n no deseja continuar. o questionário não procede, e consegui fazer tem que na primeira pergunta quando coloca um valor negativo ele não soma da tabela e volta a deseja continuar.
porem quando e feito essa pergunta
escreval("qual é a idade do cidadão a ser cadastrado? ")
ele aceita como resposta s, d,e, r,f, t,g, e3,4r, fr, de3,etc.
ele aceita qualquer outra coisa além de números acima de 200 e menores de 0 ele ainda aceita letras palavra e letras com numero, e não quero que isso aconteça o que eu devo fazer?

1 Resposta

  • Gustastrada

    Algoritmo "semnome"

    //

    //

    // Disciplina : PIC

    // Professor : Fábio Fernande

    // Descrição : Cadantramento facultativo de pessoas.

    // Autor(a) : Stephany de Souza Duarte

    // Data atual : 03/11/2019

    Var

      // Seção de Declarações das variáveis

      verificador,obrigatorio,facultativo,naoApto,soma,idadePessoa: inteiro

      RESP:caractere

    Inicio

      // Seção de Comandos, procedimento, funções, operadores, etc...

      escreval("")

      escreval(" seja bem vindo")

      escreval("")

      escreval("")

      escreval("Vamos começar?")

      escreval("")

      Repita

         idadePessoa<-0

         verificador<-0

         enquanto (idadePessoa <= 0) ou (idadePessoa >= 200) faca

            se (verificador = 0) entao

               escreval("Qual é a idade do cidadão a ser cadastrado?")

               leia(idadePessoa)

               verificador<-verificador+1

            senao

                 escreval("Tente outro valor:")

                 leia(idadePessoa)

            fimse

         fimenquanto

         se (idadePessoa>=0)e (idadePessoa<=200)entao

            soma<-soma+1

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

               obrigatorio<-obrigatorio+1

            senao

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

                  facultativo<-facultativo+1

               senao

                  se (idadePessoa>=0)e(idadePessoa<=15) entao

                     naoApto<-naoApto+1

                  senao

                     Escreval ("Por Favor digite apenas uma idade")

                  fimse

               fimse

            fimse

         fimse

         repita

            Escreval ("Por Favor digite apenas [S] ou [N]")

            escreval("Deseja continuar?")

            leia(RESP)

         ate(RESP="N")ou(RESP="n")ou(RESP="S")ou(RESP="s")

      ate (RESP="N")ou(RESP="n")

      limpatela

      escreval("Relatório")

      Escreval(" Foram cadastrado's um total de ",soma," Eleitores!")

      escreval("")

      escreval(" Sendo: ")

      escreval("")

      escreval("Obrigatório :",obrigatorio," pessoa(s).")

      escreval("Facultativo :",facultativo," pessoa(s).")

      escreval("Não Ápto :",naoApto," pessoa(s).")

      escreval("")

      escreval("Fim do Relatório")

    Fimalgoritmo

    Olha se dá certo, eu testei aqui dps de adicionar um enquanto pra veririfcar idade e fiz um artifício só pra se a informação tiver errada não ficar repetindo a mesma pergunta, mas falar que tava inválido.

Clique aqui para adicionar a sua resposta.