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

Desafío

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;
}