Ir ao conteúdo

Posts recomendados

Postado

E como q eu faço para guardar e verificar um valor sem usar o enquanto

 

No meu caso eu estou com uma dificuldade no item C desse exercício:

 

59) Crie um programa que leia o sexo e a idade de várias pessoas. O programa vai perguntar se o usuário quer continuar ou não a cada pessoa. No final, mostre: 

a) qual é a maior idade lida

b) quantos homens foram cadastrados

c) qual é a idade da mulher mais jovem

d) qual é a média de idade entre os homens

 

Já tentei guardar a variavél usando uma variável auxilar, o problema é que sempre que o codigo verifica se o sexo digitado é feminino, eu não consigo deixar salvo o valor q eu digitei anteriormente. Ele sempre reescreve com o novo valor digitado.

 

algoritmo "Total de Salarios Pagos"
var
   cont, idade, idadeH, menoridadeF, maioridadeF, maioridade, somaH: Inteiro
   resp, sexo: Caractere
   mediahomens: Real
inicio
      cont <- 1
      idadeH <- 0
      somaH <- 0
      resp <- "S"
      Enquanto (resp = "S") faca
         Escreval("---------------------------------")
         Escreva("Qual o sexo da pessoa? ")
         Leia(sexo)
         Escreva("Qual a idade da pessoa? ")
         Leia(idade)
         Se (idade > maioridade) entao
            maioridade <- idade
         FimSe
         Se (sexo = "Masculino") entao
            idadeH <- idadeH + 1
            somaH <- somaH + idade
            mediahomens <- somaH / idadeH
         FimSe
         Se (sexo = "Feminino") entao
            menoridadeF <- idade
            maioridadeF <- idade
            Senao
               Se (idade > maioridadeF) entao
                  maioridadeF <- idade
               Senao
                  Se (idade < menoridadeF) entao
                     menoridadeF <- idade
                  FimSe
               FimSe
         FimSe
         Escreval("---------------------------------")
         Escreva("voce deseja continuar? [S/N] ")
         Leia(resp)
         cont <- cont + 1
      FimEnquanto
      Escreval("--------------------------------------------")
      Escreval("A maior idade e de",maioridade," anos")
      Escreval("O total de homens cadastrados sao",idadeH)
      Escreval("A menor idade entre as mulheres e", menoridadeF," anos")
      Escreval("A media de idade entre os homens e de", mediahomens:4:2," anos")
fimalgoritmo

 

  • Curtir 1
  • Membro VIP
Postado

@BrunoSouza586, seja bem vindo ao Fórum do Clube do Hardware.

 

 

No veja esses trecos destacados:

 

image.png

 

No retângulo vermelho o código estaria correspondendo a algo como "toda pessoa que for do sexo 'Feminino' terá a menor idade e também terá a maior idade". Isso não está correto.

 

Já no trecho em azul, como o senao é referente ao se anterior, estaria correspondendo a algo como "para toda pessoa que não for do sexo 'Feminino", verifique se a idade dela é maior que a maior idade feminina. Caso não seja, verificar se a idade dela é menor que a menor idade feminina". Também não está correto.

 

ATENÇÃO: entenda que na estrutura "se/senao", OU executa o se, OU executar o senao, ou seja: ou executar o que está em vermelho, ou o que está em azul... daí, dentro do azul, tem OUTRO se/entao que por sua vez respeita a mesma regra (ou o se, ou o senao)... e dentro do senao tem outro se simples...). 

 

 

Minha sugestão:

Tente quebrar um problema maior e problemas menores... Em vez de tentar verificar "qual é a idade da mulher mais jovem", tente primeiro treinar a verificação de um menor qualquer... Crie um novo programa que ler apenas uma certa quantidade de idades... aí informe qual a menor idade. Poste o código aqui.

 

Depois, modifique ele para ler o sexo e verifique a menor idade do "Feminino". 


Observação: primeiro poste o código da verificação do menor funcionando corretamente... NÃO tente fazer a segunda parte antes de terminar a primeira.

 

 

No aguardo.

Postado

@Simon Viegas , muito obrigado pelas boa vindas e pela dica. 

 

Esse aqui é código pra verificar a menor idade. 

 

algoritmo "Identificar menor idade"
var
   idade, cont, menoridade: Inteiro
inicio
      cont <- 1
      Enquanto (cont <= 8) faca         
         Escreva("Digite a idade da",cont,"ª pessoa: ")
         Leia(idade)
         Se (cont = 1) entao
            menoridade <- idade
         Senao
            Se (idade < menoridade) entao
               menoridade <- idade
            FimSe
         FimSe
  	 cont <- cont + 1
      FimEnquanto
      Escreva("A menor idade e",menoridade)
fimalgoritmo

 

 

Verificando de novo eu vi q o código pra identificar a menor idade, dentro da condição SE tava toda hora sobrescrevendo a variável menoridade quando o sexo era Feminino.

 

Acabei me empolgando e não testei outros tipos de entradas, como por exemplo colocar um valor menor e depois um maior. Ai o código só lia o último valor, que nesse caso era o maior.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!