Oi Thiago, tudo bem?
Parabéns por praticar! Assim você consegue fixar bem os conceitos.
O seu exemplo é simples e funcional sobre o uso de funções e condições. No entanto, existem algumas melhorias que podem ser feitas:
Adicionar validação de entrada: Atualmente, o script aceita qualquer tipo de entrada para as notas, incluindo valores negativos e caracteres inválidos. É importante validar as entradas para garantir que as notas sejam números positivos entre 0 e 10.
Usar operador else-if: Em vez de usar três declarações if separadas, podemos usar o operador else-if para tornar o código mais conciso e legível.
Separar a lógica de apresentação da lógica de cálculo: Atualmente, a função mostrar() é usada para exibir a média e a mensagem de aprovação / reprovação. É melhor separar a lógica de apresentação da lógica de cálculo, para que as funções possam ser reutilizadas em diferentes partes do script.
// Função para exibir mensagens na tela
function mostrar(texto) {
document.write(texto + "<br>");
}
// Função para validar a entrada de notas
function validarNota(nota) {
if (isNaN(nota) || nota < 0 || nota > 10) {
return false;
}
return true;
}
// Função para calcular a média
function calcularMedia(bimestre1, bimestre2, bimestre3, bimestre4) {
var notas = [bimestre1, bimestre2, bimestre3, bimestre4];
var soma = 0;
for (var i = 0; i < notas.length; i++) {
if (validarNota(notas[i])) {
soma += notas[i];
} else {
return false;
}
}
return soma / notas.length;
}
// Função para exibir a mensagem de aprovação / reprovação
function exibirResultado(media) {
if (media >= 7) {
mostrar("Sua média é: " + media + ", Você está aprovado.");
} else {
mostrar("Sua média é: " + media + ", Você está reprovado.");
}
}
// Script principal
function main() {
mostrar("<h1>Calculando média anual de um aluno:</h1>");
var bimestre1 = parseFloat(prompt("Digite a nota do primeiro bimestre"));
var bimestre2 = parseFloat(prompt("Digite a nota do segundo bimestre"));
var bimestre3 = parseFloat(prompt("Digite a nota do terceiro bimestre"));
var bimestre4 = parseFloat(prompt("Digite a nota do quarto bimestre"));
var media = calcularMedia(bimestre1, bimestre2, bimestre3, bimestre4);
if (media === false) {
mostrar("Por favor, digite notas válidas entre 0 e 10.");
} else {
exibirResultado(media);
}
}
main();
Espero que te ajude!
Um abraço e bons estudos.