Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Pedido] Final de algoritmos 18/02/12
Autor Mensaje
Nikod11 Sin conexión
Secretario General
...
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 789
Agradecimientos dados: 84
Agradecimientos: 396 en 56 posts
Registro en: Mar 2011
Facebook LinkedIn
Mensaje: #1
[Pedido] Final de algoritmos 18/02/12 Finales Algoritmos y Estructuras de Datos
Bueno, resulta que en el recu del 2do parcial de algoritmos tomaron el final de la fecha anterior.... y posiblemente repitan lo mismo en febrero.

El final es el 18 y yo rindo el 23, si alguien lo puede subir me haría un gran favor =D. Gracias
Otros adjuntos en este tema
.jpg  2012-02-19 13.15.52.jpg ( 669,54 KB / 3017) por agustinp.metz
01-02-2012 14:13
Envíale un email Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Nikod11 recibio 2 Gracias por este post
nahuel (04-02-2013), leirbag00 (20-12-2014)
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #2
RE: [Pedido] Final de algoritmos 18/02/12
Hola como andas?

Ya que preguntas...hoy rendi el final...fue idéntico al examen final del 12 de Diciembre de 2009, si lo tenes joya, sino avisame que lo escaneo y lo subo!

Saludos
18-02-2012 20:19
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
elpuma93 Sin conexión
Empleado de Fotocopiadora
Fat Bottomed Girls you make th...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 28
Agradecimientos dados: 15
Agradecimientos: 0 en 0 posts
Registro en: Dec 2011
Mensaje: #3
RE: [Pedido] Final de algoritmos 18/02/12
Si lo pudieses subir seria genial. Gracias thumbup3
19-02-2012 12:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #4
RE: [Pedido] Final de algoritmos 18/02/12
   
Aca adjunto una imagen del final.

Como se resuelve?

Tiene tres archivos: Inscrip.dat, Materias.dat, Carreras.dat

Hay que usar un Array [1..15] de registros que tengan codCar, nomCar y libro.

Tambien una lista con sublista...los campos de la lista son codCar, codMat, subList, sig
En la sublista los campos son legajo, nombre, siguiente.

-Lo que hay que hacer es recorrer secuencialmente el archivo de Carreras (ordenado de forma ascendente por codCar) e ir cargando los registros de archivo en el array, si quieren, para que sea mas eficiente, usen un LEN, porque dice que el maximo de carreras son 15, pero nunca asegura que en todas van a tomar final.

-Despues recorren secuencialmente el archivo de materias y van cargando la lista principal con los campos que antes explique!
ACA HAY DOS FORMAS DE HACERLO: EN EL FINAL PIDEN IMPRIMIR EL LISTA CON CODIGO DE CARRERA Y MATERIA ASCENDENTE, PERO EN EL ARCHIVO ESTA ORDENADO DESCENDENTE. PUEDEN INSERTAR ORDENADO O MEJOR TODAVIA UTILIZAR UNA PILA, ASI SE ASEGURAN QUE EL QUE PRIMERO SAQUEN PARA IMPRIMIR VA A SER EL ULTIMO DEL ARCHIVO (EL MENOR). LO MAS EFICIENTE ES USAR LA PILA.

- Lo que hacen despues es recorrer el archivo de Inscripciones. A medida que leen un registro usan la funcion buscarEnLista, le pasan la lista principal y el reg.mat, la funcion les devuelve el nodo correspondiente. Despues llaman a la funcion InsertaOrdenado, le pasan la sublista y reg. El InsertaOrdenado lo hacen por apellido ascendente, ya que el archivo de inscripciones no tiene orden.

-Bueno, en este momento tienen casi todo resuelto, con todas las estructuras cargadas. Ahora, aunq no parezca, lo mas dificil es imprimir el listado.
Presten atencion a lo que dice en el examen despues del Listado....el libro es uno por carrera (perfecto, ya esta en el array) pero el Folio empieza en 1 EN CADA CARRERA y aumenta cuando el ORDEN supera los veinte (el orden se reinicia a 1 si esto pasa) o cuando CAMBIA LA MATERIA.
Lo mejor para hacer aca es recorrer la lista con una especie de corte de control. Recuerden que tienen la lista ordenada ascendente por carrera y materia. Hacen corte de control por el campo lista^.codCar, asi que cada vez que el campo sea distinto al ultimo leido reinician el Folio a 1. Asi solucionamos el tema de que el folio sea 1 cada vez que se lea una carrera nueva.
Bueno, ahora viene lo mas jodido, desapilamos el primer nodo (conviene que desapilar devuelva el nodo desapilado y no el valor de algun campo). A eso nodo le llamamos por ejemplo "P". Entonces ahora hay que recorrer P^.sublst (donde estan cargados los alumnos) mientras sea distinto de NiL. Pero que pasa si hay mas de 20 alumnos..hay que tener cuidado con ORDEN y FOLIO.
Antes de entrar en el WHILE P^.SUBLST <> NIL conviene crear una variable booleana: por ejemplo finAlumnos y asignarle FALSE.
Entonces hacemos un WHILE NOT FINALUMNOS y debajo mostramos FOLIO, inicializamos ORDEN en 1 y despues si hacemos el while de la sublista, pero lo hacemos de esta manera WHILE P^.SUBLST <> NIL AND ORDEN<=20, entonces vamos mostrando los datos de los nodos de la sublista. En un momento el ciclo va a cortar, entonces afuera del ultimo while que explique pero dentro del WHILE NOT FINALUMNOS hacemos un IF ORDEN > 20, y en el lado izquierdo aumentamos en uno el folio, en el derecho ponemos en true a finAlumnos y aumentamos el folio en 1. ( Si sale por el lado derecho significa que el ciclo termino porque la sublista quedo vacia, por lo tanto va a cambiar de materia).
Asi se cierran los dos WHILE y luego avanzan la lista principal al nodo siguiente...y asi se resuelve.

Otra cosa, para imprimir el nombre de la carrera y el libro hacen BuscarEnArray y le pasan el lista^.codCar y el array.

Si tienen alguna duda pregunten!

Saludos y suerte!
19-02-2012 13:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] agustinp.metz recibio 2 Gracias por este post
tachu (25-11-2012), Maxwell (05-10-2016)
colito4 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional General Pacheco

Mensajes: 58
Agradecimientos dados: 1
Agradecimientos: 2 en 2 posts
Registro en: Sep 2010
Mensaje: #5
RE: [Pedido] Final de algoritmos 18/02/12
ami se me complico y no lo pude hacer, en mi opinion de los 4 finales que se vienen tomando en este ciclo este fue el peor, hise los 3 de diciembre y fueron una pavada en relacion a este
20-02-2012 13:50
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #6
RE: [Pedido] Final de algoritmos 18/02/12
Parece facil hasta la parte del listado, con el tema de los folios y el orden...
Yo porque habia practicado ese de diciembre de 2009 que es identico al que tomaron el sabado 18
20-02-2012 16:01
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
andresAKD Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17
Agradecimientos dados: 6
Agradecimientos: 1 en 1 posts
Registro en: Nov 2008
Mensaje: #7
RE: [Pedido] Final de algoritmos 18/02/12
yo lo encare re bien, pero no llegue con el tiempo lpm! tenes que estar afiladisimo para hacer todo..
buenisima la explicacion de agustin del final, muchas gracias!
20-02-2012 16:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 574 en 201 posts
Registro en: Aug 2010
Mensaje: #8
RE: [Pedido] Final de algoritmos 18/02/12
Ese final lo he resuelto y creo que más sencillo todavía...
Tampoco entendí para qué usaste un BuscarEnArray, siendo que, si mal no recuerdo, el vector ya lo tenías ordenado, entonces vas leyéndolo e imprimiendo secuencialmente cuando lo recorrés
Y dentro de ese mismo ciclo [de 1 a LEN, ponele] vas sacando las materias, los alumnos, el orden y el folio.
Era sencillo en que cuando llegabas a desarrollar los procedimientos estándares, tenías un insertar en forma de pila, un buscaNodo, un InsertaOrdenado [por la sublista en realidad] y después para suprimir los nodos como tenés todo ordenado, directamente hacés un suprime_primero, et voi là.

Creo que no es la primera vez que toman un final repetido..
Ah, ya entendí
Imprimiste con la lista el código de carrera, y por eso el BuscarEnArray.
Creo que para evitarme eso, y porque en la lista el código de carrera se iba a repetir, para evitar evaluar, directamente recurrí a un for I to LEN, entonces como cada vez que leía en el array significaba que estaba leyendo una carrera diferente, creo que ahí seteé el folio en 1, si mal no recuerdo

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
(Este mensaje fue modificado por última vez en: 20-02-2012 16:22 por nanuiit.)
20-02-2012 16:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #9
RE: [Pedido] Final de algoritmos 18/02/12
(20-02-2012 16:15)nanuiit escribió:  Ese final lo he resuelto y creo que más sencillo todavía...
Tampoco entendí para qué usaste un BuscarEnArray, siendo que, si mal no recuerdo, el vector ya lo tenías ordenado, entonces vas leyéndolo e imprimiendo secuencialmente cuando lo recorrés
Y dentro de ese mismo ciclo [de 1 a LEN, ponele] vas sacando las materias, los alumnos, el orden y el folio.
Era sencillo en que cuando llegabas a desarrollar los procedimientos estándares, tenías un insertar en forma de pila, un buscaNodo, un InsertaOrdenado [por la sublista en realidad] y después para suprimir los nodos como tenés todo ordenado, directamente hacés un suprime_primero, et voi là.

Creo que no es la primera vez que toman un final repetido..
Ah, ya entendí
Imprimiste con la lista el código de carrera, y por eso el BuscarEnArray.
Creo que para evitarme eso, y porque en la lista el código de carrera se iba a repetir, para evitar evaluar, directamente recurrí a un for I to LEN, entonces como cada vez que leía en el array significaba que estaba leyendo una carrera diferente, creo que ahí seteé el folio en 1, si mal no recuerdo

Si, tenes razon, lo que decis vos es mejor todavia...pero bueno, se me ocurrio eso ja!
Depende de que criterio usen para corregir los profesores

(20-02-2012 16:13)andresAKD escribió:  yo lo encare re bien, pero no llegue con el tiempo lpm! tenes que estar afiladisimo para hacer todo..
buenisima la explicacion de agustin del final, muchas gracias!


Que cagada....el tema del tiempo es una mierda!
Igual lo importante (a pesar de todo) es que lo encaraste bien, lo del tiempo es seguir practicando y nada mas...
como dije antes...si no lo hubiera resuelto antes no llegaba yo tampoco! Ademas nunca sabes con que te pueden caer...
(Este mensaje fue modificado por última vez en: 21-02-2012 20:42 por agustinp.metz.)
21-02-2012 20:36
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 574 en 201 posts
Registro en: Aug 2010
Mensaje: #10
RE: [Pedido] Final de algoritmos 18/02/12
(21-02-2012 20:36)agustinp.metz escribió:  
(20-02-2012 16:15)nanuiit escribió:  Ese final lo he resuelto y creo que más sencillo todavía...
Tampoco entendí para qué usaste un BuscarEnArray, siendo que, si mal no recuerdo, el vector ya lo tenías ordenado, entonces vas leyéndolo e imprimiendo secuencialmente cuando lo recorrés
Y dentro de ese mismo ciclo [de 1 a LEN, ponele] vas sacando las materias, los alumnos, el orden y el folio.
Era sencillo en que cuando llegabas a desarrollar los procedimientos estándares, tenías un insertar en forma de pila, un buscaNodo, un InsertaOrdenado [por la sublista en realidad] y después para suprimir los nodos como tenés todo ordenado, directamente hacés un suprime_primero, et voi là.

Creo que no es la primera vez que toman un final repetido..
Ah, ya entendí
Imprimiste con la lista el código de carrera, y por eso el BuscarEnArray.
Creo que para evitarme eso, y porque en la lista el código de carrera se iba a repetir, para evitar evaluar, directamente recurrí a un for I to LEN, entonces como cada vez que leía en el array significaba que estaba leyendo una carrera diferente, creo que ahí seteé el folio en 1, si mal no recuerdo

Si, tenes razon, lo que decis vos es mejor todavia...pero bueno, se me ocurrio eso ja!
Depende de que criterio usen para corregir los profesores

De esa forma no se me había ocurrido (la tuya). Pero como evaluaban performance, me acostumbré más al tipo de resolución que te comentaba
De todas maneras el abanico es grande. Digamos, tu resolución y la mía están más que bien. De hecho, si la memoria estática no hubiera estado y se hubiera permitido un seek por registro de archivo de carreras, tu resolución era más adaptable a esa modificación

Lo mismo con el Inserta_Nodo y el Inserta_Delante [como en pila]. No te pueden poner que está mal, pero es más eficiente usar formato pila

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
21-02-2012 21:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
...
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 789
Agradecimientos dados: 84
Agradecimientos: 396 en 56 posts
Registro en: Mar 2011
Facebook LinkedIn
Mensaje: #11
RE: [Pedido] Final de algoritmos 18/02/12
Muchas gracias por postear el final =D Se me ocurrio resolverlo de la misma forma que Nanuiit.

Una consulta, si quiero actualizar la información de un nodo puedo hacer un Buscarnodo (que devuelve puntero) y si puntero es <> NIL, entonces hago ptr^.info.acum <- ptr^.info.acum + 1. Es posible realizar eso o flashie mucho? =P
22-02-2012 11:45
Envíale un email Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #12
RE: [Pedido] Final de algoritmos 18/02/12
Jaja, no flashiaste, esta bien. Es la clasica función BuscarEnLista!

http://holamundopascal.blogspot.com/ (blog del profesor Pablo Snaj....)

Fijate en este blog que tenes todos los procedimientos de arrays y listas que podes necesitar en el examen. El inserta ordenado de lista esta mal, en realidad, esta mucho mas complicado de lo que es.
Si necesitas lo subo...

Saludos!
22-02-2012 12:04
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
...
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 789
Agradecimientos dados: 84
Agradecimientos: 396 en 56 posts
Registro en: Mar 2011
Facebook LinkedIn
Mensaje: #13
RE: [Pedido] Final de algoritmos 18/02/12
Muchas gracias por la ayuda =D Yo tengo una hojita de procedimientos que nos dejo el profesor pero esta un poco desprolija =P

Para los finales ultimamente solo se usan listas no? Los procedimientos que tengo son Buscarnodo, InsertaNodoOrdenando, Ins1ernodo, Elim1roNodo, BuscaInsertaNodo. Me faltaria alguno 'indispensable'?
22-02-2012 12:31
Envíale un email Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agustinp.metz Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 32
Agradecimientos dados: 20
Agradecimientos: 57 en 10 posts
Registro en: Apr 2011
Facebook Twitter
Mensaje: #14
RE: [Pedido] Final de algoritmos 18/02/12
Mira, toman casi siempre Arrays y Listas, en muy pocos finales usas solo uno de las dos cosas.

Si, por nombres yo los aprendi distinto...pero seguramente sean los mismos:

Agregar: agrega un nodo nuevo siempre al final de la lista, y el puntero "apunta" siempre al primer elemento.

InsertarOrdenado: agrega el nuevo nodo en la posicion correspondiente al criterio de ordenamiento, y el puntero queda siempre apuntando al primer elmento de la lista.

Buscar: busca el elemento que le pasas a la funcion dentro de la lista y te devuelve un puntero al nodo

Liberar: le pasas la lista entera y hace un dispose de todos los nodos, sirve para eliminar todos los nodos...

Esos son los basicos, despues te diria que busques en el Blog los procedimientos de PILAS y COLAS, esos son importantes tambien...porque si bien esos procedimientos se pueden hacer con un InstertarAlPrincipio o InsertarAlFinal (cosa que hay que pensarlo uno) son mas sencillos y eficientes APILAR, DESAPILAR, ENCOLAR, DESENCOLAR....y eso lo evaluan en los examenes. Te lo digo porque, como viste en el examen que subi, hay que imprimir ascendente el listado y el archivo esta descendente...entonces con un APILAR el primero que pones en pila es el ultimo que vas a sacar (DESAPILAR)..
Fijate si podes darles una leida...estan bien explicados!

Cualquier cosa decime!
22-02-2012 12:50
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
...
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 789
Agradecimientos dados: 84
Agradecimientos: 396 en 56 posts
Registro en: Mar 2011
Facebook LinkedIn
Mensaje: #15
RE: [Pedido] Final de algoritmos 18/02/12
Buenisimo, yo Colas lo entiendo poco y nada Confused

El final lo resolvi usando la funcion APILAR o INS1ERNODO con una lista, segun mi profesor se puede hacer eso. Ademas para liberar nodos, uso Elimina1ro, y voy liberandolos a medida que lista <> NIL.

Me faltaba el Agregar, que segun el blog, mantiene el orden =P. Y me parece que el InsertarOrdenado lo tengo mal, me lo podrias pasar?

Muchas gracias por tu tiempo =D
22-02-2012 13:26
Envíale un email Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.