Escrever um algoritmo que leia um conjunto de 50 informações contendo, cada uma delas,
a altura e o sexo de uma pessoa (código=1, masculino código=2, feminino), calcule e
mostre o seguinte:
a) a maior e a menor altura da turma
b) a média da altura das mulheres
c) a média da altura da turma.
EM PYTHON COM EXPLICAÇÕES
Respostas
O programa abaixo (e anexado) não conta com validação de dados ou tratamento de exceções, assim espera-se que o usuário digite os dados de acordo com o solicitado pelo programa.
Mais comentários após o código.
Obs.: Os pontos que precedem algumas linhas de programação não fazem parte do programa, foram colocados para garantir a indentação do código aqui no site.
Python 3.8.2
altura_mulheres = 0
contador_mulheres = 0
acumulador = 0
for i in range(50):
.....print(f'#{i+1}.')
.....sexo = int(input('Sexo (1 para Masc e 2 para Fem): '))
.....altura = int(input('Altura (cm): '))
.....print()
.....if i == 0:
..........menor_altura = altura
..........maior_altura = altura
.....else:
..........if altura < menor_altura:
...............menor_altura = altura
..........elif altura > maior_altura:
...............maior_altura = altura
.....acumulador += altura
.....if sexo == 2:
..........contador_mulheres += 1
..........altura_mulheres += altura
print(f'''
a. A maior altura foi de {maior_altura}cm e a manor, {menor_altura}cm
b. A média da altura das mulheres ficou em {altura_mulheres/contador_mulheres:.2f}cm
c. A média da altura da turma ficou em {acumulador/50:.2f}cm''')
Comentários:
- Utilizamos 5 variáveis "principais" no programa, "altura_mulheres" para guardar a soma da altura das mulheres, "contador_mulheres" para guardar a quantidade de mulheres registradas, "acumulador" para guardar a soma da altura das 50 pessoas registradas e "maior_altura" e "menor altura" para guardar os valores extremos de altura registrados.
- A leitura dos dados é feita com auxílio de um laço for de 50 iterações.
- Em cada iteração do laço, é feita a leitura do sexo da pessoa como um inteiro (int), como previsto no enunciado, e também a altura em centímetros, sendo também um inteiro.
- Na 1ª iteração do for (i = 0), as variáveis "menor_altura" e "maior_altura" recebem o valor da altura da 1ª pessoa registrada. Nas outras iterações, é feita a comparação entre a altura lida e as alturas guardadas naquelas variáveis (menor_altura e maior_altura), havendo a atualização das variáveis caso necessário.
- Ainda dentro do laço, atualizamos o valor do "acumulador" e, caso a pessoas registrada seja do sexo feminino, também os valores de "contador_mulheres" e "altura_mulheres".
- Fora do loop, utilizamos um print formatado para mostrar as informações solicitadas no texto.