Sunteți pe pagina 1din 6

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos Trabajo Prctico N 1 Vectores y Matrices

s Fecha de Entrega: ......./....../...........

Desarrollar una aplicacin en Java, que implemente uno de los temas citados ms abajo (de acuerdo al tema asignado por el Profesor). El cdigo fuente con nombre y apellido, nmero de TP, nmero de ejercicio y enunciado, se debe alzar en Educa (Trabajos Prcticos 1) para la evaluacin. En los casos que deba utilizar mtodos como ordenar, buscar el mayor, menor, promedio, etc deben crearse mtodos propios, no utilizar mtodos existentes en los lenguajes citados. Los siguientes aspectos convencionales de buena costumbre en programacin sern evaluados: - Comentarios sobre los procesos realizados. - Sangra en los bloques de cdigo. - El nombre de aplicacin (clase) debe empezar en mayscula. Ejemplo: BusquedaArray. - Los nombres de mtodos deben empezar en minsculas. Si es nombre compuesto la segunda palabra empezar en mayscula. Ejemplos: procesar(), buscarElemento( ), imprimirDatos(), etc - Nombre de constante todo en mayscula. Ejemplo: private final int MAX = 10 o SALARIO_MINIMO = 100

TP entregados en fecha se evalan sobre 100%, entregados hasta una semana posterior a la fecha de entrega sobre 70%. Si tiene errores al compilar, se evaluar sobre 50%. TEMAS
1. Realizar un programa que permita ingresar por teclado el apellido de 10 alumnos de una clase. Buscar un apellido ingresado por teclado. Imprimir Apellido encontrado o Apellido no existe segn el caso, imprimir adems el apellido si se encuentra y el ms prximo en caso contrario. Generar un array A de 20 elementos. Crear otro array B, tal que la primera mitad de B sea cada elemento de la segunda mitad de A multiplicado por el mayor elemento de A, y la segunda mitad de B sea la primera mitad de A multiplicado por el menor elemento de A. Generar 80 nmeros comprendidos entre 200 y 700. Cargar en un array. Introducir por teclado un nmero e imprimir si dicho nmero se encuentra en el array. Imprimir adems los dos nmeros ms prximos. 4. Crear un array de 50 posiciones con nmeros enteros entre 101 y 3000 generados aleatoriamente, de tal forma que no se repita ningn elemento. No puede haber ningn elemento que sea mltiplo de la posicin que ocupa excepto el primero. Imprimir el array una vez cargado. Generar nmeros comprendidos entre 1 y 100 para 5 filas con 5 columnas cada una (las filas representan alumnos y las columnas sus puntajes) Imprimir los nmeros, el promedio, el mayor y el menor puntaje de cada alumno. 6. 7. Generar una matriz de 30 filas y 8 columnas. En cada fila se guardar una palabra de hasta ocho letras. Imprimir la palabra que sea capica. Imprimir el total de palabras que no sea capica. Cargar una matriz A de 5 filas y 6 columnas con nmeros comprendidos entre 1001 y 1500. A partir de dicha matriz crear la transpuesta, es decir, matriz B de 6 por 5. La matriz transpuesta se forma poniendo ordenadamente las filas de la matriz A como columnas en la matriz B. Imprimir un array bidimensional que corresponde a un mes especfico del calendario de un ao especfico. La primera columna le corresponde al domingo, la segunda al lunes y as sucesivamente. INTRODUCIR: el mes y el da que cae el 1 de ese mes en nmeros. Ejemplo: Mes: 8 (agosto) 1 de agosto de 2003: 6 (viernes) 9. Generar 49 nmeros comprendidos entre 10 y 99. Cargar en una matriz. Ordenar e imprimir la matriz, el mayor, el menor, el promedio y la diagonal. 10. Una empresa tiene 4 sucursales y necesita un programa que: lea las ventas mensuales de las 4 sucursales (se puede generar los nmeros de los doce meses); calcule el promedio de venta mensual, de cada sucursal; calcule el promedio general de ventas, de todas las sucursales y

2.

3.

5.

8.

imprima la(s) sucursal(es) cuyo promedio sea superior al promedio general.

Obs: la siguiente lnea genera un nmero aleatorio entre 1 y 6. int dado = 1 + (int) (Math.random() * 6 );

1/7

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos Trabajo Prctico N 2 - Registros Fecha de Entrega: ......./....../...........

Desarrollar una aplicacin en Java que implemente uno de los temas citados ms abajo (de acuerdo al tema asignado por el Profesor). El cdigo fuente con nombre y apellido, nmero de TP, nmero de ejercicio y enunciado, se debe alzar en Educa (Trabajos Prcticos 2) para la evaluacin, en formato zip. Los siguientes aspectos convencionales de buena costumbre en programacin sern evaluados: - Comentarios sobre los procesos realizados. - Sangra en los bloques de cdigo. - El nombre de aplicacin (clase) debe empezar en mayscula. Ejemplos: BusquedaArray, RegistroEmpleado - Los nombres de mtodos deben empezar en minsculas. Si es nombre compuesto la segunda palabra empezar en mayscula. Ejemplos: procesar(), buscarElemento( ), imprimirDatos(), etc - Nombre de constante todo en mayscula. Ejemplo: private final int MAX = 10 o SALARIO_MINIMO = 100

TP entregados en fecha se evalan sobre 100%, entregados hasta una semana posterior a la fecha de entrega sobre 70%. Si tiene errores al compilar, se evaluar sobre 50%.
-

TEMAS
1. Se desea cargar cdigo, nombre, apellido (desde teclado) y puntaje (generar) de cinco asignaturas (asignar nombre) de cinco alumnos en un array de registro. Imprimir el cdigo, nombre y apellido, asignatura, puntaje, el promedio del alumno. Promedio de la asignatura, nombre y apellido del alumno con mayor y menor promedio. 2. 3. dem ejercicio 1 con datos ledos desde un archivo, inclusive los puntajes. Cargar por teclado nombre de 5 sucursales de una empresa, generar las ventas mensuales de 6 meses. Imprimir nombre de la empresa, cada una de las sucursales con sus ventas mensuales, el total y el promedio del semestre. Promedio general de la empresa, sucursal con mayor y menor movimiento promedio. 4. 5. dem ejercicio 3 con datos ledos desde un archivo, inclusive las ventas. Una empresa de venta por correo desea realizar una estadstica de las ventas realizadas (generar) de cada uno de sus seis productos (cargar por teclado, crear una clase Producto: cdigo, descripcin) a lo largo del primer semestre. Se desea conocer: El total de ventas de cada uno de los productos El total de ventas de cada mes El producto ms vendido en cada mes El nombre, mes y cantidad del producto ms vendido

6. 7.

dem ejercicio 5 con datos ledos desde un archivo, inclusive las ventas. Una fbrica de muebles tiene 8 vendedores (leer desde un archivo, dos por cada zona; crear una clase Vendedor: cdigo, nombre, apellido, zona) que viajan por todo el pas (dividido en 4 zonas: Asuncin, Encarnacin, Ciudad del Este y Guair) ofreciendo sus productos. Semanalmente almacena sus datos (generar las ventas por da, de lunes a sbado) y obtiene estadsticas sobre el comportamiento de sus representantes en cada zona. Calcular el total de ventas de cada zona, el total de ventas de cada vendedor, el total de ventas por da y el total de ventas de la fbrica.

8. 9.

dem ejercicio 7 con datos ledos desde un archivo, inclusive las ventas. Una empresa tiene 4 vendedores (leer desde el teclado su nombre, apellido, sueldo base y % Comisin, crear una clase). Generar las ventas mensuales de seis meses; por cada vendedor calcular: la comisin y el sueldo neto por cada mes, el promedio de ventas del semestre. Calcular adems el total de: ventas de la empresa, sueldo y comisin de los seis meses.

10. dem ejercicio 9 con datos ledos desde un archivo, inclusive las ventas.

Observacin
Cuando se menciona generar implica generar aleatoriamente un nmero. Cuando los datos deben leerse desde archivo, este ya debe existir. Los campos irn separados por TAB, incluir este archivo en el zip. El delimitador del token debe parametrizarse. * Para cualquier consulta coordinar con el Ayudante de Ctedras o conmigo. 2/7

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos Trabajo Prctico N 3 - Listas Fecha de Entrega: ......./....../........... Desarrollar una aplicacin que implemente uno de los temas citados ms abajo (de acuerdo al tema asignado por el Profesor). El cdigo fuente con nombre y apellido, nmero de TP, nmero de ejercicio y enunciado, se debe alzar en Educa (Trabajos Prcticos 3) para la evaluacin (en formato zip)
-

Los aspectos convencionales de buena costumbre en programacin sern evaluados (ver TP 1 y TP 2), as como comentarios sobre los procesos realizados.

TEMAS
1. Implemente una lista doblemente enlazada con mtodos irPrincipio, irFinal, primero, ultimo, insertar, eliminarUltimo y eliminarPrimero. Por teclado se deber introducir si se desea imprimir hacia delante o atrs. Utilizar el archivo Medicamentos.txt de la clase de listas enlazadas, desarrollado en clase. 2. Generar una lista (la cantidad de elementos leer por teclado) con nmeros comprendidos entre 1000 y 9999, escribir los mtodos necesarios para ordenar la lista en orden creciente y decreciente. La ordenacin se har intercambiando los punteros a los nodos. Imprimir la lista sin ordenar y ordenada. 3. Crear una aplicacin que manipule una lista enlazada circular. Por teclado se deber introducir si se desea imprimir hacia delante o atrs. Utilizar el archivo Medicamentos.txt ubicado en Recursos de Educa. Crear una clase Medicamento.java. 4. Crear una aplicacin para ordenar la lista de medicamentos en orden creciente y decreciente utilizando listas enlazadas. Utilizar el archivo Medicamentos.txt ubicado en Recursos de Educa. Crear una clase Medicamento.java. 5. Una empresa tiene 4 vendedores (leer desde un archivo su nombre, apellido, sueldo base y % Comisin). Generar las ventas mensuales de 3 meses; por cada vendedor calcular: la comisin y el sueldo neto por cada mes, el promedio de ventas del trimestre. Calcular adems el total de: ventas de la empresa, sueldo y comisin. Implementar utilizando lista enlazada. 6. Crear una aplicacin para ordenar una lista enlazada de 5 alumnos (con cedula, nombre, apellido, promedio) cargados por teclado, en orden creciente y decreciente. Imprimir la lista sin ordenar y ordenada. Imprimir adems, los datos del alumno con menor promedio. 7. Generar una lista L1 de 10 nodos con nmeros comprendidos entre 100 y 999. Crear otra lista L2, tal que la primera mitad de L2 sea cada elemento de la segunda mitad de L1 multiplicado por el mayor elemento de L1, y la segunda mitad de L2 sea la primera mitad de L1 multiplicado por el menor elemento de L1. 8. Una fbrica de muebles tiene 4 representantes (cargar por teclado, uno por cada zona) que viajan por todo el pas (dividido en 4 zonas: Asuncin, Encarnacin, Ciudad del Este y Guair) ofreciendo sus productos. Mensualmente almacena sus datos (generar) y obtiene estadsticas sobre el comportamiento de sus representantes en cada zona al ao. Calcular el total de ventas anual de cada vendedor. El promedio anual de ventas de la empresa. Implementar utilizando lista enlazada. 9. Cargar por teclado nombre de 5 sucursales de una empresa, generar las ventas mensuales de 6 meses. Imprimir nombre de la empresa, cada una de las sucursales con sus ventas mensuales, el total y el promedio del semestre. Promedio general de la empresa, sucursal con mayor y menor movimiento promedio. Implementar utilizando lista enlazada.

Observacin
Cuando se menciona lista, se trata de lista enlazada. Cuando se menciona generar implica generar aleatoriamente el nmero. Cuando los datos deben leerse desde archivo, este ya debe existir, incluir este archivo en el zip. El delimitador del token debe parametrizarse.

* Para cualquier consulta coordinar con el Ayudante de Ctedras o conmigo.

3/7

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos Trabajo Prctico N 4 Pilas y Colas Fecha de Entrega: ......./....../........... Desarrollar una aplicacin que implemente uno de los temas citados ms abajo. El cdigo fuente con nombre y apellido, nmero de TP, nmero de ejercicio y enunciado, se debe alzar en Educa (Trabajo Prctico 4) para la evaluacin (formato zip)
-

Los comentarios, acerca de los distintos procesos que se realizan en las clases, y los aspectos convencionales de buena costumbre en programacin sern evaluados.

TEMAS
1. Cargar dos pilas con datos del tipo Alumno (una desde archivo y otra por teclado, donde se podr cargar 1 o varios datos) y generar una lista doblemente enlazada con los datos de las pilas, pero sin que se repitan los elementos y ordenados. Imprimir las tres estructuras para la comprobacin. 2. Introducir por teclado una palabra. A partir de esa palabra crear una pila de letras (con estructura dinmica). Verificar si dicha palabra es palndroma (palabra que se lee igual de izquierda o de derecha; ej: oro, reconocer, anilina). Ver el mtodo charAt(int index) de la clase String. Imprimir: un mensaje que indique si la palabra es o no palndroma, la palabra, la cantidad de letras y la pila. 3. Simular el funcionamiento de una cola frente a un cajero automtico de pago de salario (crear una clase Cajero), donde las personas llegan y realizan una extraccin (generar) cuyo monto ser mayor a 50.000 y menor o igual al salario (generar salario), en mltiplos de 10.000. Imprimir: el total de monto extrado (que no puede superar el monto total disponible en el cajero (generar)), el total de extracciones, el saldo en el cajero y el promedio de extracciones. Las personas aleatoriamente llegan y/o salen de la cola. 4. Simular el funcionamiento de una cola frente a la boletera de un teatro (crear una clase Boletera), donde las personas llegan y compran una o ms entradas (generar cantidad de personas en la cola, cantidad comprada por cada persona, cantidad de lugares disponibles y precio). Imprimir: la cantidad de personas que compraron entradas, el monto total por ventas, la cantidad de entradas sobrantes. 5. Introducir por teclado una palabra o nmero. A partir de esa palabra crear una pila de datos (con estructura esttica). Verificar si dicha palabra es palndroma o si el nmero es capica (palabra o nmero que se lee igual de izquierda o de derecha; ej. 13231, reconocer, anilina). Ver el mtodo charAt(int index) de la clase String. Imprimir: un mensaje que indique si la palabra es palndroma o el nmero es capica, la palabra o nmero y la pila. 6. Simular el funcionamiento de un estacionamiento de autos (crear una clase Auto: numChapa, marca, color, etc) con una sola entrada. Cuando llegan los autos se estacionan en el tinglado, para sacar un auto que no est al frente se debe sacar el o los autos que lo bloquean, se saca el auto y se vuelve a estacionar, en el mismo orden en que estaban, todos los autos. Imprimir los datos necesarios para verificar el adecuado funcionamiento. 7. Simular el funcionamiento de una fila frente a una caja de depsito de un banco, donde los titulares tienen mayor prioridad para realizar depsitos con respecto a las otras personas. Es decir, que cuando llega un titular de cuenta se coloca al final de la ltima persona titular de una cuenta y a continuacin las dems personas. Imprimir el total de depsitos realizados por titulares y no titulares, la cantidad de personas en la fila as como la cantidad de titulares. 8. Simular el funcionamiento de dos filas frente a dos cajas de depsito de un banco, donde los titulares tienen una caja y los no titulares tienen otra para realizar depsitos en su cuenta (crear clase Cuenta). Cuando la caja de titulares est vaca se atiende a un no titular y viceversa. Mostrar un men para realizar las siguientes operaciones: llegada de un cliente al banco, depsito en cuenta (generar el monto del depsito entre 1.000 y 50.000, y un nmero que indique si es titular -probabilidad 30%- o no titular -probabilidad 70%), total de depsitos realizados por titulares y total de depsitos realizados por no titulares, cantidad de personas en las filas. Imprimir todos los datos necesarios para la comprobacin de la aplicacin. 9. Realizar una aplicacin que lea un archivo con datos del tipo Artculo (cdigo, descripcin, precio Venta) y cargue en una lista; por cada artculo cargado desde el archivo, generar la cantidad vendida. Posteriormente cargar en una bicola (los elementos se pueden agregar o quitar por cualquiera de los extremos). Una vez cargada la bicola presentar un men que permita: imprimir el artculo de cada extremo y su total de ventas, el total general y el promedio de ventas de los artculos cargados en la cola. 10. Presentar un men con las siguientes opciones Crear cola, Poner en cola, Quitar de cola, Cola vaca, Cola llena, Mostrar frente y Mostrar atrs (devolver el elemento del frente y atrs sin quitar). Implementar utilizando lista circular. Los datos deben ser del tipo Mascota (edad, nombre y dueo) que hereda de Animal (especie, raza). Introducir por teclado. 11. Las expresiones aritmticas generalmente se escriben en notacin infija, es decir operando operador operando, por ejemplo: . Los computadores prefieren la notacin postfija, es decir operando operando operador Ejemplo: etc. Para evaluar una expresin aritmtica el computador deber primero convertir la expresin infija a postfija y luego proceder a evaluar la expresin. En ambos procesos utilizar una pila (array) para hacerlo. Escriba un programa en Java que reciba una expresin infija (validar) 4/7

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos
como un String, y luego utilizando la estructura de datos Pila, primero convierta la expresin a postfija y la muestre por pantalla, y luego proceda a evaluar la expresin mostrando el resultado final. Nota: para hacer ms fcil el ejercicio, considere slo los cuatro operadores bsicos (+,-,*,/) y operandos de un slo digito y sin signo (positivo). No habr separacin entre ellos, como en el ejemplo (arriba). 12. Hallar el factorial de un nmero introducido por teclado no mayor a 30. Implementar utilizando pilas.

Observacin
Cuando se menciona generar implica generar aleatoriamente el nmero. Cuando los datos deben leerse desde archivo, este ya debe existir. Incluir entre los archivos enviados. Para cualquier consulta coordinar con el Ayudante de Ctedras o conmigo (lunes, mircoles y viernes de 13:00 a 18:00 hs en FPUNA, Diseo Web).

5/7

Universidad Nacional de Asuncin - Facultad Politcnica Licenciatura en Ciencias Informticas - Ctedra de Estructura de Datos Trabajo Prctico N 5 rboles binarios Fecha de Entrega: ......./....../........... Desarrollar una aplicacin que implemente uno de los temas citados ms abajo. El cdigo fuente con nombre y apellido, nmero de TP, nmero de ejercicio y enunciado, se debe alzar en Educa (Trabajos Prcticos 5) para la evaluacin.
-

Los comentarios, acerca de los distintos procesos que se realizan en las clases, y los aspectos convencionales de buena costumbre en programacin sern evaluados.

TEMAS
1. Agregar, mediante herencia, el mtodo remover (se debe mantener la estructura del rbol binario, analizar todas las opciones posibles al eliminar un nodo, es decir, si tiene 0, 1 o 2 hijos) a la clase ArbolBinario, y las opciones imprimir subrbol derecho e imprimir subrbol izquierdo a la opcin imprimir rbol de la clase ArbolApp en los tres tipos de recorrido. 2. Agregar, mediante herencia, los mtodos necesarios para imprimir los nodos que sean padres, hijos u hojas al ArbolBinario desarrollado en clase y actualizar la clase ArbolApp con las nuevas opciones (incluir como sub-opciones de imprimir rbol de la clase ArbolApp). 3. Agregar, mediante herencia, los mtodos remover (se debe mantener la estructura del rbol binario, analizar todas las opciones posibles al eliminar un nodo, es decir, si tiene 0, 1 o 2 hijos) e imprimirSubrbol al ArbolBinario desarrollado en clase, actualizar la clase ArbolApp con las nuevas opciones (la opcin imprimir subrbol debe estar como subopcin de imprimir rbol). Al seleccionar la opcin imprimir subrbol se debe solicitar al usuario que ingrese izquierdo o derecho e imprimir ese subrbol en unos de los tres recorridos. 4. Agregar al ArbolBinario desarrollado en clase, mediante herencia, los mtodos necesarios para imprimir los nodos que sean hijos, padres y todos los descendientes de un nodo cuyo dato se introducir por teclado. Actualizar la clase ArbolApp con las nuevas opciones (incluir como sub-opciones de imprimir rbol de la clase ArbolApp). 5. Agregar al ArbolBinario desarrollado en clase, mediante herencia, los mtodos buscar (comparar el elemento a buscar con la raz, si es menor continua la bsqueda por la rama izquierda, si es mayor continua por la derecha) y camino (mostrar el camino -desde el nodo raz a un nodo cuyo dato se ingresa por teclado- y su longitud). Actualizar la clase ArbolApp con las nuevas opciones. 6. Crear una clase que implemente un rbol binario de expresin, heredando mtodos y propiedades de la clase ArbolBinario desarrollado en la ctedra. Se debe imprimir el resultado de la expresin introducida por teclado. Ejemplo de rbol binario de expresin: 7. Agregar al ArbolBinario desarrollado en clase, mediante herencia, el mtodo dibujarrbol (este mtodo debe dibujar, ya sea en un Frame o en una app tipo DOS, el rbol completo, el subrbol izquierdo o subrbol derecho, de acuerdo al dato introducido por el usuario). Actualizar la clase ArbolApp con las nuevas opciones. 8. Agregar al ArbolBinario desarrollado en clase, mediante herencia, los mtodos public NodoBinario unir (Object dato, ArbolBinario arbol1, ArbolBinario arbol2) que crea un rbol binario a partir del dato y los rboles binarios recibidos como parmetros (validar que los rboles sean distintos, distintos datos en mismas posiciones); y public NodoBinario extraer (Object dato) que extrae y devuelve el subrbol completo que contenga el dato recibido como parmetro). Actualizar la clase ArbolApp con las nuevas opciones.

6/7

S-ar putea să vă placă și