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
Ao final, o programa deve mostrar:
Nota >= 70: aprovado
40 <= Nota < 70: recuperação
Nota < 40: reprovadoPasso 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:
-
: aprovado -
: recuperação -
: 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
que itera exatamente vezes (uma vez por aluno), onde é a quantidade de alunos fornecida. - Durante cada iteração:
- Ler a nota do aluno.
- Validar que a nota esteja entre
e . 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
. - 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
vezes usa-se que executa o bloco interno vezes (com variando de até ). É perfeito quando já sabemos quantas repetições precisamos. - Acumulador (soma): uma variável inicializada em
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
que incrementamos em quando encontramos um aluno que se enquadra numa categoria (aprovado, recuperação, reprovado). - Conversão de tipo: a função
converte a entrada textual para número decimal; converte para inteiro. - Validação de entrada: sempre verificar se a nota está no intervalo
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
e sabendo alunos, a média é - Se
(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):
- Ler
(número de alunos). Se não for inteiro positivo, pedir novamente. - Inicializar:
-
- Fazer um laço
que repete vezes: - Ler a nota do aluno (usar
para aceitar decimal). - Enquanto a nota não estiver em
, mostrar mensagem de erro e pedir de novo. - Somar a nota em
. - Se
então incrementar .
Senão seentão incrementar .
Senão incrementar.
- Ler a nota do aluno (usar
- Após o laço, calcular
. - 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
para notas porque notas podem ser decimais (por ex. ). - Para imprimir a média com duas casas decimais em Python, pode-se usar
ou f-strings: . - 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
porque processa cada aluno uma vez.
Passo 7
Exemplo manual rápido (para entender o que o programa faz):
- Suponha
e notas: , , . -
. -
. - 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
. - Usar
para percorrer cada aluno. - Dentro do laço, ler e validar a nota com um pequeno loop
. - 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}")