Dúvida Exercício 42 (Repetições)

Home Fóruns Programação Básica Dúvida Exercício 42 (Repetições)

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #76710
      João Victor
      Participante

      Boa Noite! Tentei realizar o exercício mas sempre tem erro na parte de média salarial dos homens e maior salario entre os homemns.

      programa
      {
      
      	
      	funcao inicio()
      	{
      	inteiro contador = 0 , somah = 0 , somam = 0, totalM = 0
      		real salario = 0.0, mediaSalarial, somasalario = 0.0, maiorsalarioM = 0.0
      		cadeia nome, sexo, continuar
      
      		enquanto (verdadeiro) {
      			escreva("Nome :")
      			leia(nome)
      			escreva("Sexo [M/F] :")
      			leia(sexo)
      			se (sexo == "M" ou sexo == "m"){
      			 somah++
      		}     senao se (sexo == "F" ou sexo == "f"){
      			 somam++   
      		}
      			escreva("Salário :")
      			leia(salario)
                     somasalario = somasalario + salario
      			escreva("Quer continuar [S/N]?")
      			leia(continuar)
      			contador++
      			se (continuar == "N" ou continuar == "n"){
      				pare
      		}    se (salario > 1.000 e sexo == "F" ou sexo == "f"){
      			totalM++
      		}    se (contador == 1 e sexo == "M" ou sexo == "m"){
      			maiorsalarioM = salario
      		}    se (salario > maiorsalarioM){
      			maiorsalarioM = salario
      		}
      }
                mediaSalarial = somasalario/somah 		
      		escreva("\n========= RESULTADOS ========")
      		escreva("\nTotal de Pessoas Cadastradas :" + contador)
      		escreva("\nTotal de Homens: " + somah)
      		escreva("\nTotal de Mulheres: " + somam)
      		escreva("\nMédia salarial dos homens: " + mediaSalarial)
      		escreva("\nTotal de mulheres que ganham mais de Mil Reais: " + totalM)
      		escreva("\nMaior salário entre os homens: " + maiorsalarioM)
      	}
      }
      • Este tópico foi modificado 3 anos, 1 mês atrás por IcaroFilho.
    • #76754
      IcaroFilho
      Moderador

      Bom dia.
      O problema esta na sequencia logica das condições.
      Todos os cálculos efetuados após o PARE não serão realizados, pois irá sair do loop.

      1º- você pode organizar tds as entradas e depois fazer as validações:

      escreva("Nome :")
      leia(nome)
      escreva("Sexo [M/F] :")
      leia(sexo)
      escreva("Salário :")
      leia(salario)

      2º – A media salarial pode ser realizada dentro do checador de sexo, tendo em vista que so será realizada para os homens. (vc estava fazendo com o salario geral)

      se (sexo == "M" ou sexo == "m"){
          somah++
          mediaSalarial = (mediaSalarial + salario) / somah
      }

      3º para o total de mulheres que ganham acima de 1000:

      senao se (sexo == "F" ou sexo == "f"){
          somam++   
          se (salario > 1000){
              totalM ++
          }
      }

      4º maior salario homens:

      se (sexo == "M" ou sexo == "m"){
          somah++
          mediaSalarial = (mediaSalarial + salario) / somah
          se (salario > maiorsalarioM){
              maiorsalarioM = salario
          }
      }

      Código completo:

      programa
      {
      	funcao inicio()
      	{
      		inteiro contador = 0 , somah = 0 , somam = 0, totalM = 0
      		real salario = 0.0, mediaSalarial = 0.0, somasalario = 0.0, maiorsalarioM = 0.0
      		cadeia nome, sexo, continuar
      
      		enquanto (verdadeiro) {
      			escreva("Nome :")
      			leia(nome)
      			escreva("Sexo [M/F] :")
      			leia(sexo)
      			escreva("Salário :")
      			leia(salario)
      
      			se (sexo == "M" ou sexo == "m"){
      				somah++
      				mediaSalarial = (mediaSalarial + salario) / somah
      				se (salario > maiorsalarioM){
      					maiorsalarioM = salario
      				}
      			}
      			senao se (sexo == "F" ou sexo == "f"){
      			 	somam++   
      			 	se (salario > 1000){
      			 		totalM ++
      			 	}
      			}
      			escreva("Quer continuar [S/N]?")
      			leia(continuar)
      			contador++
      			// Condição de parada
      			se (continuar == "N" ou continuar == "n"){
      				pare
      			} 
      		}
      		escreva("\n========= RESULTADOS ========")
      		escreva("\nTotal de Pessoas Cadastradas :" + contador)
      		escreva("\nTotal de Homens: " + somah)
      		escreva("\nTotal de Mulheres: " + somam)
      		escreva("\nMédia salarial dos homens: " + mediaSalarial)
      		escreva("\nTotal de mulheres que ganham mais de Mil Reais: " + totalM)
      		escreva("\nMaior salário entre os homens: " + maiorsalarioM)
      	}
      }

      OBS: Sempre que postar seus códigos aqui, formate-os através da aba de formatação de texto. -> CODE

    • #76780
      João Victor
      Participante

      Obrigado!

Visualizando 2 respostas da discussão
  • Você deve fazer login para responder a este tópico.