Ir ao conteúdo
  • Cadastre-se

VisualG EXERCICIOS DE "ENQUANTO" não consigo atribuir uma variante


Posts recomendados

Desenvolva um aplicativo que leia o peso e a altura de 7 pessoas, mostrando no final:

a) Qual foi a média de altura do grupo

b) Quantas pessoas pesam mais de 90Kg

c) Quantas pessoas que pesam menos de 50Kg tem menos de 1.60m

d) Quantas pessoas que medem mais de 1.90m pesam mais de 100Kg.

 

Galera, o meu código não faz atribuição a variante "P10" quando eu coloco ALTURA MAIOR QUE 1.90 E PESO>100.

 

algoritmo "PESO E ALTURA DE 7 PESSOAS (OBRAS)"
var
   peso, cont, P90, P_A, p10: inteiro
   alt, m :real

inicio
   Cont<- 1
   M <- 0
   P90<- 0
   P_A <- 0
   p10<- 0
   enquanto cont<=2 faca
      Escreval("=======================")
      Escreva ("QUAL É SEU PESO: ")
      Leia(PESO)
      Escreval("=======================")
      Escreva ("QUAL É SUA ALTURA: ")
      leia(ALT)
      Escreval("=======================")

      se (PESO>90)então
         P90 <- P90 +1
      senao
         se(PESO<50) E (ALT<1.60)então
            P_A <- P_A +1
         senao
            se (Peso>100) e (alt>1.90)então
               p10<- P10+1
            fimse
         fimse

      fimse
      cont <- cont+1
   fimenquanto
   
   Escreval ("============================")
   Escreval ("A MÉDIA DE ALTURA É: ", M/2)
   Escreval ("============================")
   ESCREVAL ("PESSOAS ACIMA DE 90KG: ", P90)
   Escreval ("============================")
   Escreval ("PESSOAS COM PESO ABAIXO DE 50KG E ALT ABAIXO DE 1.60: ", P_A)
   Escreval ("============================")
   Escreval ("PESSOAS ACIMA DE 100 KG E ALT MAIOR QUE 1.90 ", P10)
   Escreval ("============================")
fimalgoritmo

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@ALoneW, basta se atentar a lógica da coisa... veja:

 

1 hora atrás, ALoneW disse:
      se (PESO>90)então
         P90 <- P90 +1
      senao
         se(PESO<50) E (ALT<1.60)então
            P_A <- P_A +1
         senao
            se (Peso>100) e (alt>1.90)então
               p10<- P10+1
            fimse
         fimse

 

Basicamente observe que essas condições "NÃO são excludentes entre si". Por exemplo: TODAS as pessoas que tem 100kg, também tem 90kg... certo? 😉. Entende? Um senão seria como um "oh! só veja daqui em diante se o que já veio antes não foi aceito". (Isso levando em consideração uma cadeia. No caso, esses 3 se funcionam como se fossem uma estrutura só.

 

Resumidamente: nessa ordem que colocou NUNCA vai entrar na 3º se, pois sempre antes vai entrar no 1º.

 

Tente seguir os passos.. veja: "digitei 101 (kg) e 1.92 (m)... vai cair no primeiro se... 101 é maior que 90? Sim!. P90 é atualizado. Vai pro fim da cadeia (pois pra isso que serve o senão...) e executa lá a atualização do cont. que está depois da cadeia.

 

Dica: vá pressionando F8 e seguindo o fluxo do VisualG.

 

Tem algumas formas de contornar esse problema... mas enfrente-o (em vez de já darmos uma solução). Entenda o que está ocorrendo, entenda como funciona a estrutura em cadeia que montou... e implemente uma solução válida.

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Simon Viegas

 

Eu simplesmente inverti a ordem e coloquei fimse e  peso>100 e alt>1.90  e depois eu coloquei peso>90

 

O meu funcionou assim. tem outra forma de resolver isso sem precisar colocar peso>100 ou peso>90 para atribuir as variaveis?

 

 

algoritmo "PESO E ALTURA DE 7 PESSOAS (Feito)"
var
peso, cont, P90, P_A, p10: inteiro
alt, m :real

inicio
Cont<- 1
M <- 0
P90<- 0
P_A <- 0
p10<- 0
enquanto cont<=7 faca
Escreval("=======================")
Escreva ("QUAL É SEU PESO: ")
Leia(PESO)
Escreval("=======================")
Escreva ("QUAL É SUA ALTURA: ")
leia(ALT)
M <- ALT+ M
se(peso>100) e (alt>1.90) então
p10<- p10+1
fimse
Se(peso>90)então
p90 <- p90+1
fimse
se (peso<50) e (alt<1.60)então
p_a <- p_a +1
fimse


cont <- cont+1


fimenquanto
Escreval ("============================")
Escreval ("A MÉDIA DE ALTURA É: ", M/7)
Escreval ("============================")
ESCREVAL ("PESSOAS ACIMA DE 90KG: ", P90)
Escreval ("============================")
Escreval ("PESSOAS COM PESO ABAIXO DE 50KG E ALT ABAIXO DE 1.60: ", P_A)
Escreval ("============================")
Escreval ("PESSOAS ACIMA DE 100 KG E ALT MAIOR QUE 1.90 ", P10)
Escreval ("============================")

fimalgoritmo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ALoneW .   O que acontece é que se você usar o "senão" ele faz apenas uma parte do código e ignora o restante , e outra coisa é que no visualG as variáveis são globais e assim ao cria Las o compilador já estabelece o valor zero nelas , por isso não precisa inicializa Las com esse valor zero , mas apenas se for outro valor qualquer, e esse "cont" ,  melhor seria se também fosse zero  , assim reduziria o código ,  e no enquanto colocar 

enquanto cont < 2 faca

, ao invés de "<=" ..

Link para o comentário
Compartilhar em outros sites

5 horas atrás, devair1010 disse:

@ALoneW .   O que acontece é que se você usar o "senão" ele faz apenas uma parte do código e ignora o restante , e outra coisa é que no visualG as variáveis são globais e assim ao cria Las o compilador já estabelece o valor zero nelas , por isso não precisa inicializa Las com esse valor zero , mas apenas se for outro valor qualquer, e esse "cont" ,  melhor seria se também fosse zero  , assim reduziria o código ,  e no enquanto colocar 

enquanto cont < 2 faca

, ao invés de "<=" ..

Valeu, mano. eu coloco valor ''0'' na variável pela questão de eu entender que aquela variável é zero'', só isso mesmo. Muito obrigado. eu consegui resolver o problema.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!