You are on page 1of 9

INSTITUTO TECNOLOGICO DE PUEBLA

INGENIERIA EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIONES


GRUPO CLAVE HORA

FECHA: EQUIPO: UNIDAD No. : 1

NOMBRE DE LA EVIDENCIA:

PRCTICA 1

LISTA DE CARACTERES ORDENADA ALFABETICAMENTE IMPLEMENTADA EN UN ARREGLO

ALUMNOS PARTICIPANES:

FECHA 1 OPORTUNIDAD: FECHA 2 OPORTUNIDAD:

CALIFICACION:

FIRMA DEL PROFESOR:

PRCTICA No. 1 OBJETIVOS ESPECFICOS: Que el alumno identifique el arreglo como una estructura lineal. El alumno manipular la lista a travs de los mtodos de la clase lista. Que el alumno utilice la programacin orientada a objetos. Correlacin con los temas del programa. 2.1 Listas. INTRODUCCIN. El concepto de lista nos resulta normalmente muy familiar, estamos acostumbrados a construir listas de tareas, de libros, de comestibles que hay que comprar en el supermercado, etc. Podemos enumerar los elementos de una lista o podemos mantenerla en orden alfabtico. Para otras listas, podemos conservar los elementos en un orden concreto que tenga sentido para nosotros. Hay tres categoras de colecciones de tipo lista: 1. Listas ordenadas (fig. 1.1). Los elementos estn ordenados segn alguna caracterstica inherente de los mismos. Por ejemplo, una lista de personas ordenada alfabticamente, una lista de inventario ordenada en forma ascendente por el nmero de producto. Cada elemento que se aade a una lista ordenada tiene su ubicacin adecuada dentro de la lista. 2. Listas desordenadas (fig.1.2). Los elementos no tienen ningn orden inherente a una caracterstica de los elementos, sino que estn ordenados segn su colocacin en la lista, el orden no est con base a los propios elementos, quien utiliza la lista es quien determina el orden de los elementos. 3. Listas indexadas (fig.1.3). Los elementos pueden ser referenciados mediante un ndice numrico. La lista indexada es similar a la lista desordenada en el sentido que no hay una relacin inherente entre los elementos que determinen su ordenacin.

Adicin de un elemento Inicio de lista

39

Fin de la lista

12

18

34

45

52

72

Fig. 1.1 Vista conceptual de una lista ordenada

Adicin de un elemento Adicin de un elemento Inicio de lista Fin de la lista Adicin de un elemento

Fig. 1.2 Vista conceptual de una lista desordenada

Adicin de un elemento Adicin de un elemento Inicio de lista Fin de la lista Adicin de un elemento

Fig. 1.3 Vista conceptual de una lista Indexada

MATERIAL Y EQUIPO NECESARIO. Fuentes de informacin del tema relacionado con la prctica. Computadora con el compilador java. METODOLOGA. Implementar una lista de caracteres ordenada alfabticamente en un arreglo (vector), fijando el inicio de la lista en el ndice cero y desplazar los elementos segn sea necesario cuando se inserta un nuevo elemento. Recuerde que en una lista ordenada, los elementos que se insertan tienen un lugar especfico dentro de la misma (fig. 1.1), as que, en nuestro caso particular, para insertar un elemento en la lista y quede ordenado, debe encontrar el lugar que le corresponde dentro de esta lista. Un elemento podra ser insertado al inicio de la lista, al final o en una posicin intermedia segn el elemento a insertar, esto implica que en algn caso, es necesario desplazar algunos elementos de la lista para hacer espacio e insertar un nuevo elemento o para cubrir el hueco dejado por un elemento que se ha removido. Especificaciones de diseo. 1. Utilice la clase JOptionPane para realizar las entradas y salidas de datos. 2. La clase ejecutable ListaOrdenada (donde est el main) deber inicialmente solicitar la longitud del arreglo donde se implementar la lista y con este nmero crear el objeto lista del tipo ListaOrdenEnArray. El objeto creado es manejado por la clase ejecutable utilizando el siguiente men:
LISTA ORDENADA DE CARACTERES IMPLEMENTADA EN UN ARREGLO

MENU DE OPCIONES 1. INSERTAR UN CARCTER EN LA LISTA 2. REMOVER UN CARCTER DE LA LISTA 3. MOSTRAR LISTA ORDENADA 4. MOSTRAR LONGITUD DE LA LISTA 5. TERMINAR EJECUCIN INTRODUZCA EL NMERO DE LA OPCIN DESEADA => _

public class ListaOrdenEnArray { private char [ ] array;//Agregue las variables de instancia requeridas. public class ListaOrdenEnArray(int lon) //Constuructor { array = new char[lon]; //Agregue cdigo faltante. } public boolean insertar(char car) { Cdigo para insertar un elemento carcter (car) en la lista y que este quede ordenado, retorna true si insert correctamente. } public boolean remover(char car ) { Cdigo para remover un elemento carcter (car) de la lista y que sta quede ordenada y sin huecos, retorna true si removi correctamente. } public void mostrarLista() { Cdigo para mostrar en la pantalla la lista ordenada. } public Int longitudLista() { Cdigo que retorna la longitud de la lista. } public boolean estaVacia() { Retorna true si la lista est vaca o false de lo contrario. } Public boolean estaLlenla() { Retorna true si la lista est llena o false de lo contrario. } }

Fig. 1.4 Clase ListaOrdenEnArray.

La clase ejecutable ListaOrdenada crea el objeto lista de la clase ListaOrdenEnArray (fig. 1.4), presenta el men y llama a los mtodos de esta clase para manejar el objeto creado segn la opcin seleccionada por el usuario del programa. El valore de retorno del mtodo insertar() lo utiliza para imprimir los mensajes: El carcter se insert correctamente si el valor de retorno es true, y No hay lugar para otro carcter si el valor de retorno es false. El valor de retorno del mtodo remover() lo utiliza para imprimir los mensajes: El carcter se removi correctamente si el valor de retorno es true, y El carcter x no existe en la lista si el valor de retorno es false. 3. Complete el esbozo de la clase ListaOrdenEnArray mostrado en la figura 1.4. Esta clase no requiere que agregue mtodos adicionales, nicamente agregue las variables de instancia o de clase que sea absolutamente necesarias para que la clase proporcione adecuadamente los servicios requeridos por el programa de aplicacin. Observe que el constructor debe establece el estado inicial del objeto lista (vaca) y que el arreglo array se inicializa con el nmero de elementos que el usuario establece al momento de crear el objeto lista. Compile y guarde el archivo de la clase ListaOrdenEnArray en la misma carpeta donde pondr el archivo de la clase ejecutable denominada ListaOrdenada. En la clase ListaOrdenEnArray, el mtodo insertar() deber recibir un carcter para luego colocarlo en el lugar que le corresponde en la lista, retorna un false si no lo insert por alguna causa. Considere los siguientes detalles: El punto de insercin del nuevo elemento en la lista; Cmo encontrarlo? Es obvio que para insertar un nuevo elemento debe haber lugar en el arreglo (array) y luego, si es necesario, recorrer la lista comparando el carcter a insertar con cada uno de los elementos de la lista hasta encontrar el lugar que le corresponde dentro de la misma (punto de insercin). Mover elementos para hacer espacio al nuevo elemento en el punto de insercin especificado por un ndice. Puede ser

necesario mover todos los elementos de la lista que estn a partir del punto de insercin, hasta el final de la lista (no del arreglo) una posicin a la derecha. Luego, colocar el nuevo elemento en el punto de insercin. El mtodo remover() recibe el elemento a eliminar de la lista, es similar al de insertar, solo que en este caso en lugar de encontrar el punto de insercin es necesario encontrar la posicin del elemento de la lista a eliminar. Luego, eliminar el carcter de la lista, simplemente moviendo una posicin a la izquierda todos los elementos de la lista que estn a la derecha del elemento a eliminar, de sta manera se sobre escribe el carcter y queda eliminado. En el caso de ser el ltimo de la lista, no es necesario hacer lo anterior, se podra eliminar solo actualizando un ndice al ltimo elemento de la lista, esto es, moviendo ste ndice un lugar a la izquierda. El elemento no se borra fsicamente pero s en forma lgica al no estar dentro de los lmites de la lista. Recuerde actualizar el contador de nmero de elementos en la lista tanto al insertar como al remover elementos. Los mtodos estaLlena() y estaVacia() los puede necesitar en los mtodos insertar y remover respectivamente. El mtodo mostrarLista() es simple, solo hay que imprimir la lista en el arreglo. El mtodo longitudLista() retorna un valor entero que debe corresponde al nmero de elementos que tenemos en la lista colocada dentro del arreglo. Se puede implementar utilizando una variable de instancia (contador) de elementos en la lista. El programa de aplicacin (main) imprime este valor cuando se solicita la opcin correspondiente del men de opciones. El mtodo estaVacia() retorna un valor true si est vaca la lista o false de lo contrario. El mtodo estaLlenla() retorna un valor true si la lista est llena o false de lo contrario.

SUGERENCIAS DIDCTICAS. Se recomienda que la prctica se realice en equipo, sin embargo, es muy conveniente que el alumno elabore la prctica en forma individual, y aporte su experiencia personal a la solucin elaborada en equipo. Lea cuidadosamente toda la prctica y de ser necesario pregunte o investigue aquello que no entienda. Siga estrictamente las especificaciones de diseo, esto le lleva paso a paso hacia la solucin, evita que se pierda en otra posible solucin que no se ajusta a esta prctica, contando tambin con la oportunidad de recibir ayuda ms precisa del profesor. Disee completamente la implementacin de la solucin antes de pasar a la codificacin, esto implica el uso de una metodologa orientada a objetos. Considere el paso de parmetros indicado en cada mtodo (entiende este mecanismo?) Pruebe los lmites de la lista, normalmente son puntos de error lgico. REPORTE DEL ALUMNO Presentacin: Llene e imprima la cartula que se anexa al inicio de la prctica. (Proporcionada en formato digital). Contenido general para todas las prcticas. 1. Documentacin de la solucin (segn la metodologa usada. debe incluir al menos algoritmos, listado de todas las clases desarrolladas, programa en memoria USB para probarlo). 2. Fuentes de informacin consultadas. Resultados de la prctica 1. Conteste las siguientes preguntas: 1. qu clase de estructura identifica en esta prctica?

2. Qu ventajas encontr en la lista implementada en un arreglo? 3. Qu desventajas encontr en la lista implementada en un arreglo? 4. Escriba nombre y el lugar en su programa donde se encuentran dos datos encapsulados. Explique el por qu? 5. Escriba el nombre de 2 ndices usados en su programa y la funcin que tienen. 6. Cmo determina especficamente su programa el estado o condicin de lista vaca?

FUENTES DE INFORMACIN. John Lewis, Estructuras de datos con Java, Ed. PEARSON Addison Wesley. Luis Joyanes Aguilar, Java 2 Manual de programacin, ed. Osborne Mc. Graw Hill.

You might also like