UTNianos

Versión completa: [Final][Algoritmos] 22-05-2013
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola gente, les subo el final de Algoritmos y estructura de Datos que se tómo ayer, 22/05/2013. Lamentablemente no le saqué foto ya que ni nos dejaron ver el examen.


El final era bastante simple. Nos dan un único archivo sin orden llamado 'Vuelos.dat' que contiene los datos del vuelo de un día, de los cuales el único necesario para la resolución era la Hora de Arribo-Partida (Es decir la hora en que el vuelo sale) el formato es HHMM (horas minutos) y del tipo Word (2b). Cada registro ocupaba algo así como 46b.

El enunciado nos pide crear la metodología necesaria para que se imprima en un tablero electronico, los vuelos de aquellos aviones que la hora de partida sea mayor a la hora actual (es decir los vuelos que todavía no salieron), ordenado por la hora de arribo-partida.
El tablero no puede mostrar más de 10 vuelos al mismo tiempo y cada vez un vuelo partió había que actualizar el tablero de forma que cada vuelo suba una línea y se agregue un nuevo vuelo al final. O sea que se muestre todo ordenado y solo los vuelos que no partieron.

Nos daban dos funciones, una llamada GetDATE(aaaa,mm,dd,ds) y GetTIME(hh,mm,ss,ms) para obtener la fecha y la hora, respectivamente.

Como restricciones:
Memoria para arrays: 590b
Memoria en disco: 0b
Memoria dinámica: lo que necesites justificando la elección
Acceso secuencial más un acceso directo en caso de necesitarlo.

Como se acostumbra desde el cambio de J. de cátedra, se deja una biblioteca con las funciones más comunes (como busquedaBin, LecturaEspecial, InsertaNodo, etc.) los cuales NO HAY QUE DESARROLLAR, siempre y cuando respetemos el formato y lo que devuelve, pudiendo cambiar el nombre de los parámetros.

Resolución:

El problema es mostrar los 10 vuelos más próximos a la hora actual, que se obtiene con GetTime. siempre y cuando la hora de arribo sea mayor a la actual.

Estructura

Con algunos de los pibes que rendimos el final, coincidimos que la estructura era una lista ordenada por hora de arribo-partida con los datos del archivo y un vector de registros que contenga los 10 vuelos a mostrar.

Como no había restricción en la memoria de los nodos, una chica puso todo el registro en cada nodo (50b = 46b + 4b). En mi caso solo puse la hora de arribo partida y la posición del registro en el archivo (8b = 2b + 2b + 4b).

Y un vector de 10 registros que contiene todos los datos de los vuelos a mostrar. Como nos daban 590b, cada registro podía contener 59b, suficiente para meter el registro de 46b.

Estrategia

*Abrir el archivo
*Inicializar (el puntero a la lista y el índice del vector)
*Procesar archivo (es decir subirlo a la lista, ordenado por hora de arribo-partida)
*GetDATE
*Mientras haya nodos en la lista (L<> nil):
_GetTIME (me devuelve la hh, los mm, y los segundos y milésima de segundos)
_Sacar (primer nodo, el cual devuelve VALOR, en mi caso la hora de arribo y la posición del vuelo en el archivo)
_Si valor.hap > hh*100+mm
-Actualizar vector
-Imprimir vector
*Cerrar Archivos
*FIN
Me suena a un parcial viejo eso xD


Off-topic:
Che, podemos indexarlo al topic donde están los finales desde el 2004? (el topic de mi firma)
No sé, pero era demasiado simple. Incluso daba una ayuda del programa principal.

Cuando nos repartieron los examenes, nos daban 15min para devolverlo y quedar ausente. Solo uno del aula se fue, los demas nos quedamos. Creo que aprobaron la mayoría. Se podría decir que hay parciales más difíciles.

(23-05-2013 14:45)nanuiit escribió: [ -> ]
Off-topic:
Che, podemos indexarlo al topic donde están los finales desde el 2004? (el topic de mi firma)

Si, por supuesto. Si alguien sube una imagen del final sería mejor.
Sí, bajó el nivel de los finales desde diciembre. Están regalando mucho!
Fijate lo que pregunté en offtopic por favor, gracias.
(23-05-2013 14:45)nanuiit escribió: [ -> ]Me suena a un parcial viejo eso xD

Exacto, pense lo mismo. Pero mepa que pedian otra cosa
(23-05-2013 14:39)Arshak escribió: [ -> ]Memoria dinámica: lo que necesites justificando la elección
Por favor , la cara de Cuello cuando leyo el enunciado.
Arshak yo lo resolvi igual que vos y me saque 10 asi que calculo que esta bien esa resolucion. Lo unico diferente es que cargue los primeros 10 vuelos (10 si me alcanzaba obviamente si habia menos menos..) y los mostre, y a partir de ahi fui haciendo todo lo del tablero y sacando de a uno por el tiempo.

La verdad bastante suerte que no estaba el cometravestis de cuello, sino se iba a poner heavy la cosa cuando viera la libertad en la memoria dinamica. Cualquier errorcito te clavaba un 2 furioso seguro..
Jajajaja, yo me saqué 9. No lo podía creer, la parte de Actualizar lo hice algo rebuscado, pero al parecer era la unica manera.
Cuando una piba me dijo que metió todo el registro en el nodo pensé que no aprobaba, pero como no había restricción de memoria estaba bien.

Creo que esta fecha de final es más fácil que las de invierno, hay menos gente rindiendo y menos tiempo para estudiar.

Nanu, ya te respondí, subilo si queres, ni me tenes que preguntar. Espero que alguien suba la hoja del final así lo tienen más formal.
La contra es que tardaron un hueevo para entregar las libretas, que necesidad de corregir todas para luego entregarlas todas juntas.
(23-05-2013 18:31)Maartin escribió: [ -> ]La contra es que tardaron un hueevo para entregar las libretas, que necesidad de corregir todas para luego entregarlas todas juntas.

Posta casi me duermo esperando a que entreguen las fucking libretas

una pelotudes el final, yo no tenia ganas de tener q hacer el acceso directo desp en el diagrama asi que meti todo directamente en el nodo, clave un 10 =D
Igual yo sospecho que los que nos sacamos 10 es porque los corrijio Brunito, sino dificilmente los otros te pongan 10 porque te deben bajar puntos x alguna boludez
(23-05-2013 19:09)Maartin escribió: [ -> ]Igual yo sospecho que los que nos sacamos 10 es porque los corrijio Brunito, sino dificilmente los otros te pongan 10 porque te deben bajar puntos x alguna boludez

Posta, en el aula que yo estaba dijo que queria que nos sacaramos todos 10 jajaja
Estabas en la 284? jajaja, si un genio Brunito encima se pone a corregir el enunciado del final en el momento y dice "bueno chicos hagamoslo facil cambien esto asi lo otro no les sirve para nada"
(23-05-2013 19:15)Maartin escribió: [ -> ]Estabas en la 284? jajaja, si un genio Brunito encima se pone a corregir el enunciado del final en el momento y dice "bueno chicos hagamoslo facil cambien esto asi lo otro no les sirve para nada"

Jajaja si, encima yo no estaba prestando atencion cuando lo dijo y al principio no entendia nada, igual despues lo repitio
Jajjajaa, yo tmb estaba en la 284. Perdón, me saqué 9, cagué el promedio del aula
Páginas: 1 2
URLs de referencia