Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo seletor de pessoas


Posts recomendados

Alguém pode me ajudar montar o seguinte algoritmo?

 

SELETOR DE PESSOAS

qual o sexo?[m/f)

qual a idade?

qual a cor do cabelo?

[1] preto

[2] castanho

[3] loiro

[4] ruivo

QUER  CONTINUAR?[S/N]

No final dizer!

1. Quantos homens com mais de 18 anos e cor do cabelo castanho?

2. Quantas mulheres com idade entre 25 e 30 anos e cabelos loiros?

 

Obrigado, se puderem ajudar, valeu

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

Começe declarando suas variáveis ( sexo,idade,cor do cabelo), depois disso dê início ao seu algoritmo, leia as variáveis e execute elas , como tem um armazenamento de dados pra saída junta depois eu creio que seja melhor fazer "se, senão".

 

Sou iniciante ainda mas eu construiria mais ou menos assim como você fez mesmo 

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

algoritmo "seletor de pessoas"
// Função :
// Autor :
// Data : 26/05/2020
// Seção de Declarações 
var
   nome, sexo, resp: caractere
   idade, op, cont: inteiro
inicio
      repita
           escreva("digite o nome: ")
           leia(nome)
           escreva("qual o sexo: ")
           leia(sexo)
           escreva("qual a idade: ")
           leia(idade)
           escreval("qual é a cor do cabelo: ")
           escreval("[1] preto")
           escreval("[2] castanho")
           escreval("[3] loiro")
           escreval("[4] ruivo")
           leia(op)
           escreva("quer continuar?[s/n] ")
           leia(resp)
      ate (resp= "n")
                     cont<- 0
                    se ((sexo=m) e (idade=>18) e (op=2)) entao
                        escreval("temos ",cont, " homens de com mais de 18 anos e olhos castanhos "))
                        cont<- cont + 1
                    fimse

fimalgoritmo
adicionado 4 minutos depois

@Vitor Fredie Dreher Galvão, fiz os comandos de entrada, mas não consigo estruturar o algoritmo, podem me ajudar?

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

@rogerio medeiros     nesse caso , os cálculos ficam dentro do loop repita e no final depois de sair do loop , escreve os resultados , então seu código com algumas modificações poderia ser assim  :

algoritmo "seletor de pessoas"
var
  nome,sexo,resp : caractere
  idade,op,cont_m,cont_f  : inteiro
inicio
  repita
    escreva("digite o nome: ")
    leia(nome)
    escreva("qual o sexo: ")
    leia(sexo)
    escreva("qual a idade: ")
    leia(idade)
    escreval("qual é a cor do cabelo: ")
    escreval("[1] preto")
    escreval("[2] castanho")
    escreval("[3] loiro")
    escreval("[4] ruivo")
    leia(op)
    se (sexo = "m") e (idade >=18) e (op = 2)  entao
      cont_m <- cont_m + 1
    fimse
    se ((sexo = "f") e ((idade > 25) e (idade < 30)) e (op = 3)) entao
      cont_f <- cont_f + 1
    fimse
    escreva("quer continuar?[s/n] ")
    leia(resp)
  ate (resp= "n")
  escreval("temos",cont_m," homens com mais de 18 anos e cabelos Castanho")
  escreval("temos",cont_f," mulheres com idade entre 20 e 35 anos e cabelos Loiro")
fimalgoritmo

 

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

  • Membro VIP

@rogerio medeiros,

 

Segue um resumo geral:

 

1#

Em 26/05/2020 às 23:08, rogerio medeiros disse:

   se ((sexo=m) e (idade=>18) e (op=2)) entao

 

Para comparar caracteres, utilize o que quer comparar entre " (aspas duplas). Como citado:

 

Em 27/05/2020 às 00:01, devair1010 disse:

se (sexo = "m") e (idade >= 18) e (op = 2) entao

 

 

 

 

2#

A contagem de ocorrência precisaria ficar dentro do repita/ate, ou seja: a medida que vai lendo os dados, já vai verificando se vai se encaixar em uma categoria ou em outra. Veja: os dados que você está lendo vai sendo sobrescrito a cada loop, daí precisa verificar logo, como no exemplo do @devair1010:

 

Em 27/05/2020 às 00:01, devair1010 disse:

    leia(op)
    se (sexo = "m") e (idade >= 18) e (op = 2)  entao
      cont_m <- cont_m + 1
    fimse
    se ((sexo = "f") e ((idade > 25) e (idade < 30)) e (op = 3)) entao
      cont_f <- cont_f + 1
    fimse
    escreva("quer continuar?[s/n] ")
    leia(resp)
  ate (resp = "n")

 

Adendos:

2.1#

Geralmente o termo "entre" significa que inclui os números, ou seja: poderia ser algo assim:

    se (sexo = "m") e (idade >= 18) e (op = 2)  entao
      cont_m <- cont_m + 1
    fimse
    se ((sexo = "f") e ((idade >= 25) e (idade <= 30)) e (op = 3)) entao
      cont_f <- cont_f + 1
    fimse

Nesse caso, o 25 e 30 também fazem parte. Acho que seria bom tirar a dúvida com o professor.

 

 

2.2#

Um outro ponto é na escolha da nomenclatura das variáveis. No enunciado tem:

 

Em 25/05/2020 às 19:33, rogerio medeiros disse:

No final dizer!

1. Quantos homens com mais de 18 anos e cor do cabelo castanho?

2. Quantas mulheres com idade entre 25 e 30 anos e cabelos loiros?

 

Em vez de cont, ou cont_fcont_m, utilizar:

 

contH18C, contM25e30L :inteiro

ou

contHomens18Castanhos, contMulheres25e30Loiras :inteiro

ou

qtdHomens18Castanho, qtdMulheres25e30Loiras: inteiro

Ou algo do tipo... 

 

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

Enunciado do algoritmo:

Quantos funcionários homens a empresa tem maior de 18 anos com cabelos pretos, altura maior do que 1,75m e peso maior que 72kg?

E quantas mulheres com idade maior que 20 anos, cabelos castanhos, altura maior que 1,68m e peso menor que 68kg?

 

algoritmo "SELETOR"
// Função:
// Autor :
// Data  : 31/05/2020
var
   nome, sexo, resp: caractere
   idade, op, kg, contm, contf: inteiro
   mt: real

inicio
   repita
      escreva("qual o nome: ")
      leia(nome)
      escreva("qual a idade: ")
      leia(idade)
      escreval("qual a cor do cabelo: ")
      escreval("|[1] preto|")
      escreval("|[2] castanho|")
      leia(op)
      escreva("qual a altura: ")
      leia(mt)
      escreva("qual o peso: ")
      leia(kg)
      se ((sexo="m") e (idade>=18) e (op=1) e (mt>=1.75) e (kg>=72))entao
         contm<- contm + 1
      fimse
      se ((sexo="f") e (idade>=20) e (op=2) e (mt>=1.68) e (kg<=68))entao
         contf<- contf + 1
      fimse
      escreval("quer continuar?[s/n] ")
      leia(resp)
   ate (resp="n")
   escreval("a empresa tem ",contm, " h com idade maior q 18, cabelos pretos, altura maior de um e setenta e cinco e peso maior q 72")
   escreval("tambem tem ",contf, " m com idade maior q 20, cabelos castanhos, altura maior de um e sessenta e oito e peso menor q 68")

fimalgoritmo

 

Obs: fiz o algoritmo, mas no final não mostra o resultado do enunciado acima, apresenta valor zero para os dois casos! alguém poderia dar uma olhada pra mim? Obrigado.

 

 

Link para o comentário
Compartilhar em outros sites

Você esqueceu de pegar o valor da variavel sexo.
E la em cima, a variavel sexo esta declarada como tipo inteiro e na sua condição "se", voce esta comparando ela como um caracter:  se (sexo = 'm').

Então, quando ela entra na estrutura "se", ela nao incrementa seu contador, logo ele vai retornar 0.@rogerio medeiros

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!