Programación (Orientada a Objetos en Java) Laboratorio nº1 Dr. Eric Jeltsch F. Suposición: Ud. ha leído los primeros capítulos del libro guía. Objetivo: Aprender a utilizar y aplicar clases dada, escribir un método y finalmente escribir un método principal main() que testee el método anterior. Actividades: a) Dada la clase Leer.java. Se le pide, testear la clase Leer. Es decir construirse una clase principal que la invoque. b) Escribir un programa que calcule la serie exponencial ex = 1 + x/1! + x2/2! + x3/3! + ….., para un valor x entregado por el usuario a través del teclado. Para el cálculo del valor correspondiente se deben sumar los términos sucesivos de la serie hasta que el término sumado (o que se incluya en la suma) sea menor o igual que una constante de error predeterminada (Por ejemplo, 1e-7, es decir e-7.) Observe que cada término es igual al anterior salvo el factor x/n, para n = 1, 2 , 3, ..etc.. Notar que el primer término es 1. Para ello entonces se pide (i) Escribir un método que tenga el prototipo static double exponencial(float x); A lo que este método debe devolver como resultado el valor aproximado de ex. (ii) Además escribir el método principal main() para que invoque al método exponencial() y compruebe (o testee) que para cualquier valor ingresado le entrega el resultado esperado. La implementación de main() debe hacer uso de la clase Leer.java Nota: A continuación se da la clase a utilizar Leer.java. // clase Leer import java.io.*; public class Leer { public static String dato() { String sdato = ""; try { // Definir un flujo de caracteres de entrada: flujoE InputStreamReader isr = new InputStreamReader(System.in); BufferedReader flujoE = new BufferedReader(isr); // Leer. La entrada finaliza al pulsar la tecla Entrar _________________________________________________________________________ Escuela de Ingeniería en Computación, Universidad de La Serena. Programación (Orientada a Objetos en Java) Laboratorio nº1 Dr. Eric Jeltsch F. sdato = flujoE.readLine(); } catch(IOException e) { System.err.println("Error: " + e.getMessage()); } return sdato; // devolver el dato tecleado } public static short datoShort() { try { return Short.parseShort(dato()); } catch(NumberFormatException e) { return Short.MIN_VALUE; // valor más pequeño } } public static int datoInt() { try { return Integer.parseInt(dato()); } catch(NumberFormatException e) { return Integer.MIN_VALUE; // valor más pequeño } } public static long datoLong() { try { return Long.parseLong(dato()); } catch(NumberFormatException e) { return Long.MIN_VALUE; // valor más pequeño } } public static float datoFloat() { try { Float f = new Float(dato()); return f.floatValue(); } catch(NumberFormatException e) { return Float.NaN; // No es un Número; valor float. } _________________________________________________________________________ Escuela de Ingeniería en Computación, Universidad de La Serena. Programación (Orientada a Objetos en Java) Laboratorio nº1 Dr. Eric Jeltsch F. } public static double datoDouble() { try { Double d = new Double(dato()); return d.doubleValue(); } catch(NumberFormatException e) { return Double.NaN; // No es un Número; valor double. } } } //fin de la clase Leer. _________________________________________________________________________ Escuela de Ingeniería en Computación, Universidad de La Serena.