PROGRAMACIN DE ALGORITMOS
Aplicacin de la Clase Math Para resolver Ecuaciones Cuadrticas
Clase Math
Qu es la clase Math?
Math es una clase definida en Java en donde se encuentran las funciones de clculo matemtico. La funciones con las que se cuenta son las siguientes:
+ Math.E,
Es la constante de la base de logaritmo natural, 2.718281828... Ejercicio: Escribe y evala las siguientes instrucciones: double m; m = Math.E;
Math.PI,
Es la constante 3.1415926... Ejercicio: Escribe y evala la siguiente instruccin: m = Math.PI;
Math.abs(x),
Obtiene el valor absoluto de x. Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.abs(-9); m = Math.abs(9);
Math.ceil(x),
Obtiene el siguiente valor entero de x. Ejercicio: Escribe y evala las siguientes instrucciones: int k; k = Math.ceil(11.4);
+ Obtiene el valor entero anterior a x. Ejercicio: Escribe y evala la siguiente instruccin: k = Math.floor(11.78);
Math.floor(x),
+ Math.round(x),
Obtiene el valor entero ms cercano a x. Ejercicio: Escribe y evala las siguientes instrucciones: k= Math.round(9.75); k = Math.round(9.15);
Clase Math
+ Math.cos(x),
Obtiene el coseno de x (x en radianes). Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.cos(1.0); m = Math.cos(Math.PI);
+ Math.sin(x),
Obtiene el seno de x (x en radianes). Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.sin(1.0); m = Math.sin(Math.PI);
+ Math.tan(x),
Obtiene la tangente de x (x en radianes). Ejercicio: Escribe y evala la siguiente instruccin: m = Math.tan (0.0);
+ Math.log(x),
Obtiene el logaritmo natural de x. (x debe ser mayor que 0). Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.log(1024.0); m = Math.log(Math.E);
+ Math.exp(x),
Regresa , en donde e representa Math.E. Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.exp( 3.0 ); m = Math.exp(Math.log(1024.0));
Clase Math
+ Math.pow(x,y), Obtiene el resultado de elevar x a la potencia y: . x debe ser mayor que 0. Ejercicio: Escribe y evala las siguientes instrucciones: m = Math.pow (2, 3); m = Math.pow(9, 0.5); + Math.sqrt(x), Obtiene la raz cuadrada de x. Ejercicio: Escribe y evala la siguiente instruccin: m = Math.sqrt (16);
+ Math.max(x,y),
Obtiene el nmero mayor entre x y y. Ejercicio: Escribe y evala las siguientes instrucciones: m= Math.max(9.75, 13.54); m = Math.max(8.16, 9.15);
+ Math.min(x,y), Obtiene el nmero menor entre x y y. Ejercicio: Escribe y evala las siguientes instrucciones: m= Math.min(9.75, 13.54); m = Math.min(8.16, 9.15); + Math.random( ), Regresa un nmero aleatorio entre 0 y 1, con una distribucin uniforme. Ejercicio: Escribe y evala las siguientes instrucciones: m= Math.random( ); m = Math.random(
Aplicacin
//INICIO // Para iniciar la siguiente aplicacin es necesario importar la librera import javax.swing.JOptionPane; import javax.swing.JOptionPane; // Escribimos el nombre de la clase que se prevee desarrollar, por lo general esta empieza con mayscula, si posee mas de dos palabras es recomendable que la siguiente tambin lo sea. public class FuncionesCuadrticas { public static void main(String args[]) { // Declaracin de Variables String datoEntrada; // Esta variable es de tipo string por que cuando se pide los datos de los coeficientes de la ecuacin mas adelante, estos son ledos como caracteres y esta variable ser til en su conversin a entero. double a=0, b=0, c=0; // Se han declarado variables de tipo double, por la existencia de double raizUnica, parteReal, parteImaginaria; // trabajar con nmeros decimales, adems de double raizReal1, raizReal2; //los resultados posibles a presentar. //La siguiente linea, muestra Tema de la aplicacin, JOptionPane.showMessageDialog permite mostrar mensajes en una ventana de dialogo asi:
JOptionPane.showMessageDialog(null,"REALIZA CALCULOS CON LA ECUACION CUADRATICA");
Cdigo Utilizado
// Las sentencias Try y Catch, que en espaol significan tratar y atrapar, tienen la funcin de tratar los datos de entrada, y atrapar alguna excepcin. Siempre van juntos, sino no funcionaran correctamente.
try { //JOptionPane.showInputDialog es el Mtodo que mostrar la ventana de ingreso de datos, y solo recepta variables de tipo string, As:
datoEntrada = JOptionPane.showInputDialog("Teclee Coeficiente A: "); //En esta linea se convierte el dato string a un entero, en caso de ingresar una letra mostrar un excepcin. a = Double.parseDouble(datoEntrada); datoEntrada = JOptionPane.showInputDialog("Teclee Coeficiente B: "); b = Double.parseDouble(datoEntrada); datoEntrada = JOptionPane.showInputDialog("Teclee Coeficiente C: "); c = Double.parseDouble(datoEntrada);
} catch (NumberFormatException nfe) // Existen algunas excepsiones entre las mas conocidas se encuentran : InputMismatchException, Exception, ArithmeticException, etc. { JOptionPane.showMessageDialog(null,"Error, ha ingresado una letra, el valor no es vlido"); //Si se produce el error al convertir el dato a entero se mostrar una ventana similar a esta: }
Cdigo Utilizado
//Verifica si los datos ingresados coinciden con races nicas, races complejas o reales, utilizando la clase math.pow podemos obtener fcilmente la potencia a la n de cualquier valor. Recordemos siempre que primero colocamos la base y luego el exponente as: Math.pow(base,exponente) if ((Math.pow(b,2)-4*a*c) == 0) { raizUnica = b/(2*a); //Cuando presentamos mensajes o mostramos resultados en ventanas es muy comn usar saltos de lneas \n. Tambien mostrar resultados finales asi: +result+. JOptionPane.showMessageDialog(null,"Tiene raz nica\nLa Raz es : " + raizUnica); //El resultado de la lnea anterior resulta:
//Si la anterior condicin no se cumpli se pasa a la siguiente, la cual nos calcula races complejas . } else if ((Math.pow(b,2)-4*a*c) < 0) { parteReal = -b/(2*a); //Con el mtodo math.sqrt podemos obtener la raz de un numero , en cambio con math.abs calculamos su valor absoluto. parteImaginaria = Math.sqrt(Math.abs(Math.pow(b,2)-4*a*c))/(2*a); JOptionPane.showMessageDialog(null,"Tiene raices complejas\n PARTE REAL + PARTE IMAGINARIA\n"+parteReal + " + " + parteImaginaria+"\n"+parteReal + " - " + parteImaginaria); } //El resultado sera:
Cdigo Utilizado
//Si por casualidad no se cumple ninguna condicin anterior se procede al ltimo caso contrario, el cual calcula las dos races reales de la ecuacin.
else { //Aqu hemos aplicado los metodos ya conocidos estableciendo una estructura similar a la frmula:
raizReal1 = (-b + Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a); raizReal2 = (-b - Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a); JOptionPane.showMessageDialog(null,"Tiene raices reales\nRaiz real 1 = "+raizReal1+"\nRaiz real 2= "+raizReal2);
//La ventana de resultados nos mostrara:
} } //Es importante recordar que las llaves dentro de la lgica del programa son fundamentales //FIN
Recursos Utilizados:
1. 2. 3.
Libro Preclculo. Libro Programacin de Algoritmos. Manual java netbeans. http://mygnet.com
Aporte 1er Bimestre