No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
14H
59M
20S

Math en JavaScript

3/30
Recursos

Aportes 31

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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

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(鈥渃irculo鈥);

//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(鈥渃irculo鈥);

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");

Primer curso que veo que tiene pocos aportes鈥o le tengan miedo a las matem谩ticas鈥s algo con el cual se tiene que convivir para siempre 馃槄

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

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 鈥渇igura鈥 con el valor 鈥渃irculo鈥, 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 鈥渃alculadora鈥 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))