Faça um programa que receba a idade e o peso de quinze pessoas, e que calcule e mostre as médias dos pesos das pessoas da mesma faixa etária. As faixas etárias são: de 1 a 10 anos, de 11 a 20 anos, de 21 a 30 anos e de 31 anos para cima.

Passo 1

O enunciado pede que a gente escreva um programa que leia a idade e o peso de exatamente \;15\; pessoas e calcule as médias dos pesos das pessoas em cada uma das quatro faixas etárias seguintes:
\text{Faixa 1: }1\text{ a }10\text{ anos}
\text{Faixa 2: }11\text{ a }20\text{ anos}
\text{Faixa 3: }21\text{ a }30\text{ anos}
\text{Faixa 4: }31\text{ anos em diante}
Informações dadas:
  • O número total de pessoas é \;15\;.
  • Para cada pessoa temos dois dados de entrada: \text{idade} e \text{peso}.
  • Resultado desejado: a média dos pesos dentro de cada faixa etária (quatro médias diferentes).

Passo 2

Vamos planejar como calcular uma média por faixa. Conceitos importantes (explicação didática):
  • Acumulador: variável que guarda a soma dos pesos de uma faixa. Vou chamar de S_i para a i-ésima faixa. Ex.: S_1 é a soma dos pesos da faixa 1.
  • Contador: variável que conta quantas pessoas caíram naquela faixa. Vou chamar de n_i. Ex.: n_1 é o número de pessoas na faixa 1.
  • Fórmula da média: se na faixa i a soma dos pesos é S_i e o número de pessoas é n_i, a média é
\text{média}_i = \frac{S_i}{n_i}.é
Explicando a fórmula: a média é simplesmente a soma dos valores dividida pela quantidade de valores. Por isso precisamos do acumulador (soma) e do contador (quantidade).
Inicialização: antes de ler qualquer dado, devemos definir
S_1=S_2=S_3=S_4=0,\qquad n_1=n_2=n_3=n_4=0.
Isso evita lixo de memória e garante que, se não entrar ninguém numa faixa, o contador será \;0\;.

Passo 3

Como ler e classificar os dados (procedimento passo a passo):
  1. Vamos fazer um loop que se repete \;15\; vezes (uma iteração por pessoa).
  2. Em cada iteração:
    • Ler a \text{idade} (um número inteiro) e o \text{peso} (um número real).
    • Verificar em qual faixa a idade se encaixa usando condições do tipo \;1 \le \text{idade} \le 10\;, \;11 \le \text{idade} \le 20\;, etc.
    • Atualizar o acumulador e o contador correspondentes. Por exemplo, se \;1 \le \text{idade} \le 10\;, fazemos
    S_1 \leftarrow S_1 + \text{peso},\qquad n_1 \leftarrow n_1 + 1.
    • Repetir para as demais faixas: \text{se }11 \le \text{idade} \le 20:\; S_2 \leftarrow S_2 + \text{peso},\; n_2\leftarrow n_2+1,
\text{se }21 \le \text{idade} \le 30:\; S_3 \leftarrow S_3 + \text{peso},\; n_3\leftarrow n_3+1,
\text{se }\text{idade} \ge 31:\; S_4 \leftarrow S_4 + \text{peso},\; n_4\leftarrow n_4+1.
Observação sobre validade: idealmente validar se a idade é positiva. Se a entrada puder ser inválida, o programa pode pedir repetição, mas aqui assumimos que as \;15\; entradas são válidas (como o enunciado diz).

Passo 4

Como calcular e mostrar as médias no final (detalhes e cuidados):
  • Após terminar as \;15\; leituras, para cada faixa i devemos verificar se o contador n_i é maior que \;0\; para evitar divisão por zero.
  • Cálculo:
\text{se }n_i>0:\quad \text{média}_i = \frac{S_i}{n_i}é
\text{se }n_i=0:\quad \text{não há pessoas nesta faixa (ou mostrar média inexistente).}ãáé
  • Escolha de apresentação: normalmente mostramos as médias com duas casas decimais, por exemplo \;25{,}34\;. Para isso usamos formatação numérica (em muitas linguagens existe algo como formatar com duas casas: "{:.2f}".format(valor) ou f"{valor:.2f}").
Por que verificar n_i>0? Se n_i=0 e tentarmos dividir \dfrac{S_i}{n_i} teremos divisão por zero, o que é indefinido e causaria erro no programa.

Passo 5

Pequeno exemplo numérico para fixar (ilustrativo, não é necessário executar para resolver o problema):
  • Suponha que, só para exemplificar, na faixa 1 entraram duas pessoas com pesos \;20{,}0\; e \;30{,}0\;. Então S_1=50{,}0 e n_1=2. A média fica
\text{média}_1=\frac{50{,}0}{2}=25{,}0.é
  • Se numa faixa não entrou ninguém, dizemos que não há média ou que ela é indefinida.

Passo 6

Resumo do algoritmo (pra você decorar antes da prova):
  1. Inicializar S_1,S_2,S_3,S_4 e n_1,n_2,n_3,n_4 com \;0.
  2. Repetir \;15\; vezes: ler \text{idade} e \text{peso}; testar em qual faixa a idade pertence e atualizar soma e contador da faixa.
  3. Para cada faixa, se n_i>0 calcular \text{média}_i=\dfrac{S_i}{n_i}é e mostrar; senão mostrar que não há pessoas naquela faixa.
  4. Formatar a saída com, por exemplo, duas casas decimais.

Resposta

# Programa em Python que lê idade e peso de 15 pessoas e calcula as médias por faixa etária

S1 = S2 = S3 = S4 = 0.0  # somas dos pesos das quatro faixas
n1 = n2 = n3 = n4 = 0   # contadores de pessoas em cada faixa

for i in range(15):
    idade = int(input(f"Pessoa {i+1} - idade: "))
    peso = float(input(f"Pessoa {i+1} - peso (kg): "))

    if 1 <= idade <= 10:
        S1 += peso
        n1 += 1
    elif 11 <= idade <= 20:
        S2 += peso
        n2 += 1
    elif 21 <= idade <= 30:
        S3 += peso
        n3 += 1
    elif idade >= 31:
        S4 += peso
        n4 += 1
    else:
        # Caso queira tratar idades inválidas (<=0), aqui apenas ignoramos essa entrada
        print("Idade inválida (considerar >= 1). Entrada ignorada para fins de contagem.")

# Função auxiliar para imprimir média com verificação de divisão por zero
def imprimir_media(soma, contador, faixa_descr):
    if contador > 0:
        media = soma / contador
        print(f"Média de pesos {faixa_descr}: {media:.2f} kg (n={contador})")
    else:
        print(f"Média de pesos {faixa_descr}: nenhuma pessoa nesta faixa.")

imprimir_media(S1, n1, "1 a 10 anos")
imprimir_media(S2, n2, "11 a 20 anos")
imprimir_media(S3, n3, "21 a 30 anos")
imprimir_media(S4, n4, "31 anos ou mais")

Exercícios relacionados