Para este desafió me apoyé de las respuestas de los profesores, google y GPT, intentando hacer todo primero por mi cuenta
1. Crea una función que calcule el índice de masa corporal (IMC) de una persona a partir de su altura en metros y peso en kilogramos, que se recibirán como parámetros.
Considerando que el IMC lo obtenemos con el peso dividido en la altura al cuadrado tenemos que:
function calcularIMC(altura, peso, mostrar = false) {
if (typeof altura !== 'number' || typeof peso !== 'number' || altura <= 0 || peso <= 0) {
if (mostrar) asignarTextoElemento('p', 'Error: altura y peso deben ser números positivos.');
return null;
}
let imc = peso / (altura * altura);
imc = Math.round(imc * 100) / 100;
if (mostrar) asignarTextoElemento('p', `IMC: ${imc}`);
return imc;
2. Crea una función que calcule el valor del factorial de un número pasado como parámetro.
function factorial(n) {
if (!Number.isInteger(n) || n < 0) return null;
if (n === 0 || n === 1) return 1;
let res = 1;
for (let i = 2; i <= n; i++) res *= i;
return res;
}
3. Crea una función que convierta un valor en dólares, pasado como parámetro, y devuelva el valor equivalente en reales(moneda brasileña,si deseas puedes hacerlo con el valor del dólar en tu país). Para esto, considera la cotización del dólar igual a R$4,80.
function convertirDolarAReal(dolares, cotizacion = 4.80) {
if (typeof dolares !== 'number' || dolares < 0) return null;
let reales = dolares * cotizacion;
reales = Math.round(reales * 100) / 100;
return reales;
}
**4. Crea una función que muestre en pantalla el área y el perímetro de una sala rectangular, utilizando la altura y la anchura que se proporcionarán como parámetros.
**
function salaRectangular(alto, ancho, mostrar = false) {
if (typeof alto !== 'number' || typeof ancho !== 'number' || alto <= 0 || ancho <= 0) {
if (mostrar) asignarTextoElemento('p', 'Error: alto y ancho deben ser números positivos.');
return null;
}
let area = alto * ancho;
let perimetro = 2 * (alto + ancho);
if (mostrar) asignarTextoElemento('p', `Rectángulo — Área: ${area}, Perímetro: ${perimetro}`);
return { area, perimetro };
}
5. Crea una función que muestre en pantalla el área y el perímetro de una sala circular, utilizando su radio que se proporcionará como parámetro. Considera Pi = 3,14.
function salaCircular(radio, mostrar = false) {
if (typeof radio !== 'number' || radio <= 0) {
if (mostrar) asignarTextoElemento('p', 'Error: radio debe ser un número positivo.');
return null;
}
const PI = 3.14;
let area = PI * radio * radio;
let perimetro = 2 * PI * radio;
area = Math.round(area * 100) / 100;
perimetro = Math.round(perimetro * 100) / 100;
if (mostrar) asignarTextoElemento('p', `Círculo — Área: ${area}, Perímetro: ${perimetro}`);
return { area, perimetro };
}
6. Crea una función que muestre en pantalla la tabla de multiplicar de un número dado como parámetro.
function tablaMultiplicar(n, hasta = 10, mostrar = false) {
if (typeof n !== 'number' || !Number.isFinite(n) || !Number.isInteger(hasta) || hasta <= 0) {
if (mostrar) asignarTextoElemento('p', 'Error: parámetros inválidos para la tabla.');
return null;
}
let tabla = [];
for (let i = 1; i <= hasta; i++) {
tabla.push(`${n} x ${i} = ${n * i}`);
}
if (mostrar) asignarTextoElemento('p', tabla.join('<br>'));
return tabla;
}