1. 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 \geq 7 ). As notas do aluno, que você pode inserir diretamente no código de modo fixo, são respectivamente: [8.5,9.0,3.0, 1.5,8.5,7.5,10.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:
  1. Criar uma função que calcule a média ponderada das notas do aluno.
  2. 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 \geq 7) 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 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
    • Projeto: peso 6
  • Notas do aluno (na ordem correspondente acima; você pediu que eu as insira fixas no código):
    [8{,}5,\; 9{,}0,\; 3{,}0,\; 1{,}5,\; 8{,}5,\; 7{,}5,\; 10{,}0]
  • Critério de aprovação: média final maior ou igual a 7.
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 (x_1,x_2,\dots,x_n) com pesos (w_1,w_2,\dots,w_n) é dada por
\bar{x}_w = \frac{\sum_{i=1}^{n} w_i x_i}{\sum_{i=1}^{n} w_i}.
Explicando cada símbolo:
  • x_i é a i-ésima nota (por exemplo, x_1 = nota das listas).
  • w_i é o peso correspondente à i-ésima nota (por exemplo, w_1 = peso das listas).
  • O numerador \sum_{i=1}^n w_i x_i é a soma dos produtos peso vezes nota.
  • O denominador \sum_{i=1}^n w_i é 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 6 deve influenciar mais que uma participação de peso 3.

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:
  1. Verificar que as listas têm o mesmo comprimento (para evitar erro).
  2. Calcular o produto w_i x_i para cada par correspondente e somar todos: isso é \sum w_i x_i.
  3. Calcular a soma dos pesos \sum w_i.
  4. Dividir o total ponderado pela soma dos pesos para obter \bar{x}_w.
  5. Retornar \bar{x}_w.
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:
    1. Definir a lista de pesos (fixa dentro desta função).
    2. Definir a lista de notas (fixa também, conforme enunciado).
    3. Chamar a função media_ponderada(notas, pesos).
    4. Comparar o resultado com 7.
    5. 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 w_i x_i, 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:
\text{notas} = [8{,}5,\; 9{,}0,\; 3{,}0,\; 1{,}5,\; 8{,}5,\; 7{,}5,\; 10{,}0]
\text{pesos} = [3,\; 3,\; 4,\; 4,\; 5,\; 5,\; 6]
Calcule cada produto w_i x_i:
  • Primeiro termo: 3 \times 8{,}5 = 25{,}5.
  • Segundo termo: 3 \times 9{,}0 = 27{,}0.
  • Terceiro termo: 4 \times 3{,}0 = 12{,}0.
  • Quarto termo: 4 \times 1{,}5 = 6{,}0.
  • Quinto termo: 5 \times 8{,}5 = 42{,}5.
  • Sexto termo: 5 \times 7{,}5 = 37{,}5.
  • Sétimo termo: 6 \times 10{,}0 = 60{,}0.
Somando os produtos para obter o numerador:
\sum_{i=1}^{7} w_i x_i = 25{,}5 + 27{,}0 + 12{,}0 + 6{,}0 + 42{,}5 + 37{,}5 + 60{,}0 = 210{,}5.
Somando os pesos para obter o denominador:
\sum_{i=1}^{7} w_i = 3 + 3 + 4 + 4 + 5 + 5 + 6 = 30.
Agora a média ponderada:
\bar{x}_w = \frac{210{,}5}{30} = 7{,}016\overline{6}\approx 7{,}0167.
Comparação com o critério:
  • Como \bar{x}_w \approx 7{,}0167 \ge 7{,}0, 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

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 7{,}016\overline{6} (aproximadamente 7{,}02)

Exercícios relacionados