Faça um programa que solicite a quantidade de alunos de uma turma. Para cada aluno, leia a nota final, de 0 a 100, usando for.
Ao final, o programa deve mostrar:
  • a média da turma;
  • quantos alunos foram aprovados;
  • quantos alunos ficaram em recuperação;
  • quantos alunos foram reprovados.
Considere:
Nota >= 70: aprovado
40 <= Nota < 70: recuperação
Nota < 40: reprovado

Passo 1

O que o enunciado pede e quais dados ele fornece:
  • Pedir a quantidade de alunos da turma (um número inteiro positivo).
  • Para cada aluno, ler a nota final, no intervalo de 0 a 100.
  • Ao final, mostrar:
    • a média da turma;
    • quantos alunos foram aprovados;
    • quantos ficaram em recuperação;
    • quantos foram reprovados.
As regras de classificação fornecidas:
  • \text{Nota} \ge 70: aprovado
  • 40 \le \text{Nota} < 70: recuperação
  • \text{Nota} < 40: reprovado
Entradas que o programa receberá: o número de alunos e, em seguida, uma nota por aluno. Saídas: um número (a média) e três contagens (aprovados, recuperação, reprovados).

Passo 2

Escolha do método de resolução (o que vamos usar na prova):
  • Usar um laço \text{for} que itera exatamente N vezes (uma vez por aluno), onde N é a quantidade de alunos fornecida.
  • Durante cada iteração:
    • Ler a nota do aluno.
    • Validar que a nota esteja entre 0 e 100. Se não estiver, pedir novamente até ficar válida.
    • Atualizar a soma total das notas (para depois calcular a média).
    • Atualizar contadores para aprovado / recuperação / reprovado conforme a regra.
No final:
  • Calcular a média pela fórmula \displaystyle \text{média} = \frac{\text{soma das notas}}{N}é.
  • Imprimir a média e os três contadores.

Passo 3

Conceitos básicos necessários (explicados de forma simples):
  • Laço for: em Python, para repetir algo N vezes usa-se \text{for } i \text{ in range}(N):que executa o bloco interno N vezes (com i variando de 0 até N-1). É perfeito quando já sabemos quantas repetições precisamos.
  • Acumulador (soma): uma variável inicializada em 0 que recebe, a cada iteração, a nota lida adicionada. No final o acumulador guarda a soma de todas as notas.
  • Contadores: variáveis iniciadas em 0 que incrementamos em 1 quando encontramos um aluno que se enquadra numa categoria (aprovado, recuperação, reprovado).
  • Conversão de tipo: a função \text{float}(\cdot) converte a entrada textual para número decimal; \text{int}(\cdot) converte para inteiro.
  • Validação de entrada: sempre verificar se a nota está no intervalo [0,100] e, se não estiver, solicitar novamente. Isso evita cálculos errados.

Passo 4

Fórmula da média e interpretação:
  • Depois de somar todas as notas na variável \text{soma} e sabendo N alunos, a média é \text{média} = \frac{\text{soma}}{N}.é
  • Se N=0 (caso inválido para este problema), não faz sentido calcular média — por isso pediremos que o número de alunos seja inteiro positivo (>= 1).

Passo 5

Detalhe do algoritmo passo a passo (pseudocódigo com explicação):
  1. Ler N (número de alunos). Se N não for inteiro positivo, pedir novamente.
  2. Inicializar:
    • \text{soma} \leftarrow 0
    • \text{aprovados} \leftarrow 0
    • \text{recuperacao} \leftarrow 0
    • \text{reprovados} \leftarrow 0
  3. Fazer um laço \text{for} que repete N vezes:
    • Ler a nota do aluno (usar \text{float} para aceitar decimal).
    • Enquanto a nota não estiver em [0,100], mostrar mensagem de erro e pedir de novo.
    • Somar a nota em \text{soma}.
    • Se \text{nota} \ge 70 então incrementar \text{aprovados}.
      Senão se 40 \le \text{nota} < 70 então incrementar \text{recuperacao}.
      Senão incrementar \text{reprovados}.
  4. Após o laço, calcular \text{média} = \dfrac{\text{soma}}{N}é.
  5. Exibir a média (com formatação amigável, por exemplo com duas casas decimais) e os três contadores.

Passo 6

Boas práticas e detalhes úteis para a prova:
  • Sempre validar entradas: isso evita que notas inválidas estraguem a média.
  • Use \text{float} para notas porque notas podem ser decimais (por ex. \,72{,}5).
  • Para imprimir a média com duas casas decimais em Python, pode-se usar \text{format(med, '.2f')} ou f-strings: \text{f"{med:.2f}"}.
  • Seja claro nas mensagens de prompt (por exemplo: "Digite a nota do aluno 1 (0-100): ") — isso ajuda na hora da prova interativa.
  • Em provas teóricas, explique que o laço tem complexidade linear O(N) porque processa cada aluno uma vez.

Passo 7

Exemplo manual rápido (para entender o que o programa faz):
  • Suponha N=3 e notas: 80, 55, 30.
  • \text{soma} = 80 + 55 + 30 = 165.
  • \text{média} = 165 / 3 = 55{,}0é.
  • Contadores:
    • aprovados = 1 (nota 80)
    • recuperação = 1 (nota 55)
    • reprovados = 1 (nota 30)

Passo 8

Implementação em Python (explicada linha a linha na cabeça):
  • Ler e validar N.
  • Usar \text{for i in range(N)} para percorrer cada aluno.
  • Dentro do laço, ler e validar a nota com um pequeno loop \text{while}.
  • Atualizar soma e contadores.
  • Ao final, calcular média e imprimir resultados.

Resposta

# Programa: estatísticas de notas da turma usando for

# Ler e validar a quantidade de alunos (inteiro positivo)
while True:
    try:
        n = int(input("Digite a quantidade de alunos (inteiro > 0): "))
        if n > 0:
            break
        else:
            print("Erro: a quantidade de alunos deve ser maior que zero.")
    except ValueError:
        print("Erro: digite um número inteiro válido.")

soma = 0.0
aprovados = 0
recuperacao = 0
reprovados = 0

# Ler notas usando for
for i in range(1, n + 1):
    while True:
        try:
            nota = float(input(f"Digite a nota do aluno {i} (0-100): "))
            if 0 <= nota <= 100:
                break
            else:
                print("Erro: a nota deve estar entre 0 e 100.")
        except ValueError:
            print("Erro: digite um número válido para a nota.")
    soma += nota
    if nota >= 70:
        aprovados += 1
    elif nota >= 40:  # aqui já sabemos nota < 70 por causa do if anterior
        recuperacao += 1
    else:
        reprovados += 1

media = soma / n

# Exibir resultados
print(f"\nMédia da turma: {media:.2f}")
print(f"Quantidade de aprovados: {aprovados}")
print(f"Quantidade em recuperação: {recuperacao}")
print(f"Quantidade de reprovados: {reprovados}")

Exercícios relacionados