Em um campeonato de futebol existem cinco times e cada um possui onze jogadores. Faça um programa que receba a idade, o peso e a altura de cada um dos jogadores, calcule e mostre:
- a quantidade de jogadores com idade inferior a 18 anos;
- a média das idades dos jogadores de cada time;
- a média das alturas de todos os jogadores do campeonato; e
- a porcentagem de jogadores com mais de 80 kg entre todos os jogadores do campeonato.
Passo 1
O enunciado pede que façamos um programa que leia a idade, o peso e a altura de todos os jogadores de um campeonato com cinco times, cada time com onze jogadores, e calcule/mostre quatro coisas:
- a quantidade de jogadores com idade inferior a 18 anos;
- a média das idades dos jogadores de cada time;
- a média das alturas de todos os jogadores do campeonato;
- a porcentagem de jogadores com mais de 80 kg entre todos os jogadores do campeonato.
Informações dadas:
- número de times:
; - número de jogadores por time:
; - total de jogadores no campeonato:
; - para cada jogador recebemos três valores: idade, peso e altura.
O que o programa deve receber como entrada: para cada um dos
jogadores, os três valores (idade, peso, altura). O que deve produzir como saída: os quatro resultados listados acima.
Passo 2
Vamos entender as fórmulas / definições que usaremos (aqui explico devagar e com calma).
- Quantidade de jogadores com idade inferior a 18 anos: é só um contador que incrementamos sempre que encontrarmos um jogador com idade menor que
. Em notação simples:
onde
é
se a condição for verdadeira, e
caso contrário.
- Média das idades dos jogadores de cada time: para cada time
(onde ) somamos as idades dos seus jogadores e dividimos por . Se chamarmos a soma das idades do time de , então:
Aqui é importante: média é soma dividido pela quantidade de elementos.
- Média das alturas de todos os jogadores do campeonato: somamos todas as alturas (dos
jogadores) e dividimos por . Se é essa soma, então:
- Porcentagem de jogadores com mais de 80 kg entre todos os jogadores: contamos quantos têm peso maior que
kg, chamemos de . A porcentagem é:
ou em número:
Passo 3
Agora vamos planejar passo a passo como o programa fará isso (variáveis, inicializações e laços). Vou explicar cada peça para você saber o porquê.
Variáveis que vamos usar:
- para cada time
(1 a 5) teremos inicializada em ; -
inicializado em ; -
inicializado em ; -
(para contar peso kg) inicializado em .
Estrutura de leitura: dois laços aninhados
- laço externo para percorrer os times: para
de até ; - laço interno para percorrer os jogadores do time
: para de até .
Para cada jogador lido (idade, peso, altura) faremos:
- adicionar a idade à
; - se
então incrementar ; - adicionar a altura em
; - se
então incrementar .
Ao final dos laços:
- para cada time
calcular ; - calcular
; - calcular
.
Passo 4
Vou explicar a lógica do cálculo da média com um exemplo pequeno e intuitivo (para você ver que é natural):
- suponha um time com idades
. A soma das idades é . Somando (faça comigo): -
, -
, -
, -
, -
, -
, -
, -
, -
, -
.
Então. A média é:
Ou seja, soma dividido por número de jogadores. -
Isso mostra que você não precisa de técnicas complicadas: é somar e dividir.
Passo 5
Vamos detalhar o pseudocódigo/estratégia linha a linha (imagina que você escreveu o programa junto comigo). Explico cada linha para você entender como fazer na prova:
- Inicialize uma lista (ou vetor) de 5 elementos
com zeros. - Inicialize
. - Inicialize
. - Inicialize
. - Para
de até :
5.1 Parade até :
- leia(inteiro), (real), (real);
- faça;
- seentão ;
- faça;
- seentão . - Depois dos laços, para cada
calcule . - Calcule
. - Calcule
. - Imprima os resultados formatados (por exemplo, média com duas casas decimais).
Observação importante: como os valores são dados jogador a jogador, você não precisa armazenar todos os dados; basta acumular somas e contadores — isso economiza memória e é o jeito correto em programação e também em prova.
Passo 6
Detalhes de formatação e cuidados que salvam na prova:
- Sempre verifique se as divisões são feitas com números reais (não fazer divisão inteira por engano). Em linguagens como C, divida por
para garantir resto decimal; em Python basta usar /. - Para porcentagem, lembre-se de multiplicar por
após fazer a divisão. - Se pedirem arredondamento, combine sempre o número de casas decimais exigidas — aqui vou sugerir duas casas decimais para médias e porcentagem (ex.:
). - Mensagens de saída: seja claro, por exemplo:
- “Quantidade de jogadores com idade < 18: X”
- “Média de idades do time 1: Y”
- …
- “Média das alturas do campeonato: Z”
- “Porcentagem de jogadores com mais de 80kg: P%”
Passo 7
Exemplo fictício pequeno (para você ver como os contadores mudam):
- suponha só 2 jogadores (exemplo reduzido): jogador A: idade
, peso , altura ; jogador B: idade , peso , altura . -
(porque ); -
; -
(porque ); - médias e porcentagens são calculadas conforme as fórmulas já mostradas.
-
Passo 8
Resumo prático (passos que você realmente implementa na prova):
- Inicializar vetores/somas/contadores;
- Fazer dois laços aninhados (times e jogadores);
- Ler dados e atualizar somas/contadores;
- Após leitura total, calcular médias e porcentagem com as fórmulas:
- Imprimir resultados com apresentação limpa.
Resposta
# Programa em Python que lê idade, peso e altura de 5 times com 11 jogadores cada
# e calcula:
# - quantidade de jogadores com idade < 18
# - média das idades de cada time
# - média das alturas de todos os jogadores
# - porcentagem de jogadores com peso > 80 kg
NUM_TIMES = 5
JOGADORES_POR_TIME = 11
TOTAL_JOGADORES = NUM_TIMES * JOGADORES_POR_TIME
soma_idade = [0] * NUM_TIMES
contador_menores = 0
soma_alturas = 0.0
contador_peso_maior_80 = 0
# Leitura: para cada time e para cada jogador do time, ler idade, peso, altura
for t in range(NUM_TIMES):
for j in range(JOGADORES_POR_TIME):
# espera-se que a entrada forneça três valores por jogador, separados por espaço ou em linhas separadas
# ex.: "idade peso altura" -> "20 75.5 1.82"
entrada = input().strip().split()
# converter valores lidos
idade = int(entrada[0])
peso = float(entrada[1])
altura = float(entrada[2])
soma_idade[t] += idade
if idade < 18:
contador_menores += 1
soma_alturas += altura
if peso > 80.0:
contador_peso_maior_80 += 1
# Cálculos finais
medias_idade = [s / JOGADORES_POR_TIME for s in soma_idade]
media_altura_geral = soma_alturas / TOTAL_JOGADORES
porcentagem_peso_maior_80 = 100.0 * contador_peso_maior_80 / TOTAL_JOGADORES
# Saída dos resultados
print(f"Quantidade de jogadores com idade < 18: {contador_menores}")
for t in range(NUM_TIMES):
print(f"Média de idades do time {t+1}: {medias_idade[t]:.2f}")
print(f"Média das alturas do campeonato: {media_altura_geral:.2f}")
print(f"Porcentagem de jogadores com mais de 80kg: {porcentagem_peso_maior_80:.2f}%")