Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Calculadora de promedio y situación del alumno

Buenas Tardes Compañeros!

Ademas de las opciones correctas que se proponen en la actividad, realicé el ejercicio de crear las funciones, adicionalmente añadi una funcion que nos permite validar si las cuatro notas han sido ingresadas y son numericas, el resultado lo muestra en la consola.

// Valida que el usuario hay ingresado numeros
function validarNota(numero){
    if (isNaN(Number(numero)) || numero === ''){
        return NaN;
    }
    return Number(numero);
}

// Calcula el promedio de las cuatro notas
function calcularPromedio(nota1, nota2, nota3, nota4){
    nota1 = validarNota(nota1);
    nota2 = validarNota(nota2);
    nota3 = validarNota(nota3);
    nota4 = validarNota(nota4);
    if (isNaN(nota1) || isNaN(nota2) || isNaN(nota3) || isNaN(nota4)){
        console.log('Ha ingresado alguna nota Invalida, Intentelo de nuevo Por favor.');
        return NaN;
    }
    return (nota1 + nota2 + nota3 + nota4) / 4;
}

//Compueba si el estudiante aprobo o no, y lo muestra en consola.
function verificarAprobacion(nota1, nota2, nota3, nota4){
    let promedio = calcularPromedio(nota1, nota2, nota3, nota4);
    if (isNaN(promedio)){
        return;
    }
    console.log(`El estudiante ${promedio >= 5 ? 'Aprobo' : 'Reprobo'} con un promedio de ${promedio}`);
}
verificarAprobacion(7, 6, 3, 5);
2 respuestas

¡Hola Anderson!

Entiendo que has creado un conjunto de funciones para calcular el promedio de cuatro notas y determinar si un estudiante aprobó o no. Veo que has incluido una función para validar si las notas ingresadas son numéricas, lo cual es muy importante para asegurar la integridad de los cálculos.

Sin embargo, parece que estás teniendo un problema con la función verificarAprobacion ya que al ejecutarla con las notas 7, 6, 3, 5, el resultado no es el esperado. Al parecer, el problema puede estar en la lógica de la condición que determina si el estudiante aprobó o no.

Te sugiero revisar la lógica dentro de la función verificarAprobacion y asegurarte de que la condición para determinar si el estudiante aprobó o no esté correctamente implementada.

Espero que esto te ayude a identificar y solucionar el problema. ¡Sigue adelante con tu ejercicio y no dudes en preguntar si necesitas más ayuda!

Espero haber ayudado y buenos estudios!

Hola Eric!

Muchas gracias por la observacion, verificando el codigo, cuando nostros ejecutamos la función con los valores 7, 6, 3, 5 , es decir, verificarAprobacion(7, 6, 3, 5) obtenemos el siguente mensaje en consola:

El estudiante Aprobo con un promedio de 5.25

El calculo realizado del promedio es correcto, a lo que puede ser que te refieras es que el enunciado solo pide indicar "Aprobado"¨ o "Desaprobado" entonces quedaria asi:

// Valida que el usuario hay ingresado numeros
function validarNota(numero){
    if (isNaN(Number(numero)) || numero === ''){
        return NaN;
    }
    return Number(numero);
}

// Calcula el promedio de las cuatro notas
function calcularPromedio(nota1, nota2, nota3, nota4){
    nota1 = validarNota(nota1);
    nota2 = validarNota(nota2);
    nota3 = validarNota(nota3);
    nota4 = validarNota(nota4);
    if (isNaN(nota1) || isNaN(nota2) || isNaN(nota3) || isNaN(nota4)){
        console.log('Ha ingresado alguna nota Invalida, Intentelo de nuevo Por favor.');
        return NaN;
    }
    return (nota1 + nota2 + nota3 + nota4) / 4;
}

//Compueba si el estudiante aprobo o no, y lo muestra en consola.
function verificarAprobacion(nota1, nota2, nota3, nota4){
    let promedio = calcularPromedio(nota1, nota2, nota3, nota4);
    if (isNaN(promedio)){
        return;
    }
    console.log(`${promedio >= 5 ? 'Aprobado' : 'Reprobado'}`);
}
verificarAprobacion(7, 6, 3, 5);

Entonces al ejecutar la funcion verificarAprobacion(7, 6, 3, 5); obtendremos el siguiente mensaje:

Aprobado

El mensaje es Aprobado ya que el promedio es 5.25 que es mayor a 5. Nose si a eso te referias o a que parte te refieres, te agradezco mucho por la Observacion.