Construa um algoritmo que calcule a média aritmética das 3 notas dos alunos de uma classe. 0 algoritmo deverá ler, além das notas, o código (de três dígitos) do aluno e deverá ser encerrado quando o código for igual a zero.
Passo 1
O enunciado pede que construamos um algoritmo que faça o seguinte: leia repetidamente o código do aluno (um inteiro de três dígitos) e, para cada aluno, leia suas três notas e calcule a média aritmética dessas três notas. O algoritmo deve ser encerrado quando o código lido for igual a
.
Informações relevantes dadas pelo enunciado:
- Entrada: o código do aluno (inteiro de três dígitos) e três notas (números reais).
- Saída: a média aritmética das três notas para cada aluno processado.
- Condição de parada: quando o código for igual a
. - Observação implícita: para cada aluno processado devemos mostrar a média antes de ler o próximo código.
Passo 2
Escolha do método de controle do laço: usamos um laço controlado por sentinela (sentinel loop). Sentinela é um valor especial que indica “pare” — aqui a sentinela é o código
. A ideia prática é:
- Ler o código do aluno;
- Se o código for
, interromper o algoritmo; - Caso contrário, ler as três notas, calcular a média e exibir o resultado; então voltar a ler o próximo código.
Por que isso é adequado? Porque o enunciado não indica quantos alunos existem antecipadamente, então não podemos usar um laço “para i de 1 até N”. Um laço controlado pela condição “enquanto o código != ,0” é simples e direto.
Passo 3
Conceito matemático que usamos: média aritmética simples de três valores. A fórmula é
Explicando a fórmula de forma bem clara:
-
, e são os três números que o aluno obteve; - Soma-se os três números;
- Divide-se o resultado por
(pois são três notas); - O quociente é a média aritmética.
Importante: ao implementar, garantir que a divisão produza resultado em ponto flutuante (não fazer divisão inteira). Em linguagens modernas de alto nível a divisão padrão entre números reais já produz ponto flutuante.
Exemplo numérico pequeno para fixar:
- Se as notas forem
, e , então
Podemos arredondar para duas casas decimais e mostrar
se desejar uma apresentação mais limpa.
Passo 4
Tratamento de validade do código (opcional, mas didático):
- O enunciado diz “código (de três dígitos)”. Para checar se o código tem três dígitos usamos: o código é um inteiro e seu valor absoluto está entre
e (ou entre e se números negativos fossem permitidos, mas normalmente códigos são não-negativos). Em termos práticos, para aceitar apenas códigos de três dígitos verificamos: - se
.
- se
- Porém, como o enunciado exige parada em
, permitimos esse caso especial. Se um código inválido for lido, podemos avisar o usuário e pedir novamente (ou simplesmente ignorar e seguir; aqui vou mostrar a versão que avisa e pede novamente).
Observação: muitas listas de exercícios não exigem essa validação — ela é apenas uma melhoria.
Passo 5
Esqueleto do algoritmo em pseudocódigo comentado, passo a passo (bem mastigado, do jeito que você pode escrever na prova):
Início:
- Ler o código do aluno.
- Enquanto o código for diferente de
faça:
2.1. Se o código não estiver entree então:
- Exibir mensagem de código inválido (opcional).
- Ler o próximo código (voltar ao começo do laço).
2.2. Ler.
2.3. Ler.
2.4. Ler.
2.5. Calcular a média usando a fórmula2.6. Exibir a média do aluno (por exemplo, “Código: <código> - Média: <média>”).
2.7. Ler o próximo código do aluno. - Fim do laço e do algoritmo quando o código for
.
Explicando cada ação para você poder reproduzir na prova:
- Primeiro fazemos uma leitura inicial do código (chama-se “leitura priming” ou “priming read”); sem essa leitura inicial não conseguimos verificar a condição antes de entrar no laço.
- Dentro do laço, depois de processar o aluno atual, lemos novamente o código para testar se devemos continuar ou parar.
- O cálculo da média é direto: soma das três notas dividido por
. - A checagem de validade do código é apenas para assegurar que o número tem três dígitos; é opcional conforme o enunciado.
Passo 6
Exemplo de execução (mostrando entradas e saídas) para fixar o fluxo. Suponha as seguintes entradas na ordem em que o algoritmo lê:
- Código:
- Notas:
, , - Código:
- Notas:
, , - Código:
Passo a passo:
- Leu
(não é ), leu as três notas e calculou
Exibe: “Código: 123 - Média: 7,33” (se formatar com duas casas).
- Lê próximo código
(não é ), leu as três notas e calculou
Exibe: “Código: 456 - Média: 7,50”.
- Lê próximo código
→ condição de parada → encerra.
Passo 7
Implementação prática curta em estilo pseudocódigo final, pronta para copiar na prova:
Inicio
Ler código
Enquanto código ≠ 0 faça
Se código < 100 ou código > 999 então
Exibir “Código inválido. Digite um código de três dígitos ou 0 para sair.”
Ler código
Continuar (ir para o início do laço)
Fim se
Ler nota1
Ler nota2
Ler nota3
média ← (nota1 + nota2 + nota3) / 3
Exibir “Código:”, código, “- Média:”, média (formatar se quiser)
Ler código
Fim enquanto
Fim
Ler código
Enquanto código ≠ 0 faça
Se código < 100 ou código > 999 então
Exibir “Código inválido. Digite um código de três dígitos ou 0 para sair.”
Ler código
Continuar (ir para o início do laço)
Fim se
Ler nota1
Ler nota2
Ler nota3
média ← (nota1 + nota2 + nota3) / 3
Exibir “Código:”, código, “- Média:”, média (formatar se quiser)
Ler código
Fim enquanto
Fim
Dicas finais para a prova:
- Escreva claramente a fórmula da média como mostrado; se pedirem, justifique que dividimos por
porque são três notas. - Se a linguagem da prova for estruturada (pseudocódigo), use “Enquanto” / “Se” / “Ler” / “Exibir”. Se for pedir em linguagem real (por exemplo, Python), a lógica é a mesma.
- Não esqueça de ler o próximo código ao final do laço — esse é o erro mais comum (esquecer a leitura dentro do laço e criar loop infinito).
Resposta
Inicio
Ler código
Enquanto código ≠ 0 faça
Se código < 100 ou código > 999 então
Exibir “Código inválido. Digite um código de três dígitos ou 0 para sair.”
Ler código
Continuar
Fim se
Ler nota1
Ler nota2
Ler nota3
média ← (nota1 + nota2 + nota3) / 3
Exibir “Código:”, código, “- Média:”, média
Ler código
Fim enquanto
Fim
Ler código
Enquanto código ≠ 0 faça
Se código < 100 ou código > 999 então
Exibir “Código inválido. Digite um código de três dígitos ou 0 para sair.”
Ler código
Continuar
Fim se
Ler nota1
Ler nota2
Ler nota3
média ← (nota1 + nota2 + nota3) / 3
Exibir “Código:”, código, “- Média:”, média
Ler código
Fim enquanto
Fim