sábado, 30 de julio de 2011

Funciones Matemáticas predefinidas en Java

Java así como otros lenguajes contiene un conjunto de funciones predefinidas que facilitan la obtención de cálculos matemáticos como por ejemplo obtener la raíz cuadráda de un número o elevar otro a cierta potencia, las principales funciones de la clase Math se muestran a continuación.


■ Métodos de Math:

• abs(double): Devuelve el valor absoluto del número entero o decimal.

int n = -5;
System.out.println(Math.abs(n)); // Devolverá 5

• addExact(int, int): Devuelve la suma de dos enteros.

int x = 5, y = 6;
System.out.println(Math.addExact(x, y)); // Devolverá 11

• cbrt(int/double): Devuelve la raíz cúbica de un número.

int x = 2;
double y = 3.14;
System.out.println(Math.cbrt(x)); // Devolverá 1.2599
System.out.println(Math.cbrt(y)); // Devolverá 1.4643

• ceil(double): Redondea el número decimal recibido hacia el siguiente número superior.

double n = 4.3, m = 4.8, o = -4.7;
System.out.println(Math.ceil(n)); // Devolverá 5.0
System.out.println(Math.ceil(m)); // Devolverá 5.0
System.out.println(Math.ceil(o)); // Devolverá -4.0

• exp(int/double): Devuelve la constante de Euler elevada al parámetro indicado.

double x = 5;
System.out.println(Math.exp(x)); // Devolverá 148.4131

• decrementExact(int): Regresa el valor de la variable recibida decrementado en 1.

int x = 5, y = 0;
System.out.println(decrementExact(x)); // Devolverá 4
System.out.println(decrementExact(y)); // Devolverá -1

• floor(double): Redondea el número decimal recibido hacia el siguiente número inferior.

double n = 4.3, m = 4.8, o = -4.7;
System.out.println(Math.floor(n)); // Devolverá 4.0
System.out.println(Math.floor(m)); // Devolverá 4.0
System.out.println(Math.floor(o)); // Devolverá -5.0

• incrementExact(int): Regresa el valor de la variable recibida incrementado en 1.

int x = 5, y = -1;
System.out.println(incrementExact(x)); // Devolverá 6
System.out.println(incrementExact(y)); // Devolverá 0

• log(int/double): Devuelve el logaritmo natural de un número.

double x = 5;
System.out.println(Math.log(x)); // Devolverá 1.609437

• log10(int/double): Devuelve el logaritmo base 10 de un número.

double x = 5;
System.out.println(Math.log10(x)); // Devolverá 0.6989700

• max(int/double, int/double): Devuelve el mayor de los dos valores recibidos, ambos deben ser del mismo tipo.

int a = 5, b = 3;
double c = 4.25, d = 6.3;
System.out.println(Math.max(a, b)); // Devolverá 5
System.out.println(Math.max(c, d)); // Devolverá 6.3

• min(int/double, int/double): Devuelve el menor de los dos valores recibidos, ambos deben ser del mismo tipo.

int a = 5, b = 3;
double c = 4.25, d = 6.3;
System.out.println(Math.min(a, b)); // Devolverá 3
System.out.println(Math.min(c, d)); // Devolverá 4.25

• multiplyExact(int, int): Devuelve el producto exacto de los dos valores recibidos.

int a = 5, b = 10;
System.out.println(Math.min(a, 3)); // Devolverá 15
System.out.println(Math.min(b, a)); // Devolverá 50

• negateExact(int): Devuelve el valor de la variable recibida pero con el signo contrario.

int a = 5, b = -10;
System.out.println(Math.negateExact(a)); // Devolverá -5
System.out.println(Math.negateExact(b)); // Devolverá 10

• pow(a, b): Devuelve el resultado del primer número elevado a la potencia del segundo número, el número resultante será en formato decimal.

int a = 5, b = 2.5;
System.out.println(Math.pow(a, 3)); // Devolverá 125.0
System.out.println(Math.pow(a, b)); // Devolverá 55.9016

• random(): Devuelve un valor aleatorio mayor o igual que 0.0 y menor que 1.0.

System.out.println(Math.random());

• rint(double): Regresa el double redondeado hacia el entero más cercano.

double a = 3.49, b = 3.5;
System.out.println(Math.rint(a)); // Devolverá 3.0
System.out.println(Math.rint(b)); // Devolverá 4.0

• round(double): Devuelve el número redondeado a su valor más cercano positivo o negativo.

double a = 3.49, b = 3.5;
System.out.println(Math.round(a)); // Devolverá 3
System.out.println(Math.round(b)); // Devolverá 4

• signum(double): Determina el signo del número recibido devolviendo -1.0 si es negativo, 1.0 si es positivo, o simplemente 0 si es 0.

double a = -10.0, b = 0, c = 10.0;
System.out.println(Math.signum(a)); // Devolverá -1.0
System.out.println(Math.signum(b)); // Devolverá 0.0
System.out.println(Math.signum(c)); // Devolverá 1.0

• sqrt(): Devuelve la raíz cuadrada de un número en formato double.

int x = 9;
System.out.println(Math.sqrt(x)); // Devolverá 3


► Trigonométricas:

• sin(int/double): Devuelve el seno de un número.

int x = 25;
double y = 3.14;
System.out.println(Math.sin(x)); // Devolverá -0.13235
System.out.println(Math.sin(y)); // Devolverá 0.001592

• cos(int/double): Devuelve el coseno de un número.

int x = 25;
double y = 3.14;
System.out.println(Math.cos(x)); // Devolverá 0.99120
System.out.println(Math.cos(y)); // Devolverá -0.99999

• tan(int/double): Devuelve la tangente de un número.

int x = 25;
double y = 3.14;
System.out.println(Math.tan(x)); // Devolverá -0.13352
System.out.println(Math.tan(y)); // Devolverá -0.00159

• asin(int/double): Devuelve el arco seno de un número.

int x = 1;
double y = 0.8612;
System.out.println(Math.asin(x)); // Devolverá 1.57079632679
System.out.println(Math.asin(y)); // Devolverá 1.03762593845

• acos(): Devuelve el arco coseno de un número.

int x = 1;
double y = 0.8612;
System.out.println(Math.acos(x)); // Devolverá 0.0
System.out.println(Math.acos(y)); // Devolverá 0.533170

• atan(int/double): Devuelve el arco tangente de un número.

int x = 1;
double y = 0.8612;
System.out.println(Math.atan(x)); // Devolverá 0.78539816339
System.out.println(Math.atan(y)); // Devolverá 0.71096041214


■ Extra

• Mostrar la constante de Euler:

System.out.println(E);*

• Mostrar el valor de Pi:

System.out.println(PI);*

*Para esto debemos importar la librería Math:

import static java.lang.Math.*;


■ Llamar una función dentro de otra función

Podemos invocar un método dentro del argumento de otro método siempre y cuando lo que regrese el método de dentro sea del tipo del argumento que el método exterior recibe, por ejemplo:

int x = -81;
double raiz = Math.sqrt(Math.abs(x));

Lo anterior daría como resultado 9.0.

A la variable raiz se le asigna el resultado que regrese la función Math.sqrt la cual recibe como parámetro lo que la función Math.abs devuelva recibiendo como parámetro la variable "x".

Ilustradamente se vería así:



■ Otra forma de invocar la función es directamente al momento de mostrar un resultado en pantalla, ya sea en Consola o en un Form:

     • Consola:
          System.out.println ("El resultado es: " + Math.sqrt(9));

     • Label:
          miJLabel.setText ("El resultado es: " + Math.sqrt(9))

1 comentario: