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

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

Hola Randy,

¡Qué bueno que estás practicando con estos desafíos! Parece que has hecho un gran trabajo al implementar las funciones solicitadas. Aquí tienes algunas observaciones y consejos sobre tu código:

  1. Función para calcular el IMC:

    • Tu función calcularIMC está bien estructurada. La validación de los parámetros es importante para evitar errores. Además, el uso de Math.round para redondear el resultado es una buena práctica para obtener un valor más legible.
  2. Función para calcular el factorial:

    • Tu implementación del factorial es correcta y eficiente. La verificación de que n sea un entero no negativo es esencial para evitar cálculos incorrectos.
  3. Función para convertir dólares a reales:

    • La función convertirDolarAReal está bien diseñada. La opción de pasar una cotización diferente como parámetro adicional es una buena idea para hacer la función más flexible.
  4. Función para calcular el área y perímetro de una sala rectangular:

    • La función salaRectangular es clara y cumple con lo solicitado. La validación de los parámetros asegura que los cálculos se realicen correctamente.
  5. Función para calcular el área y perímetro de una sala circular:

    • La función salaCircular está bien hecha. El uso de una constante para Pi es una buena práctica para mantener el código limpio y fácil de entender.
  6. Función para mostrar la tabla de multiplicar:

    • La función tablaMultiplicar es funcional y permite mostrar la tabla hasta un número especificado. La opción de mostrar el resultado en pantalla es un buen detalle.

En general, parece que has comprendido bien los conceptos de funciones y validación de parámetros. Continúa practicando y experimentando con diferentes escenarios para fortalecer aún más tus habilidades.

Espero haber ayudado y buenos estudios!