Escrever um programa que calcule a média aritmética das três notas dos alunos de uma classe. O algoritmo deverá ler, além das notas, o código do aluno, e deverá ser encerrado quando o código for igual a zero. Mostrar o resultado final.
Passo 1
O que o enunciado pede e quais dados temos:
- Pede: escrever um programa que calcule a média aritmética das três notas de cada aluno da turma.
- Condição de parada: o programa deverá ler o código do aluno e encerrar quando o código for igual a zero.
- Para cada aluno (com código diferente de zero) o programa deve:
- ler o código do aluno;
- ler as três notas desse aluno;
- calcular a média das três notas;
- mostrar o resultado (normalmente exibindo o código do aluno e a média).
- Dados de entrada por aluno: o código do aluno (um inteiro) e três notas (números).
- Saída esperada por aluno: a média aritmética das três notas (por exemplo com duas casas decimais) associada ao código do aluno.
Passo 2
Conceito matemático necessário (explicando devagar e sem pular etapas):
- A média aritmética das três notas
, e é dada por
- O que cada símbolo significa:
-
, , são as três notas do aluno; -
é o número resultante que representa a média aritmética; - O símbolo
significa dividir a soma das três notas por , porque são três valores.
-
- Exemplo numérico rápido para fixar: se as notas forem
, e , então
que arredondando para duas casas fica
.
Passo 3
Estratégia do programa (passo a passo lógico, sem código ainda):
- Repetir a leitura até o usuário digitar o código
(sentinela). - Para cada iteração:
- Ler o código do aluno.
- Se o código for
, terminar o laço e encerrar o programa. - Senão, ler as três notas do aluno.
- Calcular a média usando a fórmula da Passo 2.
- Exibir a média junto com o código do aluno.
- Voltar a ler o próximo código e repetir.
Explicação do conceito “sentinela”:
- Um valor sentinela é um valor especial que indica que não há mais dados a processar; aqui o sentinela é o código igual a
. - Ao detectar o sentinela, o programa interrompe a repetição (laço).
Passo 4
Como transformar a estratégia em um programa em Python (explicações de cada construção que usaremos):
- Laço repetitivo: em Python podemos usar
while True:e usarbreakquando encontrarmos o sentinela. Isso significa: “repita para sempre, até que umbreakocorra”. - Leitura de entrada:
input()lê uma linha do teclado como texto; para transformar em inteiro usamosint(...), para transformar em número com casas decimais usamosfloat(...). - Conversões: se fizer
codigo = int(input()), está pegando o texto digitado e transformando em inteiro; se o usuário digitar algo inválido isso dá erro — em provas geralmente assumimos entradas válidas. - Cálculo da média: somar três variáveis e dividir por
3. Em Pythonmedia = (n1 + n2 + n3) / 3. - Formatação da saída: para mostrar com duas casas decimais, usamos formatação
f"{media:.2f}"ouformat(media, ".2f"). Isso apresenta sempre duas casas decimais (ex.:7.17). - Mostrar o resultado: usar
print(...)para apresentar no console.
Passo 5
Boas práticas e pequenas variações que você pode usar na prova:
- Validar notas (opcional): verificar se cada nota está entre
e antes de calcular; se a prova não pede, normalmente não é necessário implementar validação. - Exibir cabeçalho ou instruções (opcional): em contextos de avaliação automática geralmente espera-se exatamente o formato pedido; aqui uma saída no formato
Código X: média Yé clara. - Tratar entradas até o sentinela: sempre verificar o sentinela imediatamente após ler o código para não tentar ler notas quando o código for
.
Passo 6
Exemplo de execução manual (mostrando como deve fluir a interação; isso ajuda a entender o comportamento):
- Usuário digita
101(código do aluno). - Usuário digita
78,56(três notas). - Programa calcula média
e imprime, por exemplo, Codigo 101: media = 7.17. - Em seguida solicita o próximo código.
- Se o usuário digitar
0no próximo código, o programa encerra sem ler notas.
Resposta
# Programa para calcular a média aritmética de três notas por aluno.
# O programa lê o código do aluno; se o código for 0, encerra.
# Para cada código diferente de 0, lê três notas, calcula a média e imprime o resultado.
while True:
codigo = int(input("Digite o código do aluno (0 para terminar): "))
if codigo == 0:
break
# Leitura das três notas
n1 = float(input("Digite a primeira nota: "))
n2 = float(input("Digite a segunda nota: "))
n3 = float(input("Digite a terceira nota: "))
# Cálculo da média aritmética
media = (n1 + n2 + n3) / 3
# Impressão da média com duas casas decimais
print(f"Código {codigo}: média = {media:.2f}")