- Um aluno tem sete atividades avaliativas: Listas de exercício (Peso 3), Participação em sala de aula (Peso 3), Prova 1 (Peso 4), Prova 2 (Peso 4), Prova 3 (Peso 5), Prova 4 (Peso 5) e Projeto (Peso 6). Crie uma função para calcular a média ponderada das notas desse aluno e, por meio de outra função, informe se ele está aprovado (média
). As notas do aluno, que você pode inserir diretamente no código de modo fixo, são respectivamente: [8.5,9.0,3.0,
. Os valores dos pesos devem estar na função que exibe se o aluno está aprovado, sendo passados por parâmetro (de modo fixo no código) para a função que calcula a média ponderada. Exiba ao final da função que avalia a aprovação se o aluno está APROVADO ou REPROVADO e com qual nota.
Passo 1
O enunciado pede duas coisas bem práticas:
- Criar uma função que calcule a média ponderada das notas do aluno.
- Criar outra função que use a função da média (passando os pesos como parâmetro — os pesos devem estar definidos dentro da função que avalia a aprovação) e informe se o aluno está APROVADO (média
) ou REPROVADO, mostrando também a nota final.
Informações dadas (vou listar tudo nitidamente):
-
Atividades e seus pesos (informação do enunciado):
- Listas de exercício: peso
- Participação em sala de aula: peso
- Prova 1: peso
- Prova 2: peso
- Prova 3: peso
- Prova 4: peso
- Projeto: peso
- Listas de exercício: peso
-
Notas do aluno (na ordem correspondente acima; você pediu que eu as insira fixas no código):
-
Critério de aprovação: média final maior ou igual a
.
Nada mais será pedido: vou implementar a função da média, a função de verificação (com os pesos dentro dela) e mostrar o cálculo passo a passo até a decisão APROVADO/REPROVADO.
Passo 2
Entendendo matematicamente o que é a média ponderada (uma mini-aula):
- A média ponderada de um conjunto de notas
com pesos é dada por
Explicando cada símbolo:
-
é a -ésima nota (por exemplo, = nota das listas). -
é o peso correspondente à -ésima nota (por exemplo, = peso das listas). - O numerador
é a soma dos produtos peso vezes nota. - O denominador
é a soma dos pesos (normaliza a média).
Intuição rápida: notas com pesos maiores contam mais na média — faz sentido porque um projeto de peso
deve influenciar mais que uma participação de peso
.
Passo 3
Projeto da primeira função (função que calcula a média ponderada).
- Assinatura (em Python, por exemplo): def media_ponderada(notas, pesos)
- O que ela faz: recebe duas listas (mesmo tamanho): lista de notas e lista de pesos; calcula a média pela fórmula acima e retorna o valor.
Explicação do algoritmo passo a passo:
- Verificar que as listas têm o mesmo comprimento (para evitar erro).
- Calcular o produto
para cada par correspondente e somar todos: isso é . - Calcular a soma dos pesos
. - Dividir o total ponderado pela soma dos pesos para obter
. - Retornar
.
Exemplo de código (comentado) — este é o código que você pode usar diretamente no seu ambiente Python:
def media_ponderada(notas, pesos):
if len(notas) != len(pesos):
raise ValueError("listas de notas e pesos devem ter o mesmo tamanho")
soma_ponderada = 0.0
soma_pesos = 0.0
for nota, peso in zip(notas, pesos):
soma_ponderada += nota * peso
soma_pesos += peso
return soma_ponderada / soma_pesos
Comentário amigável: aqui eu fiz o passo a passo explícito para você conseguir escrever sem erro na prova.
Passo 4
Projeto da segunda função (função que decide aprovação e que deve conter os pesos):
- Requisito do enunciado: “Os valores dos pesos devem estar na função que exibe se o aluno está aprovado, sendo passados por parâmetro (de modo fixo no código) para a função que calcula a média ponderada.”
- Logo, nesta função vamos:
- Definir a lista de pesos (fixa dentro desta função).
- Definir a lista de notas (fixa também, conforme enunciado).
- Chamar a função media_ponderada(notas, pesos).
- Comparar o resultado com
. - Exibir “APROVADO” ou “REPROVADO” e a nota final (com formatação legível).
Um código que segue exatamente essa ideia:
def avaliar_aprovacao():
# Pesos definidos aqui (dentro da função avaliadora)
pesos = [3, 3, 4, 4, 5, 5, 6]
# Notas do aluno (fixas conforme enunciado)
notas = [8.5, 9.0, 3.0, 1.5, 8.5, 7.5, 10.0]
media = media_ponderada(notas, pesos)
if media >= 7.0:
print(f"APROVADO com nota {media:.2f}")
else:
print(f"REPROVADO com nota {media:.2f}")
Observação: o trecho
f"{media:.2f}" apenas formata a saída com duas casas decimais para ficar bonitinho.Passo 5
Agora vou calcular a média ponderada manualmente passo a passo, mostrando cada produto
, para você entender de verdade como o número aparece (isso é útil na prova para conferir conta rápida sem rodar código):
As notas (pego do enunciado) e os pesos (peguei da função avaliadora acima) são:
Calcule cada produto
:
- Primeiro termo:
. - Segundo termo:
. - Terceiro termo:
. - Quarto termo:
. - Quinto termo:
. - Sexto termo:
. - Sétimo termo:
.
Somando os produtos para obter o numerador:
Somando os pesos para obter o denominador:
Agora a média ponderada:
Comparação com o critério:
- Como
, o aluno está APROVADO.
Passo 6
Trecho final com o código completo pronto para executar (juntando as duas funções):
def media_ponderada(notas, pesos):
if len(notas) != len(pesos):
raise ValueError("listas de notas e pesos devem ter o mesmo tamanho")
soma_ponderada = 0.0
soma_pesos = 0.0
for nota, peso in zip(notas, pesos):
soma_ponderada += nota * peso
soma_pesos += peso
return soma_ponderada / soma_pesos
def avaliar_aprovacao():
pesos = [3, 3, 4, 4, 5, 5, 6] # definidos aqui, conforme enunciado
notas = [8.5, 9.0, 3.0, 1.5, 8.5, 7.5, 10.0] # notas fixas conforme enunciado
media = media_ponderada(notas, pesos)
if media >= 7.0:
print(f"APROVADO com nota {media:.2f}")
else:
print(f"REPROVADO com nota {media:.2f}")
# Executa a avaliação
avaliar_aprovacao()
Se você executar esse código em Python, a saída será:
APROVADO com nota 7,02
APROVADO com nota 7,02
Passo 7
Dica de prova e variações rápidas:
- Sempre verifique se a soma dos pesos não é zero (evita divisão por zero).
- Se precisarem que a média seja arredondada para 1 casa decimal na prova, use formatação adequada, mas compare sempre com o valor exato (não com o arredondado) para decidir aprovação.
- Se em outra questão os pesos vierem por parâmetro (não definidos na função avaliadora), basta adaptar: a regra do enunciado deste exercício exigia que os pesos ficassem dentro da função que avalia a aprovação, por isso assim fizemos.
Força — você já tem a função pronta, a conta feita passo-a-passo e a saída formatada. Vai tranquilo!
Resposta
APROVADO com nota
(aproximadamente
)