IWI-131 PROGRAMACION DE COMPUTADORES GUIA #4: JAVA Ejercicio 1. Se tienen dos archivos de texto con números enteros de nombres físicos datos1.txt y datos2.txt, almacenando un número por línea, los cuales se relacionan, respectivamente, con los nombres lógicos datos1 y datos2, mediante la siguiente definición: In datos1=new In(“datos1.txt”) In datos2=new In(“datos2.txt”) Diseñe un programa JAVA que genere un tercer archivo de nombre físico datos3.txt con los elementos de los archivos datos1.txt y datos2.txt, ordenados en forma ascendente y sin que se repitan valores. Observación: - Los archivos de entrada, datos1.txt y datos2.txt, se encuentran desordenados. - Los archivos de entrada, datos1.txt y datos2.txt, pueden tener elementos repetidos. - Use un arreglo auxiliar para ordenar. Ejercicio 2. En una biblioteca se mantiene un archivo de texto con información de libros. El nombre físico del archivo es biblio.txt, el cual tiene en cada línea la siguiente información: inventario: numérico de largo 15; nombre : string de largo 45 autor : string de largo 45 valor : numérico de largo 15 Recuerde que estos campos aunque se indican numéricos, están almacenados en un archivo de texto por lo que al leerlos eventualmente podría requerirse convertir a número. Los campos del registro son: inventario: código numérico de identificación de cada libro. nombre: título del libro. autor: nombre del autor del libro. valor: valor comercial del libro. El archivo está lleno con todos los libros que tiene la biblioteca. I) Considerando que los campos en cada línea están formateados de ancho fijo, diseñe un programa JAVA que entregue: (a) un listado con nombre y autor de todos los libros cuyo valor supere los $20:000 y (b) la cantidad de libros y el capital (valor) en libros de la biblioteca. II) Considere el mismo archivo anterior pero con un archivo no formateado donde los campos están separados por comas y nuevamente haga un programa que obtenga los puntos a) y b) usando la función split() Ejercicio 3. Realice el ruteo del siguiente programa JAVA : public class guia{ public static int incrementar (int a) { a++; return a; } public static int desordenar (int y, int x, int z) { int a; x = x + incrementar(y); a = x + y + z; StdOut.printf("%d %d %d \n", y, x, z); return a; }; public static void main(String[] args) { int a, x, y, z; x = 3; y = 5; z = 10; a = x + desordenar (z, y, x); StdOut.printf("%d %d %d %d \n", x, y, z,a); } } Ejercicio 4. Se desea calcular las notas del _ultimo certamen de Física 100 el cual contenía 30 preguntas de alternativas (A..E). Se desea registrar en un arreglo unidimensional de caracteres denominado plantilla, las respuestas correctas (la pauta de corrección) y en un arreglo bidimensional denominado respuestas las 30 respuestas de cada uno de los 500 alumnos del curso. Desarrolle un programa JAVA que incluya: - Una función leer plantilla(plantilla), el cual permita el ingreso de las alternativas que representan las 30 respuestas correctas. - Una función leer respuestas(respuestas), el cual permita el ingreso de las 30 respuestas de los 500 alumnos del curso. - Una función nota curso(plantilla, respuestas), la cual devuelva el promedio del curso y, además, genera un listado por pantalla mostrando para cada alumno la cantidad de respuestas correctas, la cantidad de respuestas incorrectas y la nota del certamen, la cual se calcula de la siguiente manera: Ejercicio 5. Se desea calcular la cantidad de cada letra mayúscula ”A" .. “Z" que aparece en cada una de las líneas de un archivo de caracteres denominado letras.txt. Desarrolle un programa JAVA que permita llenar un arreglo bidimensional de números enteros denominado ocurrencia con la cantidad de ocurrencias de cada una de las 26 letras mayúsculas en cada una de las líneas del archivo letras.txt. Observaciones: - ocurrencia[3,1] = 5 significaría que se contabilizaron 5 ocurrencias de la letra “A" en la línea 3. - Considere que el archivo contiene a lo más 40 líneas (puede contener menos de 40 líneas). Ejercicio 6. Se desea manipular la información de cada una de las 100 participantes del concurso Miss Chile para el año 2000. Desarrolle un programa JAVA que permita realizar las siguientes operaciones: -Crear el archivo de registros concursantes.txt conteniendo el nombre, la edad, la estatura y la región de cada participante. - A partir del archivo concursantes.txt y del ingreso de una edad mínima, una edad máxima y una región, generar el archivo resultados.txt con la información de todas las concursantes de la región determinada cuya edad está entre la edad mínima y la edad máxima especificada. - A partir del archivo concursantes.txt, determinar las estaturas mínima, máxima y promedio de las concursantes. Observación: Al leer los datos desde el archivo concursantes.txt suponga que no se conoce la cantidad de registros que contiene. Ejercicio 7. Una librería desea almacenar sus productos en un arreglo de registros. Cada registro debe incluir los campos título, autor, ISBN (código), precio y stock. Diseñe funciones JAVA que permita realizar las siguientes operaciones: - Ingresar una partida de 100 libros - Encontrar un libro a partir de un código ISBN ingresado por el usuario, mostrando el título, autor, precio y stock correspondiente. Ejercicio 8. Utilizando subprogramas desarrolle un programa JAVA que permita realizar las siguientes operaciones: - Crear un archivo de números enteros positivos numeros.txt - A partir del archivo, visualizar los números pares. Observación: - El programa debe incluir subrutinas para crear el archivo y seleccionar los números pares. - Termine el ingreso de datos al archivo cuando el usuario ingrese un número negativo. Ejercicio 9. Una bodega mantiene un stock de materiales en un archivo bodega.txt. Para cada artículo se almacena en una línea su código (un valor entero) y su precio (un valor real). Desarrolle un programa JAVA que a partir del archivo bodega.txt realice las siguientes operaciones: -Generar el archivo bodega2.txt con todos los materiales ordenados en forma ascendente según precio. -Generar el archivo codigo.txt con todos los materiales cuyo código sea superior a 399. Observación: Utilice subprogramas para leer, seleccionar y ordenar. Ejercicio 10. Se tiene un archivo de texto con dos tipos de registros: Registro tipo1: Nombre Apellido Carrera Notas Registro tipo 2: Fecha Nota El campo notas indica cuantas líneas del tipo 2 vienen en el archivo las cuales pueden ser cero o más. Se solicita generar un archivo salida.txt que contenga los siguientes campos: Nombre Promedio Obs. Considere que los campos están separados por coma. Ejercicio 11. Codificar una clase Java que permita generar objetos que representen el movimiento de un automóvil. Los métodos que debe considerar son: a) Acelerar hasta llegar a una velocidad b) Frenar hasta llegar a una velocidad Los atributos que debe manejar son: a) Velocidad actual Ejercicio 12. Codificar una clase Java que permita generar objetos que representen el movimiento de un avión. Los métodos que debe considerar son: c) Acelerar hasta llegar a una velocidad d) Frenar hasta llegar a una velocidad e) Descender una cierta cantidad de metros. Debe considerar que si el avión está bajo los 1000 metros debe generar una alarma de preparar descenso. f) Subir una cierta cantidad de metros Los atributos que debe manejar son: b) Velocidad actual c) Altura actual