CRUV - Facultad de Informática, Electrónica y Comunicación Inf212-Programación Orientada a Objetos UNIVE RSID AD DE PANAMÁ CENTRO RE GION AL UNIVE RSITARI O DE VE RAGUAS LIC ENCIATURA
DE INFORMÁTIC
A PARA LA GESTIÓN EDUC Y
EM P. PRIME R SEMESTR E
PROG RAM ACIÓN 4
Informe del laboratorio semana #4: Flujo de datos
PROFESOR DIEGO SANTIMATEO
ESTUDI ANTE JAIRO CONCEPCIÓN
9-724-1589
FECHA D E ENTR EGA Semana 8-12 de septiembre.
Jairo Concepción
CRUV - Facultad de Informática, Electrónica y Comunicación Inf212-Programación Orientada a Objetos
Flujo de datos 1. Pruebe el ejemplo y verifique su funcionamiento. ¿Cuál es el objetivo del programa? Incluya un comentario que describa el trabajo del programa. R= El objetivo de este programa es el de realizar la suma de dos valores enteros capturados desde el teclado. Comentario Este programa realizara este trabajo a través de flujos (streams) o secuencias continua de datos. Primero en el public static void main se coloca mecanismo throws IOException que nos permite controlar las posibles entradas erróneas. Luego
como el programa trataba de obtener datos desde el teclado y estos datos serán una cadena y por eso tenemos que recurrir a la clase Reader, que también tiene un conjunto de subclases para manejar flujos, en este caso se utilizo las siguientes subclases: •
InputStreamReader
•
System.in nos permite para leer en la pantalla. Este objeto se usa como parámetro
nos convierte un stream de bytes en un stream de char.
en la declaración del objeto creado en el InputStreamReader.
•
BufferedReader
•
System.out
•
readLine() este método nos permite leer todos los caracteres tecleados.
nos proporciona una entrada de caracteres a través de un buffer.
nos permite escribir en pantalla.
Estos 5 puntos son los que realiza el programa para capturar un valor desde el teclado y sea más eficiente. Dentro de este programa se utiliza también el bloque try/catch que nos permite gestionar y tratar correctamente el programa crear excepciones por el usuario. 2. Compile el programa anterior sin usar throws IOException. ¿Qué ocurrió? ¿Qué método se asoció al error producido? R= Bueno, al compilar el programa sin el throws IOException , generaba dos errores los cuales se producían por la no declaración de la excepción java.io.IOException.
Jairo Concepción
CRUV - Facultad de Informática, Electrónica y Comunicación Inf212-Programación Orientada a Objetos El método que se asocio con el error fue el readLine().
3. Analice el programa anterior, identifique clases, objetos y métodos. R= las clase, los objetos y los métodos que aparecen en el programas son los siguientes:
InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr);
Objetos
System.out.print("Teclea el primer numero: ");
Clases
String texto1=br.readLine();
Métodos
int num1=Integer.parseInt(texto1); System.out.print("Teclea el segundo numero: ");
Objetos
String texto2=br.readLine(); int num2=Integer.parseInt(texto2); System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2));
4. Coloque nuevamente throws IOException y provoque un error introduciendo una letra como segundo valor capturado. ¿Qué ocurrió?. R= Al monento de colocar el throws IOException, compilar y ejecutar el programa, introduci una letra como segundo valor, el cual nos mostro una exception
Jairo Concepción
CRUV - Facultad de Informática, Electrónica y Comunicación Inf212-Programación Orientada a Objetos Esta Exception indica que el segundo valor esperado no era un numero sino un carácter, ya que el objetivo del programa es sumar dos enteros.
5. Considere el siguiente ejemplo y provoque nuevamente un error: ¿Cuál fue la diferencia? R= La diferencia de este otro programa esta en que el usuario puede crear sus propias excepciones. Utilizando el try y el catch, como se muestra en el codigo. try { InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); System.out.print("Teclea el primer numero: "); String texto1=br.readLine(); int num1=Integer.parseInt(texto1); System.out.print("Teclea el segundo numero: "); String texto2=br.readLine(); int num2=Integer.parseInt(texto2); System.out.println("Suma de "+num1+" y "+num2+" es "+(num1+num2)); } catch(Exception e) { System.out.println( "Error en la captura****" ); }
Excepción creada por el usuario
Jairo Concepción
CRUV - Facultad de Informática, Electrónica y Comunicación Inf212-Programación Orientada a Objetos
6. Reflexione sobre la utilidad del manejo de las excepciones con el try … catch. ¿Qué entendió como excepción?¿Cuál es la función del try y cuál la del catch? ¿En qué referencia se apoyó? R= Lo que entendí por excepciones es que, en la programación siempre se producen errores, más o menos graves, pero que hay que gestionar y tratar correctamente. Por eso se utiliza el mecanismo try y el catch. Esta técnica básica consiste en colocar las instrucciones que podrían provocar problemas dentro de un bloque try, y colocar a continuación uno o más bloques catch, de tal forma que si se provoca un error de un determinado tipo, el bloque catch capaz de gestionar ese tipo de error específico. El bloque catch contendrá el código necesario para gestionar ese tipo específico de error enviando un mensaje de error creado por el usuario. Supongo que no se hubiesen provocado errores en el bloque try, nunca se ejecutarían los bloques catch. Mi referencia de apoyo fue la dirección http://elvex.ugr.es/decsai/java/pdf/B2-excepciones.pdf http://www.cica.es/formacion/JavaTut/Cap6/captura.html http://www.chuidiang.com/java/novatos/entrada_standard_java.php Las cuales hablaban de Excepciones y flujos en java, como presentando definiciones y ejemplos de cada uno de ellos, considero que son muy claras.
Jairo Concepción