/** * Función que devuelve el valor en pulgadas correspondiente al valor en metros pasado como parámetro. * * @param {number} m Cantidad de metros * @return {number} Cantidad de pulgadas o NaN si parámetro no es un número */ let metrosAPulgadas = m => m * 39.3701; /** * Función que devuelve el binomio al cuadrado de dos números pasados como parámetros. * * @param {number} a Primer número * @param {number} b Segundo número * @return {number} Resultado de la operación o NaN si algún parámetro no es un número */ let binomioAlCuadrado = (a, b) => a * a + b * b + (2 * a * b); /** * Función que genera un código de color RGB aleatorio. * * @return {string} - Código de color RGB */ let generarRGB = () => { var r = Math.floor(Math.random() * 2 ** 8); var g = Math.floor(Math.random() * 2 ** 8); var b = Math.floor(Math.random() * 2 ** 8); return `rgb(${r},${g},${b})`; }; /** * Función que genera un código de color hexadecimal aleatorio. * * @return {string} Código de color hexadecimal */ let generarRGBHex = () => { var n = Math.floor(Math.random() * 16 ** 6); var hex = "00000" + n.toString(16).toUpperCase(); return "#" + hex.slice(-6); }; /** * Función que devuelve la tabla de multiplicar de un número pasado como parámetro (sin control de excepciones). * * @param {number} n Número entero * @return {string} Tabla de multiplicar de parámetro */ let tablaMultiplicar = n => { let i, tabla = ""; for (i = 0; i < 10; i++) { tabla += `${n} x ${i} = ${n * i}\n`; } tabla += `${n} x ${i} = ${n * i}`; return tabla; }; /** * Función que devuelve la tabla de multiplicar de un número pasado como parámetro, en formato de lista no ordenada HTML (sin control de excepciones). * * @param {number} n Número entero * @return {string} Lista no ordenada HTML de tabla de multiplicar de parámetro */ let tablaMultiplicarUL = n => { let lista = ""; return lista; }; /** * Función que eleva un número pasado como primer parámetro a la n-ésima potencia definida por el segundo parámetro (sin control de excepciones). * * @param {number} x Número base * @param {numer} n Número exponente * @return {number} Resultado de la operación */ let potencia = (x, n) => { let potencia = 1; for (let i = 0; i < n; i++) { potencia *= x; } return potencia; }; /** * Función que devuelve el factorial del número pasado como parámetro (sin control de excepciones). * * @param {number} n Número entero positivo * @return {number} Resultado de la operación */ let factorial = n => { let f = 1; for (let i = n; i > 0; i--) { f *= i; } return f; }; /** * Función que devuelve el factorial del número pasado como parámetro (sin control de excepciones). * * @param {number} n Número entero positivo * @return {number} Resultado de la operación */ let factorialRecursivo = n => { if (n === 0) { return 1; } return n * factorialRecursivo(n - 1); }; /** * Number.isInteger() MDN Polyfill */ Number.isInteger = Number.isInteger || function (value) { return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; }; /** * Función que determina si el dato pasado como parámetro es o no un número entero. * * @param {number} n Número * @return {boolean} Retorna true si parámetro es número entero y false si no lo es */ let esInt = n => Number.isInteger(Number(n)); /** * Función que determina si el dato pasado como parámetro es o no un número impar. * * @param {number} n Número entero * @return {boolean} Retorna true si parámetro es número impar y false si no lo es */ let esImpar = n => { if (!Number.isInteger(n)) { return false; } else { return (n % 2 !== 0); } }; /** * Función que determina si el dato pasado como parámetro es o no un número impar. * * @param {number} n Número entero * @return {boolean} Retorna true si parámetro es número impar y false si no lo es */ let esImparV2 = n => { if (!Number.isInteger(n)) { return false; } else { return ((n % 2 !== 0) ? true : false); } }; /** * Función que retorna un número introducido por pantalla. * * @return {number|null} Número introducido por usuario o null */ let promptNumero = () => { let n; do { n = prompt("Introduzca un número:"); if (n === "" || n === null) { return null; } else if (isNaN(n)) { alert("Error: parámetro introducido no es un número."); } else { return +n; } } while (isNaN(n)); }; /** * Función que retorna un número entero introducido por pantalla. * * @return {number|null} Número entero introducido por usuario o null */ let promptEntero = () => { let n; do { n = prompt("Introduzca un número entero:"); if (n === "" || n === null) { return null; } else if (isNaN(n)) { alert("Error: parámetro introducido no es un número."); } else if (!esInt(n)) { alert("Error: parámetro introducido no es un número entero."); } else { return +n; } } while (isNaN(n) || !esInt(n)); }; /** * Función que retorna un número decimal introducido por pantalla. * * @return {number|null} Número decimal introducido por usuario o null */ let promptFloat = () => { let n; do { n = prompt("Introduzca un número decimal:"); if (n === "" || n === null) { return null; } else if (isNaN(n)) { alert("Error: parámetro introducido no es un número."); } else if (esInt(n)) { alert("Error: parámetro introducido no es un número decimal."); } else { return +n; } } while (isNaN(n) || esInt(n)); };