Está en la página 1de 9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

(index.html)

(index.html)aprendeaprogramar.com(../../index.php)
Cursos gratuitos de programacion de ordenadores, en espaol

Anterior (view.php?id=210)

Posterior (view.php?id=211)

8. Las matemticas y Java

Curso: Introduccin a Java (../../course/view.php?id=14)

8. Las Matemticas y Java.


Ya habamos visto las operaciones matemticas bsicas: suma, resta, divisin, multiplicacin.
Tambin alguna menos habitual, como el resto de una divisin.
Pero existen otras operaciones matemticas que son muy habituales: races cuadradas,
potencias, logaritmos, funciones trigonomtricas (seno, coseno, tangente), generacin de
nmeros al azar... Todas estas posibilidades estn accesibles a travs de la clase
java.lang.Math. Vamos a comentar alfabticamente las ms importantes y luego veremos un
ejemplo de su uso:
Funcin

Significado

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

1/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

abs()

Valor absoluto

acos()

Arcocoseno

asin()

Arcoseno

atan()

Arcotangente entre -PI/2 y PI/2

atan2( , )

Arcotangente entre -PI y PI

ceil()

Entero mayor ms cercano

cos(double)

Coseno

exp()

Exponencial

floor()

Entero menor ms cercano

log()

Logaritmo natural (base e)

max( , )

Mximo de dos valores

min( , )

Mnimo de dos valores

pow( , )

Primer nmero elevado al segundo

random()

Nmero aleatorio (al azar) entre 0.0 y 1.0

rint(double)

Entero ms prximo

round()

Entero ms cercano (redondeo de la forma


habitual)

sin(double)

sin(double)

sqrt()

Raz cuadrada

tan(double)

Tangente

toDegrees(double) Pasa de radianes a grados (a partir de Java 2)


toRadians()

Pasa de grados a radianes (a partir de Java 2)

Tambin hay disponibles dos constantes: PI (relacin entre el dimetro de una circunferencia
y su longitud) y E (base de los logaritmos naturales).
Las funciones trigonomtricas (seno, coseno, tangente, etc) miden en radianes, no en grados,

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

2/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

de modo que ms de una vez deberemos usar "toRadians" y "toDegrees" si nos resulta ms
cmodo pensar en grados.
Y un ejemplo, agrupando estas funciones por categoras, sera:

//Matem.java
//EjemplodematemticasdesdeJava
//IntroduccinaJava,NachoCabanes

classMatem{

publicstaticvoidmain(Stringargs[]){

System.out.print("2+3es");
System.out.println(2+3);
System.out.print("2*3es");
System.out.println(2*3);
System.out.print("23es");
System.out.println(23);
System.out.print("3/2es");
System.out.println(3/2);
System.out.print("3,0/2es");
System.out.println(3.0/2);
System.out.print("Elrestodedividir13entre4es");
System.out.println(13%4);

System.out.print("Unnmeroalazarentre0y1:");
System.out.println(Math.random());
System.out.print("Unnmeroalazarentre50y150:");
System.out.println((int)(Math.random()*100+50));
System.out.print("Unaletraminsculaalazar:");
System.out.println((char)(Math.random()*26+'a'));

System.out.print("CosenodePIradianes:");
System.out.println(Math.cos(Math.PI));
System.out.print("Senode45grados:");
System.out.println(Math.sin(Math.toRadians(45)));
System.out.print("Arcocuyatangentees1:");
System.out.println(Math.toDegrees(Math.atan(1)));

System.out.print("Razcuadradade36:");
System.out.println(Math.sqrt(36));

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

3/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

System.out.print("Cincoelevadoalcubo:");
System.out.println(Math.pow(5.0,3.0));
System.out.print("Exponencialde2:");
System.out.println(Math.exp(2));
System.out.print("Logaritmode2,71828:");
System.out.println(Math.log(2.71828));

System.out.print("Mayorvalorentre2y3:");
System.out.println(Math.max(2,3));
System.out.print("Valorabsolutode4,5:");
System.out.println(Math.abs(4.5));
System.out.print("Menorenteromscercanoa4,5:");
System.out.println(Math.floor(4.5));
System.out.print("Mayorenteromscercanoa4,5:");
System.out.println(Math.ceil(4.5));
System.out.print("Redondeando4,5conROUND:");
System.out.println(Math.round(4.5));
System.out.print("Redondeando4,5conROUND:");
System.out.println(Math.round(4.5));
System.out.print("Redondeando4,6conRINT:");
System.out.println(Math.rint(4.6));
System.out.print("Redondeando4,5conRINT:");
System.out.println(Math.rint(4.5));

Su resultado es:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

4/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

2+3es5
2*3es6
23es1
3/2es1
3,0/2es1.5
Elrestodedividir13entre4es1
Unnmeroalazarentre0y1:0.9775498588615054
Unnmeroalazarentre50y150:71
Unaletraminsculaalazar:u
CosenodePIradianes:1.0
Senode45grados:0.7071067811865475
Arcocuyatangentees1:45.0
Razcuadradade36:6.0
Cincoelevadoalcubo:125.0
Exponencialde2:7.38905609893065
Logaritmode2,71828:0.999999327347282
Mayorvalorentre2y3:3
Valorabsolutode4,5:4.5
Menorenteromscercanoa4,5:5.0
Mayorenteromscercanoa4,5:4.0
Redondeando4,5conROUND:4
Redondeando4,5conROUND:5
Redondeando4,6conRINT:5.0
Redondeando4,5conRINT:4.0

Ejercicio propuesto 8.1: Crea un programa que muestre en pantalla el resultado de lanzar
dos dados (dos nmeros del 1 al 6).
Ejercicio propuesto 8.2: Crea un programa que d al usuario la oportunidad de adivinar un
nmero del 1 al 100 en un mximo de 6 intentos. En cada pasada deber avisar de si se ha
pasado o se ha quedado corto. El nmero a adivinar se debe generar al azar.
Ejercicio propuesto 8.3: Crea un programa que cree un array de 5x5 caracteres, lo rellene con
puntos en todas las posiciones y luego escriba una O en los puntos que cumplan y = x2. (Nota:
puedes calcular el cuadrado usando "pow" o simplemente con "x*x") Deber verse algo
como:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

5/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

..O..
.....
.....
.O...
O....

Ejercicio propuesto 8.4: Crea un programa que calcule y muestre el coseno de los ngulos
que van de 0 a 90 grados (ambos inclusive), de 5 en 5 grados.
Ejercicio propuesto 8.5: Crea un programa que pida al usuario un nmeros real "a" y un
nmero entero "b". Deber calcular la raz de orden "b" del nmero "a". Por ejemplo, si los
nmeros son 3 y 4, deberas calcular (y mostrar) la raz cuarta de 3. Deber repetirse hasta
que el nmero "a" sea 0. Si el nmeros "a" es negativo y Y "b" es par se deber mostrar un
aviso "No se puede calcular esa raz". (Pista: recuerda que para calcular la raz "b" del nmero
"a", basta con elevar "a" a "1/b".).
Actualizado el: 04-02-2015 16:05

Anterior (view.php?id=210)

Posterior (view.php?id=211)

Buscar...

En los foros...

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

6/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

03-04-2015 09:16 ayuda con string [C] (../../mod/forum/discuss.php?d=1832)


01-04-2015 19:42 Q' Operacin es - Multiplicar con sumas [Pascal]
(../../mod/forum/discuss.php?d=1830)
01-04-2015 19:39 Guardar datos de consultas [C#] (../../mod/forum/discuss.php?
d=1831)
01-04-2015 18:06 problema en pascal - error de compilacin [Pascal]
(../../mod/forum/discuss.php?d=1790)
31-03-2015 23:26 ayuda con try catch [C#] (../../mod/forum/discuss.php?d=1823)
(Anteriores...) (../../novedadesForos.php)

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

7/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

Tarjetas
Animadas
Gratis
Descargue la
Barra de
Herramientas y
Enve Tarjetas
Virtuales
Online.

Novedades en el sitio
22-03-2015: Puedes votar cuando te guste una respuesta (../../novedades.php)
17-10-2014: Se pueden hacer tests de repaso (../../novedades.php)
23-09-2014: Versin actualizada del tutorial de C# (../../novedades.php)

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

8/9

3/4/2015

8.LasmatemticasyJavaAprendeAProgramar.com

19-07-2014: Versin actualizada del curso de Pascal (../../novedades.php)


08-07-2014: Disponible Twitter y Google Plus (../../novedades.php)
08-03-2014: Tutorial "JavaScript para impacientes" (../../novedades.php)
23-02-2014: Revisin del curso de Pascal (../../novedades.php)
27-01-2014: El curso de Python llega al tema 6 (../../novedades.php)
26-12-2013: Referencia totalmente operativa (../../novedades.php)
26-11-2013: Rediseo "responsive" (../../novedades.php)

En los foros... (../../novedadesForos.php)


Por qu? (../../porque.php)
Preguntas Frecuentes (../../preguntasFrecuentes.php)
Referencia (../../referencia/)
Fuentes (../../fuentes/)
Novedades (../../novedades.php)
Prximos cambios (../../proximo.php)
Seguir
(http://twitter.com/intent/follow?source=followbutton&variant=1.0&screen_name=AprendeAprog)
(https://plus.google.com/+aprendeaprogramar/posts)
Contactar (../../contactar.php)
Quines somos? (../../quienes.php)
AprendeAprogramar.com - Copyright (c) 2006-2014

http://www.aprendeaprogramar.com/mod/resource/view.php?id=214

9/9