Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Duda del desafío C2-A2: Script de una función de un promedio abierto e interactivo

Quizá lo llevé mucho más allá de lo que era una vez que vi las respuestas en Github, pero pensando en la oportunidad de correr el app.js en la web con las alertas y la consola, hice un script para pedir n números y promediarlos, aplicando así conocimiento del aula anterior también.

Mi pregunta aquí es, al comparar la primera versión que hice, versus la segunda versión donde me parece que uso la función apropiadamente y no como un detonador de la acción que quiero realizar...

¿Hay una manera de optimizar más el código?... ¿Existen mayores beneficios de usar la función como tal a no hacerlo, tal y como en el primer script?


Script 1:

function average() {
    n = parseInt(prompt("Inserte la cantidad de números a promediar"));
    suma = 0;
    contador = n;
    intentos = n;

    while(contador>0) {
        ni = parseInt(prompt ("Inserte uno a uno los dígitos a promediar"));
        suma = suma + ni;
        contador --; 
        if (n == 0 ) {
            break;
        }
    }

 //   console.log("suma",suma);
//    console.log("n=", n);
    let promedio = (suma/n);
    alert(`El promedio es ${promedio}.`);
}
average();

Script 2 (Para fines educativos, o sea no hacerme bolas en la consola con los nombres, le agregue una x a todas las variables):

function AVG() {


    xn = parseInt(prompt("Por favor, inserte la cantidad de números a promediar"));
    xsuma = 0;
    xcontador = xn;
    xintentos = xn;

    while(xcontador>0) {
        xni = parseInt(prompt ("Inserte uno a uno los dígitos a promediar"));
        xsuma = xsuma + xni;
        xcontador --; 
        if (xn == 0 ) {
            break;
        }
    }
    
    return (xsuma/xn);
}

let xpromedio = AVG();
alert(`El promedio es ${xpromedio}.`);

Gracias de antemano por sus comentarios.

EDIT: Gracias por el comentario del break, lo puse porque al probar la comparación en una sola tanda, me permitia saltarme los siguientes pasos, porque sino while no se cancelaba en pedirme numeros para el promedio.

1 respuesta

Hola Andrea, en la parte del "break" no seria necesario ,ya que "while" no lo considera por la condición que pusiste ">0".