Codificación aprenderaprogramar.com: CU01165E
MATH JAVASCRIPT
JavaScript nos provee de un objeto predefinido con propiedades y métodos útiles de cara a realizar operaciones matemáticas: el objeto Math. Gracias a este objeto podemos acceder a constantes de uso habitual como el número pi, o realizar cálculos trigonométricos, redondeos, logaritmos, potencias, etc.
La precisión de los resultados obtenidos con el objeto Math puede diferir según las características y configuración local del computador donde se ejecuten los scripts.
PROPIEDADES DEL OBJETO MATH
Las propiedades del objeto Math portan constantes que pueden ser útiles para cálculos matemáticos.
Propiedad (constante matemática) |
Significado aprenderaprogramar.com |
Math.E |
Constante de Euler, base de los logaritmos neperianos, aproximadamente 2.718 |
Math.LN2 |
Valor de logaritmo neperiano de 2, aproximadamente 0.693 |
Math.LN10: |
Valor de logaritmo neperiano de 10, aproximadamente 2.303. |
Math.LOG2E: |
Logaritmo en base 2 de la constante de Euler, aproximadamente 1.443 |
Math.LOG10E |
Logaritmo en base 10 de la constante de Euler, aproximadamente 0.434 |
Math.PI |
Número pi, aproximadamente 3.14159 |
Math.SQRT1_2 |
Raíz cuadrada de 1/2, aproximadamente 0.707 |
Math.SQRT2 |
Raíz cuadrada de 2, aproximadamente 1.414 |
MÉTODOS GENERALES DEL OBJETO MATH
Los métodos del objeto Math son útiles para diversos cálculos matemáticos.
SINTAXIS MÉTODO |
UTILIDAD |
EJEMPLOS aprenderaprogramar.com |
Math.abs(x) |
Devuelve el valor absoluto de x |
'Valor absoluto de -2 es ' +Math.abs(-2); // 2 |
Math.ceil(x) |
Devuelve el entero más próximo mayor o igual al valor de x (redondeo hacia arriba) |
Math.ceil(3.33) // 4 Math.ceil(-3.33) // -3 |
Math.floor(x) |
Devuelve el entero más próximo menor o igual al valor de x (redondeo hacia abajo) |
Math.floor(3.33) // 3 Math.floor(-3.33)) // -4 |
Math.exp(x) |
Devuelve e elevado a x, donde e es la constante de Euler (2.718…) |
Math.exp(1) //2.718281828459045 |
Math.log(x) |
Devuelve el logaritmo neperiano (con base e) de x |
Math.log(Math.E) // 1 |
Math.max(num1, num2, …, numN) |
Devuelve el máximo valor entre una serie de n números |
Math.max(-15, 20) // 20 |
Math.min(num1, num2, …, numN) |
Devuelve el mínimo valor entre una serie de n números |
Math.min(-15, 20) // -15 |
Math.max.apply(null, nombreArray) |
Construcción que permite obtener el máximo valor dentro de un array |
Math.max.apply(null, [3, 44, 2]) //44 |
Math.min.apply(null, nombreArray) |
Construcción que permite obtener el mínimo valor dentro de un array |
Math.min.apply(null, [3, 44, 2]) //2 |
Math.pow(x,y) |
Devuelve el resultado de elevar el número x al exponente y |
Math.pow(2,4) // 16 |
Math.random() |
Devuelve un número pseudo aleatorio comprendido entre 0 (incluido) y 1 (excluido). |
alert('Aleatorio entre 1 y 10: ' +Math.floor((Math.random() * (11 - 1)) + 1)); // Devuelve un entero entre 1 y 10 |
Math.round(x) |
Devuelve el entero más próximo a x. Si se trata de número cuya parte decimal es .5 (equidistante), se redondea al entero superior. |
Math.round(3.33) // 3 |
Math.sqrt(x) |
Devuelve la raíz cuadrada (valor positivo) de x |
Math.sqrt(36) // 6 |
A Math.max y Math.min no se le puede pasar directamente un array tratando de obtener el máximo o mínimo valor dentro del array, porque la función espera un número o serie de números, y no un objeto array.
MÉTODOS TRIGONOMÉTRICOS DEL OBJETO MATH
Las funciones trigonométricas (sin, cos, tan, asin, acos, atan, atan2) operan en radianes. Pi radianes son 180 grados sexagesimales. Para obtener los grados sexagesimales que son numRad radianes usamos una regla de tres: Math.Pi/180 = numRad / numGrad. numGrad = numRad * (180/ Math.PI ).
Para obtener los radianes que son numGrad grados sexagesimales usamos: Math.Pi/180 = numRad / numGrad y obtenemos numRad = numGrad * (Math.Pi/180)
Como mostramos en los ejemplos, se pueden producir errores de precisión (obtener un decimal próximo a cero en lugar de cero, u obtener un número muy grande en lugar de indeterminación por infinito).
SINTAXIS MÉTODO |
UTILIDAD |
EJEMPLOS aprenderaprogramar.com |
Math.sin(x) |
Devuelve el seno de x (donde x está expresado en radianes) |
alert('Seno de Pi es ' +Math.sin(Math.PI)); // Seno de Pi es 1.2246467991473532e-16 * * Error de precisión, resultado real debe ser 0 |
Math.cos(x) |
Devuelve el coseno de x (donde x está expresado en radianes) |
alert ('Coseno de Pi es ' +Math.cos(Math.PI)); // Coseno de Pi es -1 |
Math.tan(x) |
Devuelve la tangente de x (donde x está expresado en radianes) |
alert('Tangente de 90 o Pi es ' +Math.tan(Math.PI/2)); // Tangente de 90 o Pi es 16331239353195370 * * Error de precisión, resultado real debe ser infinito |
Math.asin(x) |
Devuelve el arcoseno de x (donde x está expresado en radianes) |
alert('Arcoseno de 1 es (90 grados o pi/2) ' +Math.asin(1)); //Arcoseno de 1 es 1.5707963267948966 |
Math.acos(x) |
Devuelve el arcocoseno de x (donde x está expresado en radianes) |
alert('Arcocoseno de -1 es ' +Math.acos(-1)); // Arcocoseno de -1 es 3.141592653589793 |
Math.atan(x) |
Devuelve la arcotangente de x (donde x está expresado en radianes) |
alert('Arcotangente de 90 es ' +Math.atan(Infinity)); // Arcotangente de 90 es 1.5707963267948966 (este valor son pi/2) |
Math.atan2(x, y) |
Devuelve la arcotangente del cociente entre x e y (donde el cociente representa un valor en radianes) |
alert('Arcotangente de 9/3 es' +Math.atan2(9, 3)); // Arcotangente de 9/3 es 1.2587542052323633 |
EJERCICIO 1
Crea un script que genere un número aleatorio entre 1 y 100. A continuación debe pedir al usuario que adivine el número. Si el usuario responde un número menor al número aleatorio, debe mostrarse un mensaje “El número es mayor. Inténtelo de nuevo” y dar opción a responder de nuevo. Si el usuario responde un número mayor debe mostrarse un mensaje “El número es menor. Inténtelo de nuevo”. Si el usuario acierta debe mostrarse “Enhorabuena. Ha acertado”. El programa debe terminar si el usuario acierta o si se superan los 30 intentos sin acertar. En caso de superarse los 30 intentos debe mostrarse el mensaje “Ha superado 30 intentos. El programa termina”.
Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com.
EJERCICIO 2
Crea un script que pida al usuario el dato de radio en metros de la base de un cilindro y el dato de altura del cilindro. Utilizando la propiedad Math.PI debe realizarse el cálculo para determinar el área de la base del cilindro y el volumen del cilindro y mostrar estos resultados. Consulta en internet si no recuerdas las fórmulas a aplicar. .
Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com.
EJERCICIO 3
Crea un script que dé lugar a lo siguiente:
a) En un div con id="volador” debes tener una palabra como <<JavaScript>>.
b) Utilizando las funciones trigonométricas, las propiedades de posicionamiento CSS y funciones para control de animaciones/tiempo debes dar lugar a que dicha palabra se desplace desde la izquierda hasta la derecha de la pantalla siguiendo un movimiento sinusoidal (es decir, subiendo y bajando suavemente describiendo ondas).
Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.