No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Math en JavaScript

3/30
Recursos

Aportes 33

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Notes…

// Circle
console.group('Circle');
const circleRadio = 5;
const circleDiameter = circleRadio * 2;

const circlePerimeter = circleDiameter * Math.PI;
const circleArea = (circleRadio * circleRadio) * Math.PI;
// const circleArea2 = (circleRadio ** 2) * Math.PI;
// const circleArea3 = Math.pow(radio,2) * Math.PI;

console.log({circleRadio, circleDiameter, circlePerimeter, circleArea});

function circleCalcs(radio){
    return{
        diameter: radio * 2,
        perimeter: ((radio * 2) * Math.PI).toFixed(3),
        area: (Math.pow(radio,2) * Math.PI).toFixed(3)
    }
}
console.groupEnd('Circle');

Pero no dijiste el atajo para sacar varios cursores a la vez -_-

Quise agragarle al reto un poco de DOM con JS para hacerlo mas practico

class Rectángulo {
    constructor(lado, base){
        this.lado = lado;
        this.base = base;
    }
    areaCuadrado(){
        return this.lado * this.base;
    }
    perimetroCuadrado(){
        return (this.lado * 2) + (this.base * 2);
    }
}
class Circulo{
    constructor(radio){
        this.pi = 3.1416
        this.radio = radio;
    }
    areaCirculo(){
        return this.pi * (this.radio ** 2);
    }
    perimetroCirculo(){
        return 2 * (this.pi * this.radio);
    }
    diametro(){
        return 2 * this.radio;
    }
}
class Triangulo{
    constructor(a,b,c){
        this.a = a;
        this.b = b;
        this.c = c;
    }
    semiperimetro(){
        return (this.a + this.b + this.c) / 2;
    }
    areaSinAltura(){
        let area = (this.semiperimetro() * (this.semiperimetro() - this.a) * (this.semiperimetro() - this.b) * (this.semiperimetro() - this.c)); 
        return Math.pow(area, 1/2).toFixed(2);
    }
    areaTrianguloRectangulo(){
        return (this.a * this.b) / 2;
    }
}

function ejecutarRectangulo(options){
    const lado = document.getElementById('ladoBase');
    const base = document.getElementById('lado');
    const resultadoRectangulo = document.getElementById('resultadoRectangulo');
    const rectangulo = new Rectangulo(Number(base.value), Number(lado.value));
    switch (options){
        case 1:
            resultadoRectangulo.innerHTML = rectangulo.areaCuadrado() + ' CM2 ';
            break;
        case 2:
            resultadoRectangulo.innerHTML = rectangulo.perimetroCuadrado() +' CM2 ';
            
            break;
        default:
            resultadoRectangulo.innerHTML = 'datos incorrectos';
            break;
    }
}

function ejecutarCirculo(options){
    const radio = document.getElementById('radio');
    const resultadoCirculo = document.getElementById('resultadoCirculo');
    const circulo = new Circulo(Number(radio.value));
    switch (options){
        case 1:
            resultadoCirculo.innerHTML = circulo.areaCirculo() + ' CM2 '; 
            break;
        case 2:
            resultadoCirculo.innerHTML = circulo.perimetroCirculo() + ' CM2 ';
            break;
        case 3:
            resultadoCirculo.innerHTML = circulo.diametro() + ' CM2 ';
            break;
        default:
            resultadoCirculo.innerHTML = 'datos incorrectos';
            break;
    }
}

function ejecutarTriangulo(options){
    const ladoA = document.getElementById('ladoA');
    const ladoB = document.getElementById('ladoB');
    const ladoC = document.getElementById('ladoC');
    const resultadoTriangulo = document.getElementById('resultadoTriangulo');
    const triangulo = new Triangulo(Number(ladoA.value), Number(ladoB.value), Number(ladoC.value));
    switch (options) {
        case 1:
            resultadoTriangulo.innerHTML = triangulo.semiperimetro() + ' CM2 ';
            break;
        case 2:
            resultadoTriangulo.innerHTML = triangulo.areaSinAltura() + ' CM2 ';
            break;
        case 3:
            resultadoTriangulo.innerHTML = triangulo.areaTrianguloRectangulo() + ' CM2 ';
            break;
        default:
            resultadoTriangulo.innerHTML = 'datos incorrectos';
            break;
    }
}

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Taller practico de matematicas con JS</title>
    <link rel="stylesheet" href="./main.css">
</head>
<body>
    <header>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="./geometria/geometria.html">Geometria</a></li>
                <li><a href="./finanzas/finanzas.html">Finanzas</a></li>
                <li><a href="#">Estadistica</a></li>
                <li><a href="#">Analisis de salarios</a></li>
            </ul>
        </nav>
    </header>
    <main>
        <section></section>
    </main>
    <footer>
        <section></section>
    </footer>
    <script src="./main.js"></script>
</body>
</html>

Usando el método .exp y .random el usuario puede generar un número elevado a la base de Euler y a la vez multiplicarlo por un número aleatorio generado entre 0 y 1. Esto es de utilidad si queremos una app de cálculos financieros.
.


function calculateEuler(number) {
    return {
        Exponentiation: Math.exp(number).toFixed(2),
        RandomEuler: (Math.random() * Math.exp(number)).toFixed(3),
    }
}

.
Refs:

Les comparto mis apuntes. 😄

Math

Math.pow()

Sintaxis

const variableName = Math.pow(base, index);

Nos permite realizar la operación matemática de potencia.

Otra forma de efectuar la operación matemática de potencia

const variableName = base ** index

Math.PI

Nos permite obtener el número π, en donde obtenemos los quince primeros decimales 3.141592653589793.

Redondeo con decimales

toFixed()

Para redondear con los decimales que deseemos podemos el método toFixed(). Este nos devolverá un string, así que si queremos mantener nuestro tipo de dato original, número, tendremos que aplicar el método parseFloat().

Sintaxis

irrationalNumber.toFixed(decimals) // Return string
parseFloat(irrationalNumber.toFixed(decimals)) // Return number

Símbolo de multiplicación * , se llama asterisco.

Por aca comparto mi version de lo visto en la clase

const calculateCircleDiameter = radius => radius * 2
const calculateCirclePerimeter = diameter => diameter * Math.PI
const calculateCircleArea = radius => Math.pow(radius, 2) * Math.PI

const calculateCircle = (radius) => {
  const diameter = calculateCircleDiameter(radius)
  const perimeter = calculateCirclePerimeter(diameter)
  const area = calculateCircleArea(radius)

  return {
    radius,
    diameter,
    perimeter,
    area
  }  
}

Yo lo practiqué con clases.

class Square {
    constructor(_side) {
        this.side = _side;
    }
    perimeter() { return this.side * 4; }
    area() { return Math.pow(this.side, 2); }
}

class Triangle {
    constructor({ side1, side2, base }) {
        this.side1 = side1;
        this.side2 = side2;
        this.base = base;
    }
    perimeter() { return this.side1 + this.side2 + this.base; }
    area(heigth) {
        //Si el usuario no ingresa una altura.
        let semiP = this.perimeter() / 2;
        let op = semiP * (semiP - this.side1) * (semiP - this.side2) * (semiP - this.base);
        return !heigth ? Math.sqrt(op) : (heigth * this.base) / 2;
    }
}

class Circle {
    constructor(_radio) {
        this.radio = _radio;
    }
    perimeter() { return this.radio * 2 * Math.PI; }
    area() { return Math.pow(this.radio, 2) * Math.PI; }
}

Primer curso que veo que tiene pocos aportes…no le tengan miedo a las matemáticas…es algo con el cual se tiene que convivir para siempre 😅

Usando clases

class Circle {
    constructor({
        radio,
    }) {
        this.radio = radio;
        this.diameter = this.radio * 2;
    }

    getCircumference() {
        const circumference = this.diameter * Math.PI;
        return circumference;
    }

    getArea() {
        const area = Math.pow(this.radio, 2) * Math.PI;
        return area;
    }
}

const myCircle = new Circle({
    radio: 3,
})

console.group("Circle");
console.log({
    myCircle,
    Circumference: myCircle.getCircumference().toFixed(4),
    Area: myCircle.getArea().toFixed(4),
});
console.groupEnd();

console.group(“circulo”);

//radio del circulo
const radioCirculo = 3;

//diamtetro del Circulo
const diamtetroCirculo = radioCirculo * 2;

//Pi
const PI = 3.1415;

// circunferencia del circulo
const circunferencia = diamtetroCirculo * PI;

// area del circulo
const areaCirculo = (radioCirculo ** 2) * PI;

function calcularperimetroCirculo(radio,PI){
const diamtetro = radio * 2;
const radioCirculo = Math.pow(radio, 2);
return{
circunferencia:diamtetro * PI,
area:radioCirculo * PI,

    //mi forma mas larga pero funciona

// diamtetro: radio * 2,
// circunferencia: (radio * 2) * PI,
// area: (radio ** 2) * PI,
};

}

console.log({
radioCirculo,
diamtetroCirculo,
PI,
circunferencia,
areaCirculo
})

console.groupEnd(“circulo”);

Mis notas de VS por si le sirven a alguien:

console.group("Circulo");

const radioCirculo = 3;
const diametroCirculo = radioCirculo*2;
const PI =3.1416;

const perimetroCirculo = diametroCirculo * PI;
const areaCirculo = PI * (radioCirculo**2); // Con dos asteriscos "**", podemos decir que algo esta a la potencia.

console.log({
    radioCirculo,
    diametroCirculo,
    PI,
    perimetroCirculo,
    areaCirculo
})

function calcularCirculo (radio) {
    const diametro = radio * 2;
    const radioAlCuadrado = Math.pow(radio, 2); //Math es un objeto con el que podemos hacer distintos cálculos matemáticos, en este caso .pow es para potencias.

    return {
        perimetro: diametro * Math.PI, // Math.PI nos da el valor de PI, sin necesidad de que nosotros lo declaremos.
        area: radioAlCuadrado * Math.PI.toFixed(4) // toFixed nos da a elegir la cantidad de decimales que queramos.
    }
}

Notas de la clase ✍🏻

// Código del círculo
console.group("Círculos");

// Radio
const radioCirculo = 4;

// Diámetro
const diametroCirculo = radioCirculo * 2;

// PI
const PI = Math.PI;

// Circunferencia
const perimetroCirculo = diametroCirculo * PI;

// Área
const areaCirculo = radioCirculo ** 2 * PI;

function calcularCirculo(radio) {
  const radius = radio;
  const diametro = radio * 2;
  const PI = Math.PI;
  const circunferencia = diametro * PI;
  const area = radio ** 2 * PI;
  return { radius, diametro, PI, circunferencia, area };
}

console.log({
  radioCirculo,
  diametroCirculo,
  PI,
  perimetroCirculo,
  areaCirculo,
});

console.groupEnd("Círculos");

Diferencia de Math.ceil y Math.round

Math.round permite obtener el número entero resultado del redondeo de un número. Si el número es menor a .5, redondeará el número entero anterior y si es mayor, al número entero posterior.

Math.ceil permite obtener el número entero mayor de un número.

<function circuloPerimetro(){
  //const pi = 3.1416;
  const radio = prompt("Digita un radio: ");
  const diametro = radio * 2;

  const perimetro = Math.PI * diametro;
  console.log("El perimetro es: " + perimetro);
}

circuloPerimetro();

function circuloArea(){
  const radio =  prompt("Digita un radio: ");
  const area = Math.PI * Math.pow(radio, 2);
  console.log("El area es: " + area);
}

circuloArea();> 
//Ciculo
function calcularCirculo(radioCirculo) {
  return {
    diametroCirculo: radioCirculo * 2,
    circunferencia: diametroCirculo * Math.PI,
    areaCirculo: Math.pow(radioCirculo, 2) * Math.PI,
  };
}
console.log(calcularCirculo(3));
```js console.group('Circulo') let radioCirculo = 3; function calcularDiametroCirculo(radio) { return radio * 2; } function calcularPerimetroCirculo(radio) { const diametro = calcularDiametroCirculo(radio); return Math.PI * diametro; } function calcularAreaCirculo(radio) { return Math.PI * (radio * radio); } const diametro = calcularDiametroCirculo(radioCirculo); const perimetro = calcularPerimetroCirculo(radioCirculo); const area = calcularAreaCirculo(radioCirculo); console.log ( { radioCirculo, area, diametro, perimetro } ) console.groupEnd('Circulo') ```*console*.group('Circulo') let radioCirculo = 3; function calcularDiametroCirculo(radio) {    return radio \* 2;} function calcularPerimetroCirculo(radio) {    const diametro = calcularDiametroCirculo(radio);    return *Math*.PI \* diametro;} function calcularAreaCirculo(radio) {    return *Math*.PI \* (radio \* radio);} const diametro = calcularDiametroCirculo(radioCirculo);const perimetro = calcularPerimetroCirculo(radioCirculo);const area = calcularAreaCirculo(radioCirculo); *console*.log (    {        radioCirculo,         area,         diametro,         perimetro     })*console*.groupEnd('Circulo')
*console*.group('Circulo') let radioCirculo = 3; function calcularDiametroCirculo(radio) {    return radio \* 2;} function calcularPerimetroCirculo(radio) {    const diametro = calcularDiametroCirculo(radio);    return *Math*.PI \* diametro;} function calcularAreaCirculo(radio) {    return *Math*.PI \* (radio \* radio);} const diametro = calcularDiametroCirculo(radioCirculo);const perimetro = calcularPerimetroCirculo(radioCirculo);const area = calcularAreaCirculo(radioCirculo); *console*.log (    {        radioCirculo,         area,         diametro,         perimetro     })*console*.groupEnd('Circulo')```js ```

Una ayudita extra para todo esto de JS

https://overapi.com/javascript

Integración donde pregunta a traés de un prompt que es lo que desea hacer y ejecuta según el comando.

let calcular;

do {
    while (true) {
        calcular = prompt(`Qué deseas ejecutar?
                            1. Perímetro de un Cuadrado.
                            2. Área de un Cuadrado.
                            3. Perímetro de un Triángulo.
                            4. Área de un Triángulo.
                            5. Circunferencia de un Circulo.
                            6. Área de un Circulo.
                            0. Salir.`);

        calcular = parseInt(calcular);

        if (calcular >= 0 && calcular <= 6) {
            break; 
        } else {
            alert('El código digitado es inválido, por favor verifique e intente nuevamente.');
        }
    }

    switch (calcular) {
        case 1:
            PerimetroCuadrado();
            break;
        case 2:
            AreaCuadrado();
            break;
        case 3:
            PerimetroTriangulo();
            break;
        case 4:
            AreaTriangulo();
            break;
        case 5:
            CircunferenciaCirulo();
            break;
        case 6:
            AreaCirculo();
            break;
        case 0:
            alert('Ha salido.');
            window.close();
            break;
    }
} while (calcular !== 0);

function PerimetroCuadrado() {
    let ladoCuadrado = prompt(`Ingrese el lado de un cuadrado en cm.`);
    ladoCuadrado = parseInt(ladoCuadrado);
    const perimetroCuadrado = ladoCuadrado * 4;
    alert('El perímetro del cuadrado es: ' + perimetroCuadrado + ' cm.');
}

function AreaCuadrado() {
    let ladoCuadrado = prompt(`Ingrese el lado de un cuadrado en cm.`);
    ladoCuadrado = parseInt(ladoCuadrado);
    const areaCuadrado = ladoCuadrado * ladoCuadrado;
    alert('El área del cuadrado es: ' + areaCuadrado + ' cm².');
}

function PerimetroTriangulo() {
    let ladoTriangulo1 = prompt(`Ingrese el lado izquierdo del triángulo en cm.`);
    let ladoTriangulo2 = prompt(`Ingrese el lado derecho del triángulo en cm.`);
    let ladoTrianguloBase = prompt(`Ingrese la base del triángulo en cm.`);

    ladoTriangulo1 = parseInt(ladoTriangulo1);
    ladoTriangulo2 = parseInt(ladoTriangulo2);
    ladoTrianguloBase = parseInt(ladoTrianguloBase);
    
    const perimetroTriangulo = ladoTriangulo1 + ladoTriangulo2 + ladoTrianguloBase;
    alert('El perímetro del triángulo es: ' + perimetroTriangulo + ' cm.');
}

function AreaTriangulo() {
    let ladoTrianguloBase = prompt(`Ingrese la base del triángulo en cm.`);
    let alturaTriangulo = prompt(`Ingrese la altura del triángulo en cm.`);

    ladoTrianguloBase = parseInt(ladoTrianguloBase);
    alturaTriangulo = parseInt(alturaTriangulo);
    
    const areaTriangulo = (ladoTrianguloBase * alturaTriangulo) / 2;
    alert('El área del triángulo es: ' + areaTriangulo + ' cm².');
}

function CircunferenciaCirulo(){
    let radio = prompt(`Ingrese el radio del circulo en cm.`);
    radio = parseInt(radio);
    const diametroCirculo = radio * 2;
    const circunferencia = diametroCirculo * Math.PI;
    alert('La circunferencia del circulo es: ' + circunferencia.toFixed(2));
}

function AreaCirculo(){
    let radio = prompt(`Ingrese el radio del circulo en cm.`);
    radio = parseInt(radio);
    const areaCirculo = Math.pow(radio, 2) * Math.PI;
    alert('El área del circulo es: ' + areaCirculo.toFixed(2));
}

**Math.clz32(x) **
Devuelve el número de ceros iniciales de un entero de 32 bits

Math.clz32(45)
Resultado: 26

Muy buenaaaa

.

Decidí hacerlo con una función:

unction circle(radio) {
    const perimeter = 2 * radio * Math.PI;
    const area = (radio ** 2) * Math.PI;

    const result = `Circle radio: ${radio} | perimeter: ${perimeter}, area: ${area}`;
    console.log(result);
}
circle(7)
//Circunferencia y area del circulo 
        console.group('circulo')
        const radio = 9;
        const calcularCirculo = (radio) => {
            const diametro = radio * 2;
            const radioAlCuadrado = Math.pow(radio, 2); //math.pow nos ayuda a potenciar un numero ya sea al cuadrado o al cubo o al numero que queramos
            console.log({
                    cicurferencia : diametro * Math.PI,
                    area : radioAlCuadrado * Math.PI,
            })    
        }
        calcularCirculo(radio)
        console.groupEnd('circulo')

💪 Documentación de math

Propiedades

Math.imul(a,b);
console.log(Math.imul(7, 5));
console.log(Math.imul(0xffffffff, 5));

Es un método super sencillo porque multiplica los parámetros unicamentro, lo interesante es el tipo de datos que puede aceptar ya que son similares a las direcciones de la memoria. Un uso practico puede ser simular el funcionamiento de la Ram o también si nuestros código tiene interacción con algún dispositivo embebido esto puede ser de ayuda.

Para profundizar en las funciones Math
Funciones Math en JavaScript explicadas

const calculadora = (function() {
    const funciones = {
        cuadrado: (lado) => {
            return {
                area: lado * lado,
                perimetro: lado * 4
            };
        },
        triangulo: (base, altura) => {
            return {
                area: (base * altura) / 2,
                perimetro: base + altura + Math.sqrt(base ** 2 + altura ** 2)
            };
        },
        rectangulo: (base, altura) => {
            return {
                area: base * altura,
                perimetro: 2 * (base + altura)
            };
        },
        circulo: (radio) => {
            return {
                area: Math.PI * radio ** 2,
                perimetro: 2 * Math.PI * radio
            }
        }
    };
    return { 
        calcular: (figura, ...args) => funciones[figura](...args) 
    };
})();

En este ejemplo, estamos asignando la variable “figura” con el valor “circulo”, y utilizando el valor del radio para calcular el area y perimetro del circulo, y accediendo a la función de cálculo correspondiente en el closure “calculadora” utilizando la propiedad calcular, esto nos devuelve un objeto con las propiedades area y perimetro.

De esta forma, se ha agregado la funcionalidad para calcular el área y perímetro de un círculo a la calculadora y se puede seleccionar esta opción de manera explícita.

let figura = "circulo";
let radio = 7;
let resultado = calculadora.calcular(figura, radio);
console.log(resultado);```

Formula del Circulo

Revisando me parecio super interesante esta por la sintaxis

Math.SQRT1_2

Raíz cuadrada de 1/2; Equivalentemente, 1 sobre la raíz cuadrada de 2, aproximadamente 0.707.

Eh utilizado Math en alguna ocación pero no se me ocurrio que funcione así, siempre es bueno basarnos en documentacion oficial…! 🚀

Yo lo quice hacer de esta manera

////Super prototipo math
///Medidas del Cuadrado
let lado
const cuadrado=(lado)=>{
    return{
        permimetro:lado*4,
        area:lado*2
    };
}
console.log('las medidas del Cuadrado son:',cuadrado(4));

///Medidas del Triangulo
let ladoUno; 
let ladoDos; 
let base; 
let altura
const triangulo=(ladoUno,ladoDos,base,altura)=>{
    return{
        perimetro: ladoUno+ladoDos+base,
        area: (base*altura)/2
    };
}
console.log('las medidas del Triangulo son:',triangulo(2,2,2,5));

//Medidas del Circulo
const circulo=(radio)=>{
    return{
        diametro:radio*2,
        circunferencia: (radio**2)*(Math.PI)
    }
}
console.log('las medidas del Triangulo son:', circulo(5))