Sei sulla pagina 1di 6

Instrumentos de Evaluación

Asignatura: Estructura de Datos


Código 00825
I Cuatrimestre 2019

1 Tarea #1

Objetivo:

Que el estudiante utilice recursividad para resolver problemas comunes utilizando el lenguaje
Java.

Explicación:

La recursividad es una técnica de programación que permite que un bloque de instrucciones se


ejecute n veces. Java nos permite utilizar recursividad ya que en este lenguaje es posible que
un método se invoque a sí mismo. Debe quedar claro que no se trata de iteración como la que
utilizan otras estructuras como el for, while, etc.

Desarrollo:

Se deberá crear una aplicación Java, donde el usuario podrá utilizar un menú con las
siguientes opciones:

1. Digitar número entero mayor.


2. Sumar digitos del número digitado por el usuario.
3. Invertir números.
4. Crear un arreglo de enteros generados aleatoriamente, del tamaño del número digitado.
Pedir otro número al usuario que será buscado dentro del arreglo. Mostrar si se
encontró o no dentro del arreglo.
5. Terminar.

Ejemplo:

1. El usuario digita 1234


2. La suma de los dígitos: 10
3. Número invertido: 4321
4. Se pide un número más al usuario y se recorre el arreglo de tamaño 1234 para ver si se
encuentra o no.

Deben incluirse validaciones para que el programa nunca dé errores numéricos ni de otro tipo.

1
Rúbrica:

Aspecto a calificar Porcentaje


Uso de menú 10%
Validaciones 10%
Uso de recursividad 60%
Documentación interna 10%
Ejecución correcta de la 10%
aplicación
Total 100%

2 Tarea #2

Objetivo:

Que el estudiante aplica el concepto de pila estática utilizando Java.

Explicación:

Una pila es una estructura de datos donde el último elemento en ingresar es el primero en salir
(LIFO: Last in, First out). Por ejemplo, podemos mencionar una serie de platos sucios apilados
formando una torre, donde el último plato que se coloca en la pila, el de encima, será el primero
en ser lavado, y así sucesivamente hasta llegar al plato que quedó al fondo, el primero en
llegar, quien precisamente será el último en ser lavado.

Desarrollo:

Se deberá crear una aplicación Java, donde el usuario podrá utilizar un menú con las
siguientes opciones:

1. Crear pila. En esta opción se le debe pedir al usuario el tamaño de la misma. Utilizar un
vector de números enteros.
2. Apilar. Se le debe pedir al usuario que digite los números enteros que se incluirán en la
pila, según el tamaño que definió en su creación. Los números no se podrán repetir.
3. Desapilar. El usuario sacará de la pila números de uno en uno hasta que desee, incluso
podría dejar vacía la misma.
4. Mostrar tamaño actual de la pila. No se refiere al tamaño con que se definió en su
creación, sino a la cantidad de valores actuales en la pila.
5. ¿Está vacía la pila?. Indicar sí o no.
6. Mostrar elementos actuales en la pila.
7. Vaciar pila completa.
8. Mostrar valor de una posición determinada. El usuario digita una posición de la pila, y se
muestra el valor correspondiente, donde cero es la posición del primer valor ingresado.
Debe validarse si la posición indicada no tiene valor asociado o si la posición es mayor
al tamaño de la pila.
9. Terminar.

2
Deben incluirse validaciones para que el programa siempre se ejecute correctamente y sin
errores.

Rúbrica:

Aspecto a calificar Porcentaje


Validaciones 10%
Apilar 10%
Desapilar 10%
Mostrar tamaño actual 10%
Indicar si la pila está vacía 10%
Mostrar elementos de la pila 10%
Vaciar pila completa 10%
Mostrar valor de una posición 10%
Documentación interna 10%
Ejecución correcta de la aplicación 10%
Total 100%

3 Proyecto #1

Objetivo:

Que el estudiante aplique al menos dos técnicas de ordenamiento utilizando el lenguaje Java.

Explicación:

Para mejorar el procesamiento de cualquier aplicación, se requiere en la mayoría de los casos


de algoritmos de ordenamiento de los elementos involucrados en los procesos.

Existen diferentes algoritmos para esto, entre los que están:

● Ordenación por inserción.


● Shellsort.
● Mergesort.
● Quicksort.
● Participación.
● Selección rápida.

El ordenamiento se realiza en memoria siempre y cuando la cantidad de elementos a ordenar


no sea tan extenso. Si se trata de un volumen de datos muy amplio, ya se tendría que trabajar
sobre disco, bases de datos u otros medios de almacenamiento masivo.

Desarrollo:

Se requiere obtener una lista de los mejores 15 tenistas de la ATP (Asociación de Tenistas
Profesionales), junto con el nombre del país al que representan, su edad y su puntaje en la
ATP.

3
Esta información se incluirá sin un orden en particular y los datos se almacenarán en una
matriz.

La aplicación utilizará algoritmos de ordenamiento para mostrar a los tenistas según un orden
especificado por el usuario.

Se contará con un menú con las siguientes opciones:

1. Ingreso de los tenistas.


2. Mostrar datos ingresados. Aquí se muestran los tenistas en el orden en que ingresaron,
con sus correspondientes datos.
3. Definir algoritmo de ordenamiento. En esta opción la aplicación muestra dos tipos de
algoritmo a seleccionar. El estudiante podrá mostrar el nombre de dos de los algoritmos
indicados en la ​Explicación​ de este proyecto. Por ejemplo se puede mostrar como
opciones el Quicksort y Participación, donde el usuario eligiera cuál va a utilizar.
4. Mostrar tenistas ordenados en forma descendente según puntaje.
5. Mostrar tenistas ordenados en forma ascendente según edad.
6. Mostrar tenistas ordenados alfabéticamente en forma ascendente según su país. En
caso de existir varios tenistas del mismo país, el segundo criterio de ordenamiento será
su nombre.
7. Terminar.

Deben incluirse validaciones para que el programa siempre se ejecute correctamente y sin
errores.

Para utilizar cada opción de ordenamiento, se deberá haber seleccionado antes un algoritmo
de ordenamiento.

La salida de los datos debe verse de esta manera o similar (ejemplo según ordenamiento por
puntaje):

Tenista País Edad Puntaje


Novak Djokovic Serbia 28 16,790
Andy Murray Gran Bretaña 28 8.855
Roger Federer Suiza 34 8,795

Dominic Thiem Austria 22 2,020

4
Rúbrica:

Aspecto a calificar Porcentaje


Validaciones 10%
Captura y salida de los datos 10%
Uso correcto de algoritmo 1 en ordenamiento por puntaje 10%
Uso correcto de algoritmo 2 en ordenamiento por puntaje 10%
Uso correcto de algoritmo 1 en ordenamiento por edad 10%
Uso correcto de algoritmo 2 en ordenamiento por edad 10%
Uso correcto de algoritmo 1 en ordenamiento por país y nombre 10%
Uso correcto de algoritmo 2 en ordenamiento por país y nombre 10%
Documentación interna 10%
Ejecución correcta de la aplicación 10%
Total 100%

4 Proyecto #2

Objetivo:

Que el estudiante aplique sus conocimientos en el uso de listas enlazadas y colas, utilizando el
lenguaje java.

Explicación:

Las listas son estructuras simples de datos que se utilizan para almacenar elementos de
diferentes tipos. Las listas son ordenadas con longitud arbitraria, donde se pueden añadir o
excluir elementos en cualquier ubicación.

Las listas pueden implementarse utilizando arreglos o por medio de listas enlazadas sencillas,
donde cada enlace contiene el elemento de la lista así como el puntero al siguiente elemento.
Cuando no se tiene claro cuántos elementos se va a requerir almacenar, es cuando se piensa
que lo mejor es utilizar listas enlazadas.

Desarrollo:

Se requiere crear una cola utilizando una lista enlazada. Cada elemento de la cola contendrá
un número entero positivo o negativo.

Se contará con un menú con las siguientes opciones:

1. Insertar elemento.
2. Extraer elemento. Se elimina de la cola.
3. Obtener el primer elemento de la cola. Se muestra su valor, sin extraerlo.
4. Obtener el último elemento de la cola. Se muestra su valor, sin extraerlo.
5. Obtener el elemento de la cola en la posición que indique el usuario. Se muestra su
valor, sin extraerlo.
6. ¿La cola está vacía?. En esta opción solo se indica SI o NO.

5
7. Tamaño actual de la cola. Número de elementos.
8. Mostrar todos los elementos de la cola. Desde el primer elemento hasta el último.
9. Vaciar cola.
10. Terminar.

La opción 8 (Mostrar todos los elementos de la cola), mostrará en pantalla la cola en forma
gráfica, es decir, no se escribirá texto en pantalla ni se utilizarán ventanas gráficas con texto en
ellas, sino que se mostrará un gráfico como el siguiente (ejemplo de cola con 3 elementos):

Deben incluirse validaciones para que el programa siempre se ejecute correctamente y sin
errores.

No se debe utilizar ArrayList, LinkedList ni ninguna colección de Java ya implementada, sino


implementar listas enlazadas usando nodos.

Rúbrica:

Aspecto a calificar Porcentaje


Insertar elemento 10%
Extrae elemento 10%
Obtener primer elemento 10%
Obtener último elemento 10%
Obtener elemento en determinada posición 10%
Indicador de cola vacía 5%
Tamaño de cola 10%
Mostrar cola 20%
Vaciar cola 5%
Documentación interna 10%
Total 100%

Potrebbero piacerti anche