Home › Fóruns › Programação Básica › Dúvida Exercício 42 (Repetições)
- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 1 mês atrás por João Victor.
-
AutorPosts
-
-
2 de outubro de 2021 às 02:07 #76710João VictorParticipante
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.
-
3 de outubro de 2021 às 10:57 #76754IcaroFilhoModerador
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
-
3 de outubro de 2021 às 21:13 #76780João VictorParticipante
Obrigado!
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.