Ir ao conteúdo

Posts recomendados

Postado

Galera estou precisando criar um programa com laço de repetição mais estou com uma dúvida enorme em desenvolver será que alguém poderia me ajudar por favor)     

 

(LAÇO) Solicite para o usuário nome e sexo de pessoas, ao final da entrada desses dados pergunte para o usuário se o mesmo deseja digitar mais pessoas, se sim solicite novamente os dados, se não, encerre o programa e exiba a quantidade de pessoas que foram digitadas, o total de pessoas do sexo masculino, o total do sexo feminino, o total de sexo inválido e a porcentagem de cada um.

 

  • Curtir 1
  • Membro VIP
Postado

Qual dúvida? Em qual ou quais partes precisa de ajuda?

 

 

Para iniciar, tente fazer uma programa mais simples... por exemplo que só leia o nome e o sexo, e ai pergunta se quer continuar lendo outros.

 

Obs.: não se preocupe em armazenar os dados em vetores ou algo do tipo. Apenas leia um nome, depois ler um sexo e após pergunta se quer repetir ou não.

 

Qualquer dúvida é só perguntar.

  • Curtir 2
Postado

Olha eu consegui fazer a parte do laço para o usuário digitar os dados certinho porém não consigo dar sequencia eu parei bem nessa parte mais não estou conseguindo evoluir estou travado nessa parte desde ontem, ão tenho muita prática nessa parte de laços e para exibir o resultado que foi proposto no exercício 

para (cont=0; cont<=novo; cont++)
        {
            faca
            {
            escreva ("Informe o seu nome ")
            leia (nome)
            
            escreva ("Informe seu sexo M/F ")
            leia (sexo)
            
            escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
            leia (sn)
            
            }
                enquanto (sn == 1)

 

  • Curtir 1
  • Membro VIP
Postado

1#

Sobre:

1 hora atrás, fehcunha10 disse:

Olha eu consegui fazer a parte do laço para o usuário digitar os dados certinho.

 

Quase isso! Você está usando erroneamente o para, pois o mesmo ele é voltado para "uma quantidade de repetições pré-definida". Esse trecho precisa pura e simplesmente de um faça/enquanto().

 

Eu não conheço a sintaxe desse Portugol direito, mas deve ser algo do tipo:

faca
{
   escreva ("Informe o seu nome ")
   leia (nome)

   escreva ("Informe seu sexo M/F ")
   leia (sexo)

   escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
   leia (sn)
}
enquanto (sn == 1)

 

PS: você usa qual programa ou site para compilar/executar?

 

 

Pronto. Ai só verificar 

- quantidade de pessoas que foram digitadas;

- o total de pessoas do sexo masculino;

- o total do sexo feminino;

- o total de sexo inválido;

- a porcentagem de cada um.

 

A quantidade de pessoas será a quantidade de loops. Basta usar um contador; para quantidade de masc., fem e inv., usa um se para verificar o que foi digitado e incrementa o contador respectivo. Para porcentagem, só pesquisa como se calcula uma (se não souber, deixa isso para depois).

 

Então, vá fazendo uma coisa de cada vez e testando.

 

Se tiver dúvidas ou críticas sobre alguma parte é só postar. 

 

Sugiro fazer uma parte de cada vez, ou seja, primeiro só faz a parte de contar quantas pessoas.

 

 

No aguardo.

 

 

 

 

 

  • Curtir 1
Postado

Olá eu realmente estava dando murro em ponta de faca, eu consegui solucionar a primeira parte, mas eu não estou conseguindo incrementar um contador para saber quantos loops foram dados eu não sei qual comando posso usar nessa parte eu cheguei até aqui, mas não bateu com o que eu preciso:

        enquanto (sn == 1)
        
        se sn== 1
        total +=sn

        escreva (total)

 

Eu estou usando no momento o Portugol Studio

  • Curtir 1
  • Membro VIP
Postado

@fehcunha10.

 

Então, cada leitura de dados é para uma pessoa, correto? logo, a quantidade de loops será a quantidade de pessoas. Basta ir contando... coloca dentro do laço algo como qtdPessoas=qtdPessoas+1.

 

obs.: a exibição do resultado é feita FORA do laço de repetição.

 

Por favor, poste o CÓDIGO COMPLETO para facilitar as análises.

 

 

No aguardo.

Postado

Boa tarde, você tem me ajudado muito, consegui fazer o contador funcionar, porém ainda não estou conseguindo fazer a parte final que é com o se armazenar o sexo de cada pessoa em uma variável e fazer a média, gostaria por favor que você desse uma olhada nele, creio que falte detalhes para finalizar

programa
{  inclua biblioteca Texto --> tx

    funcao inicio()
    {
        
        inteiro cont=0, 
        qtd,  novo =0, total=1, cont2 = 0,sn, m = 0, h = 0
        cadeia nome, sexo
        faca
        {
           escreva ("Informe o seu nome ")
           leia (nome)

           escreva ("Informe seu sexo M/F ")
           leia (sexo)

           escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
           leia (sn)
          
          h = h+1
        m = m+1
          cont2= cont2+1
        }
        enquanto (sn == 1)
         se (sexo == "m")
         
         escreva ("candidados masculino é ",h, "\n")
      

         se (sexo == "f")
        
        escreva ("candidados femininos é ",m, "\n")
        
        escreva ("O total de candidatos é ",cont2)
                
                        

    }
}
  • Membro VIP
Postado

Olá.

 

Dei uma reindentada no código:

programa
{  inclua biblioteca Texto --> tx
  funcao inicio()
  {
    inteiro cont=0, 
    qtd,  novo =0, total=1, cont2 = 0,sn, m = 0, h = 0
    cadeia nome, sexo
    faca
    {
      escreva ("Informe o seu nome ")
      leia (nome)
      
      escreva ("Informe seu sexo M/F ")
      leia (sexo)
      
      escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
      leia (sn)
      h = h+1
      m = m+1
      cont2= cont2+1
    }
    enquanto (sn == 1)

    se (sexo == "m")
      escreva ("candidados masculino é ",h, "\n")
    se (sexo == "f")
      escreva ("candidados femininos é ",m, "\n")
    escreva ("O total de candidatos é ",cont2)
  }
}

 

 

 

Vamos analisar agora:

1 hora atrás, fehcunha10 disse:

qtd,  novo =0, total=1, cont2 = 0,sn, m = 0, h = 0

 

Alguns pontos iniciais:

  1. Para que serve a variável qtd?
  2. Para que serve a variável novo?
  3. Para que serve a variável total?
  4. Para que serve a variável cont?
  5. O enunciado fala em "pessoas", mas no seu código fala sobre "candidatos".

Em fim. Fazendo só o contador de pessoas, ficaria algo assim:

programa
{  inclua biblioteca Texto --> tx
  funcao inicio()
  {
    cadeia  nome, sexo
    inteiro cont = 0

    faca
    {
      escreva ("Informe o seu nome ")
      leia (nome)
      
      escreva ("Informe seu sexo M/F ")
      leia (sexo)
      
      escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
      leia (sn)

      cont = cont+1
    }
    enquanto (sn == 1)

    escreva ("O total de pessoas é ",cont)
  }
}

Obs.: não sei se a sintaxe está correta, pois não estou usando um compilador para testar.

 

Alguma dúvida até aqui?

 

 

Agora você vai inserir um contador de homens e mulheres. Veja, para contar quantas pessoas foram cadastradas, apenas foi incrementando em 1 ao cont após ler os dados da pessoa.. .nesse caso, não existe "um critério seleção", simplesmente cada "dados da pessoa lida" corresponde a uma pessoa.

 

Para homens e mulheres será a "mesma coisa", a diferença é que ANTES tem que verificar se a pessoa é homem ou se ela é mulher! Se for homem, incrementa em 1 o contador de homens. Se for mulher, incrementa o contador de mulheres. Aí fora do enquanto exibe o total de cada um, ou seja, vai exibir o total de pessoas, o total de homens e o total de mulheres.

 

Da forma que você implementou lá dentro do enquanto, toda pessoa está sendo considerada como homem, e também está sendo considerada como mulher... faltou verificar com um se o valor do sexo. Se for "M", atualiza o h. Se for "F", atualiza o m.

 

Então, sua missão agora seria exibir quantos candidatos quantas pessoas foram cadastrados, exibir quantos deles são homens e quantos deles são mulheres.

 

obs.: no momento não se preocupe com sexos inválidos... apenas considere que todos os sexos são M ou F. Deixa esse pequeno ajuste para depois.

 

 

No aguardo.

Postado

Acho que eu consegui chegar até essa parte

 

programa
{  inclua biblioteca Texto --> tx

	funcao inicio()
	{
		
		inteiro cont=0, 
		qtd, pi, pf, novo =0, total=1, cont2 = 0,sn, m = 0, h = 0, d=0
		cadeia nome, sexo
		faca
		{
   		escreva ("Informe o seu nome ")
   		leia (nome)

  		 escreva ("Informe seu sexo M/F ")
  		 leia (sexo)

  		 escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
  		 leia (sn)
  		 se (sexo == "m")
		   h = h+1 
		
		 se (sexo == "f")
		   m = m+1
  		
		
  		 cont2= cont2+1
		}
		
		enquanto (sn == 1)
		
		
		  escreva ("candidados femininos é ",m, "\n")
	       escreva ("candidados masculino é ",h, "\n")
		  escreva ("O total de candidatos é ",cont2)
		  
						

	}
}

 

  • Curtir 1
  • Membro VIP
Postado

 

Pronto. Perceba que masculino e feminino são atributos excludentes entre si, ou seja, se for um, não pode ser o outro. Logo, devem-se utilizar o se/senão/se, em vez de 2 se independentes. Do jeito que está, se for "M", vai contabilizar o h, certo? só que depois ainda vai verificar se é "F". Não tem como o sexo ser "M" e "F" ao mesmo tempo!!! É um erro lógico e pode ser facilmente contornado. Já usando se/senão, a verificação do feminino só irá ocorrer se não for masculino.

 

Para incluir o "inválido" use "se/senão/se/senão. Daí, como SEMPRE vai ser um dos 3 (m, h ou i), então o "a quantidade de pessoas que foram digitadas" será igual a soma dos 3 (não precisará mais do cont). Ou, da mesma forma o número de inválido será o total de pessoas menos o total de homens e o total de mulheres.

 

 

Obs.: lembre-se que ele pede:

Em 01/10/2018 às 15:09, fehcunha10 disse:

exiba a quantidade de pessoas que foram digitadas, o total de pessoas do sexo masculino, o total do sexo feminino, o total de sexo inválido e a porcentagem de cada um.

 

Use as frases com "pessoas", não tem nada "candidatos" nesse história. rs

 

Postado

Olha eu cheguei até essa parte, aparentemente está fazendo tudo que foi proposto

programa
{  inclua biblioteca Texto --> tx

	funcao inicio()
	{
		
		inteiro cont = 0,sn, m = 0, h = 0, d=0, ph = 0, pm= 0, pd=0
		cadeia nome, sexo
		faca
		{
   		escreva ("Informe um nome ")
   		leia (nome)
		 
  		escreva ("Informe o sexo M/F ")
  	     leia (sexo)
		sexo = tx.caixa_baixa(sexo)
  		escreva ("Deseja digitar um novo usuário ? 1 para sim 2 para não ")
  		leia (sn)
  		se (sexo == "m")
		    h = h+1 
		
		se (sexo == "f")
		    m = m+1
  		
  		se (sexo != "f" e sexo !="m")
  		   d = d+1
  		 cont= cont+1
		}
		
		enquanto (sn == 1)
		
		ph = (h*100)/cont
		pm = (m*100)/cont
		pd = (d*100)/cont

	     escreva ("O total de pessoas  é ", cont, "\n")
		escreva ("O total de pessoas do sexo feminino é ",m,  " a porcentagem é ", pm,"%", "\n")
	     escreva ("O total de pessoas do sexo masculino é ",h, " a porcentagem  é ", ph,"%", "\n")
		escreva ("o total de pessoas com sexo invalido é ", d, " a porcentagem  é ", pd,"%")	
	}
}

 

  • Curtir 1
  • Membro VIP
Postado

Bacana.

 

Falta só inserir os senão nesses se.

1 hora atrás, fehcunha10 disse:

  		se (sexo == "m")
		    h = h+1 
		
		se (sexo == "f")
		    m = m+1
  		
  		se (sexo != "f" e sexo !="m")
  		   d = d+1
  		 cont= cont+1
		}

 

obs.: para o d não precisará de se, já que sempre, se não for uns 2 primeiros, será o terceiro.

 

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!