/**
* 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 = "
\n";
for (let i = 0; i <= 10; i++) {
lista += ` - ${n} x ${i} = ${n * i}
\n`;
}
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));
};