You are on page 1of 36

Ingeniera Elctrica y Electrnica Ingeniera en Sistemas

Programacin I

Unidad Clase Math, operaciones matemticas y aplicaciones

Docente

Ing. Orlando Barcia Ayala

Website: www.orlandobarcia.com E-mail: obarcia@orlandobarcia.com

Cursos online: www.orlandobarcia.com/cursos

AGENDA
Clase Math

Clase Math
Proporciona mtodos que permiten realizar clculos matemticos. Ejemplos:

x2
sen(2 x)
Cmo se realizar esto en Java ?

( x 5)

( x z )

Mtodos de la clase Math


abs( x) exp(x) log (x) pow(x,y) sqrt(x)

sin(x) cos(x) tan(x) acos(x) asin(x) atan(x)

ceil(x) floor(x)

random() round() rint( )

max(x, y) min(x,y)

Llamada a mtodos de Math


punto

Math nombremetodo ( argumento )


Mayscula
apertura cierre

Ejemplos Math.sqrt(9); Math.max(4,6); 2 argumentos

abs(x) Valor absoluto de x


|X| x , x>=0 -x, x<0

Ej. abs(23.7) resultado 23.7 abs(-3.2) resultado 3.2 abs(0) resultado 0

exp(x)
Clculo exponencial

log(x)
Logaritmo natural de x (base e) ln(x)

pow(x,y)
x elevado a y

sqrt(x)
Raiz cuadrada de x

max(x,y)
Mayor de x y y Ej. max(2,4) es 4 Max(6,2) es 6

min(x,y)
Menor de x y y Ej Min(8,3) es 3 Min(4,9) es 4

sin(x) , seno de x cos(x) , coseno de x tan (x), tangente de x

X se expresa en radianes

Funciones inversas asin(y) , arco seno de y acos(y) , arco coseno de y atan(y) , arco tangente de y

ceil(x)
Mtodo cielo. Entero mas pequeo mayor que x Ej. ceil(9.2) es 10.0 ceil(-9.8) es -9.0

floor(x)
Mtodo piso. Entero mas grande menor que x Ej Floor(9.2) es 9.0 Floor (-9.8) es -10.0

5
Math.pow( 32 , Es la solucin? Math.pow( 32 ,

32
1/5 1.0 /5

= 32
); );

1 5

1.2
);

Math.exp( 1.2 ) ; Math.pow( Math.E , 1.2 Math.pow( 2.718 , 1.2 );

Ceil( x )entero menor

4.1 4.2 4.3 4.4

4.5 4.6 4.7 4.8 4.9

5 6 7 8

floor( x )entero mayor

0123

3.1 3.2 3.3 3.4

3.5 3.6 3.7 3.8 3.9

45

Convertir decimal a entero


Si hay una variable decimal

(int)variable ;
Si hay una operacin decimal

(int)operacin

Constantes
Se puede utilizar en vez de los nmeros, NO se puede modificar su valor

Math.E
2.718281 Math.E Igual a Math.exp(1);

Math.PI 3.14159 Math.PI

Ejercicio 1
Calcule

x2

, donde x=7. Muestre el resultado

double x,resultado; x=7; resultado=Math.sqrt(x+2); System.out.println(valor es +resultado);

Ejercicio 2
Calcule sen(3x) , donde el ngulo sea de 90. Muestre el resultado

double x,resultado; x=90*PI/180; //conversin a radianes /2 resultado=Math.sin(3*x); System.out.println(valor es +resultado);

Ejercicio 3
Calcule , donde x sea 2.89, y sea 3.5. x5 Muestre el resultado

double x,resultado; x=2.89; resultado=Math.pow(x+5, 3.5 ); System.out.println(valor es +resultado);

Ejercicio 4
Calcule , donde x sea 5.9, z sea 2.4. Muestre el resultado

( x z )

double x, z, resultado; x=2.89; z= 2.4; resultado=Math.exp(x+z ); System.out.println(valor es +resultado);

Calcule , donde x sea 3.0, w sea 1.2, y sea 5. Muestre el resultado

Ejercicio 5
xw

y2

double x, w, resultado; x=3; w= 1.2; resultado=Math.pow( x+w, (5+2)/3 ); System.out.println(valor es +resultado);

Ejercicio 5
Calcule el resultado

log( x) x3

, donde x sea 7.3. Muestre

double x, resultado; x=7.3; resultado=Math.log(x)+Math.sqrt(x*x*x); resultado=Math.log(x)+Math.sqrt( Math.pow(x,3) ); resultado=Math.log(x)+Math.pow( x, 3/2 ); System.out.println(valor es +resultado);

Ejercicio 6
Calcular la altura h
double r = 50,h,conv;
r = 50.0 metros h

conv= 30*Math.PI/180;
30

h= r* Math.sin(conv);
System.out.println(valor es+h);

Ejercicio 7
Realizar un array en java, que guarde los resultados de los 6 ejercicios anteriores. Qu cambios hay que efectuar? 1. crear un array de 6 elementos, tipo double. double r = new double[6]; 2. reemplazar la variable resultado por los elementos del array
Resultado ejerc 1 Resultado ejerc 2

r[0]= valor r[1]= valor r[5]= valor

Resultado ejerc 6

Mtodo random( )
Math.random( ) Genera entre [0 y 1) Ejm: 0.1 0.02 0.5 0.005 0.999

NUNCA GENERA EL

Simular el lanzamiento de un dado: los nmeros entre 1 y 6 [1,6]


Math.random( ) Math.random( )*6 Math.random( )*6 +1 [ 0, 1 )

0.01 - 0.99999999
0.01 - 5.99999999 1.01 - 6.99999999

[ 0, 6 )
[ 1, 7 )

Math.floor( Math.random( )*6 +1 )

[ 1,6]

1.0 - 6.0

Simular un dado
Generemos entre 1 y 6 (se omite el Math por fines explicativos) Antecedentes random( )* 6
genera entre 0 y 5.999

floor( random( )*6 ) genera entre 0 y 5 Por lo tanto:


floor( random( )*6 +1)

entre 0 y 5.999

Sumo 1 entre 1 y 6.999 floor ( ), entre 1 y 6

Generar un nmero entre a y b


ambos incluidos
[a , b] floor( random() * (b-a+1) + a ) Ejm: entre a=1 y b= 6 floor( random() * (6-1+1) + 1 )

Ejm: entre a=15 y b= 30 floor( random() * (30-15+1) + 15 )

Problemas
Documentos de problemas de Math con random

Math.round( ) Math.rint( )

Uso de Math.round( )
Retorna un entero o entero largo. Aproxima al primer entero si el inmediato decimal es igual o mayor a 5. Si se desea aproximar por decimales hay que aplicar operaciones de multiplicar y dividir

Round( )
5.49567, r= 5 5.1, r= 5 5.5, r= 6 5.49999, r = 5

Uso de Math.rint( )
Retorna un double. Aproxima al primer entero si el inmediato decimal es igual o mayor a 5 siempre y cuando haya mas dgitos despus de el. Si se desea aproximar por decimales hay que aplicar operaciones de multiplicar y dividir

Diferencias
numero 54.1 54.2 54.4 54.49 54.5 54.5XXXXXX 54.6 54.69 54.99 round 54 rint

54 55 55 55

54.0 54.0 55.0 55.0

Bibliografa
DEITEL,Harvey. DEITEL Paul(2004). Cmo programar en Java. Quinta Edicin. Pearson Educacin. Mexico. CEBALLOS, Javier(2006). Curso de Programacin Java 2,. Editorial RAMA. HOLZNER, Steven. (2007)La Biblia de Java 2. Anaya Multimedia. ECKEL, Bruce. (2000)Thinking in Java. Second Edition. Prentice Hall. JALON, Javier et all. (2000.)Aprenda Java como si estuviera en primero. Universidad de Navarra.Escuela de Ingenierios Industriales. JOYANES, L. (2008). Fundamentos de la programacin. Algoritmos y Estructura de Datos, 4 Edicin. Madrid: McGraw-Hill. JOYANES, L.; RODRIGUEZ, L; FERNANDEZ, M. (2003). Fundamentos de programacin Libro de problemas. 2 Edicin. Madrid: McGraw-Hill.