Ir ao conteúdo

VisualG Usando Escolha e Se


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Postado

   Boa tarde pessoal. Estou com uma duvida em um alg que montei no visualg.

   Estou usando o escolha para montar uma pesquisa, contudo, não consigo fazer uma soma de certos requisitos, ex: somar somente quem tem olhos verdes E cabelo louro.

   Quando coloco olhos verdes com qq outro cabelo ou qq cor de olho com cabelos louros ele também soma... o comando "se (xxxx) e (xxx) entao" não está dando certo.

   Gostaria de saber o que estou fazendo de errado...

   Abaixo segue meu alg:

   Desde já agradeço a ajuda. Abraços

*utilizei o botao CODE mas ficou tudo em P&B

var
   sexo, resp: Caractere
   cont, idade,idadepesq, vercab, maior, o, verdes, azuis, cast, c, cablou, cabpr, cabcast: Inteiro
inicio

   repita
      limpatela
      cont <- cont+1
      Escreval("Pesquisa")
      Escreval("sexo: [m/f]")
      leia(sexo)
      Escreval("Idade: ")
      leia(idade)
      Escreval("Cor do olhos:")
      Escreval("1 - azuis")
      Escreval("2 - verdes")
      Escreval("3 - castanhos")
      leia(o)
      Escolha o
      Caso 1
         azuis <- azuis+1
      Caso 2
         verdes <- verdes+1
      Caso 3
         cast <- cast+1
      fimescolha

      Escreval("Cor do cabelo:")
      Escreval("4 - louro")
      Escreval("5 - preto")
      Escreval("6 - castanhos")
      leia(c)
      Escolha c
      Caso 4
         cablou <- cablou+1
      Caso 5
         cabpr <- cabpr+1
      Caso 6
         cabcast <- cabcast+1
      fimescolha

      escreva("Cadastrar outro: [s/n]")
      leia (resp)

      Se (idade > maior) entao
         maior <- idade
      fimse
      Se (sexo = "f") e (idade >= 18) e (idade <= 35) entao
         idadepesq <- idadepesq + 1
      fimse
      Se (verdes >= 1) e (cablou >= 1) entao
         vercab <- vercab + 1
      fimse

   ate(resp="n")

   Escreval("Maior idade: ", maior)
   Escreval("Mulheres entre 18 e 35 anos: ", idadepesq)
   Escreval("Olhos verdes e cabelo louro: ", vercab)
   Escreval("Total de pessoas: ", cont)

fimalgoritmo

 

  • Curtir 1
  • Amei 1
Postado

@Renato Alem     para ficar colorido você pode usar a linguagem c / c++ / c#  no botão do tipo de linguagem

1805450701_tipodelinguagem.thumb.JPG.96287df1ac07c9e06568a59657c9a8b0.JPG

e essa parte aqui , poderia ser assim  :

Se ( o = 2) e (c = 1) entao  // aqui é a variável que pegou o dado
  vercab <- vercab + 1
fimse
ate(resp="n")
escreval("Maior idade -----------------: ",maior    )

 

  • Curtir 2
  • Membro VIP
  • Solução
Postado

Só complementando:

 

Sobre:

16 horas atrás, Renato Alem disse:

Estou usando o escolha para montar uma pesquisa, contudo, não consigo fazer uma soma de certos requisitos, ex: somar somente quem tem olhos verdes E cabelo louro.

 

 

Você fez:

16 horas atrás, Renato Alem disse:

      se (verdes >= 1) e (cablou >= 1) entao
         vercab <- vercab + 1

 

Se você quer verificar os dados do entrevistado atual, você precisaria pegar esses dados.. Você apenas confundiu e usou o "total de entrevistados com olhos verdes" e o "total de entrevistados com cabelos louros", em vez usar a "cor do olho do entrevistado" e a "cor do cabelo do entrevistado", respectivamente. No caso podendo ficar:

 

10 horas atrás, devair1010 disse:

se (o = 2) e (c = 1) entao  // aqui é a variável que pegou o dado
  vercab <- vercab + 1

 

 

Obs.: a "id" da cor do cabelo seria 4, e não 1.

 

Adendo:

Sugeriria dar uma melhorada nas definições das nomenclaturas das variáveis. A recomendação seria deixar com termos mais sugestíveis... meio que lendo o seu nome, já ter uma ideia para que ela serve. Ex.:

var
   sexo :caractere
   idade :inteiro
   idCorOlho :inteiro
   idCorCabelo :inteiro
   
   maiorIdade :inteiro
   qtdFemEntre18e35 :inteiro
   qtdOlhosVerdes, qtdOlhosAzuis, qtdOlhosCastanhos :inteiro
   qtdCabelosLouros, qtdCabelosPretos, qtdCabelosCastanhos: inteiro
   qtdOlhosVerdesCabelosLoiros :inteiro

   cont :inteiro

 

Outro dica interessante é utilizar o conceito de camelCase (ou mais especificamente o lowerCamelCase).

 

Nesse contexto, o código citado mais acima ficaria com algo como:

se (idCorOlho = 2) e (idCorCabelo = 4) entao
  qtdOlhosVerdesCabelosLoiros <- qtdOlhosVerdesCabelosLoiros + 1

Perceba como fica mais objetivo... mesmo se fosse um código isolado (que não está num tópico de um fórum), daria para suporte mais facilmente o que está fazendo.

 

Se quiser ainda mais incrementar, poderia ser algo como:

se (idCorOlho = OLHO_VERDE) e (idCorCabelo = CABELO_LOIRO) entao
  qtdOlhosVerdesCabelosLoiros <- qtdOlhosVerdesCabelosLoiros + 1

Sendo que OLHO_VERDE e CABELO_LOIRO declarados como constantes, e sendo definidos respectivamente com os seus valores  (2 e 4).

 

Obs. 2: o código do cabelo poderia começar do 1 sem problema... não precisa iniciar a partir do fim do outro, pois são coisas isoladas..

 

@Renato Alem, por favor, poste o enunciado completo do problema... que aí poderíamos aproveitar para verificar se o código está no caminho certo (seguindo o que foi "ordenado" para ser feito pelo enunciado).

  • Curtir 2
Postado

@devair1010

11 horas atrás, devair1010 disse:

@Renato Alem     para ficar colorido você pode usar a linguagem c / c++ / c#  no botão do tipo de linguagem

1805450701_tipodelinguagem.thumb.JPG.96287df1ac07c9e06568a59657c9a8b0.JPG

e essa parte aqui , poderia ser assim  :


Se ( o = 2) e (c = 1) entao  // aqui é a variável que pegou o dado
  vercab <- vercab + 1
fimse
ate(resp="n")
escreval("Maior idade -----------------: ",maior    )

 

Olá @devair1010, farei assim da próxima vez, obrigado. Acontece que quando estava testando as linguagens, o HTML foi o que ficou mais colorido na visualização, mas depois ficou desse jeito. Mas farei o C da próxima vez. Obrigado.

adicionado 50 minutos depois

.

.

.

@Simon Viegas

Cara, sensacional suas colocações, muito obrigado pelas dicas. Fiquei um tempão mudando diversos comandos e variáveis e a resposta é a mais simples... Navalha de Occam SEMPRE...hehehehe

Segue o enunciado do problema:

 

 Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletaram os seguintes dados referentes a cada habitante para serem analisados:
- sexo (masculino e feminino)
- cor dos olhos (azuis, verdes ou castanhos)
- cor dos cabelos (louros, castanhos, pretos)
- idade
Faça um algoritmo que determine e escreva:
a) a maior idade dos habitantes;
b) a quantidade de indivíduos do sexo feminino cuja idade está entre 18 e 35 anos, inclusive;
c) a quantidade de indivíduos que tenham olhos verdes e cabelos louros;
O final do conjunto de habitantes é reconhecido pelo valor -1 informado como idade.***

*** este tópico estou tentando escrever -1 ou fim em idade e não consigo finalizar. Por isso estou utilizando (resp="N")

 

Mais uma vez agradeço muito a ajuda. 

  • Curtir 1

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!