Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[pedido]- final ALGORITMOS 19/02/2011
Autor Mensaje
Lea Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 20
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Mar 2011
Mensaje: #16
RE: [pedido]- final ALGORITMOS 19/02/2011
Lo acabo de resolver, pero difiero con ustedes. Primero, lo hice sin usar sublistas, directamente en un nodo meto el DNI (4 b.), un array de 5 b. (Cada uno de estos es un acumulador del examen 'I' (de 1 a 5) de tantas respuestas correctas), un campo Tot (1 b., acumulador del resultado final) y el campo siguiente, 4b.. Todo esto suma 14 b.. Como 'Examenes.dat' esta ordenado por código de examen y por dni, lo que hago son 2 cortes de control, es decir, mientras no cambie de examen, toda operacion que haga la haré sobre el indice 'I' del array del nodo de la lista de alumnos, y mientras no cambie de dni, verifico si la respuesta coincide en el array de resultados que tube que haber cargado al inicio de todo, en ese caso, acumulo 1 punto, tanto en el array que describi antes como en el campo Tot del nodo. (El nodo lo ubico luego de un BuscoOCreoNodo (Imaginenselo =P)). Despues el listado es simple, mientras la lista no sea NIL, hago un SacarPrimerNodo, y tengo todos los datos en el nodo que saque, y encima tal cual los tengo que mostrar.
Quise escanear la solucion pero las hojas que use son algo grandes acorde a mi scaner :/. Espero que se haya entendido lo que explique.

PD: Se puede usar lapiz en el final? (Uso hojas lisas)
03-03-2011 17:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #17
RE: [pedido]- final ALGORITMOS 19/02/2011
Está buena esa forma, no se me había ocurrido, ahorrás muchos más nodos.
Creo que sí te dejan usar lápiz si la hoja no es cuadriculada. Cuando iba por la mitad del exámen me dijeron que no escribiera en cursiva ¬¬ pero seguí porque no daba el tiempo para cambiar todo y además escribo lentísimo en imprenta.
03-03-2011 18:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 632
Agradecimientos dados: 180
Agradecimientos: 616 en 80 posts
Registro en: Sep 2008
Mensaje: #18
RE: [pedido]- final ALGORITMOS 19/02/2011
DNI = 4 bytes
VecI [1..5] * 1 byte = 5 bytes
Tot = 1 byte
Sgt = 4 bytes

14 bytes! Bien!

Lo que harías es, la primera vez que te aparece un examen, creas el NODO del DNI correspondiente, como el examen ese tiene varias respuestas, la segunda vez actualiza la cantidad de respuestas correctas y así en adelante hasta que cambie de DNI con un corte de control más interno.
Después va a venir el mismo código de examen pero con otro DNI, hacés lo mismo.
Cuando cambia el código de examen, el DNI que te aparece ya va a estar creado, pero en este caso se tiene que meter en otro índice del VecI que lo cambiás con el primer corte de control y listo...

Muy buena tu solución!
(Este mensaje fue modificado por última vez en: 03-03-2011 18:59 por leandrong.)
03-03-2011 18:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Lea Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 20
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Mar 2011
Mensaje: #19
RE: [pedido]- final ALGORITMOS 19/02/2011
Si, creo que sublistas es innecesario aca. Tambien se podria realizar con un nodo de 13 bytes, ya que el byte del campo 'Tot' se puede calcular en funcion de los otros 5 campos a la hora de listarlos. Creo que esta es la solucion mas eficiente en cuanto a ciclos y memoria utilizada, sin embargo tu resolucion esta bien... pero en las observaciones de un final aparece "... dado que el uso de ciclos afecta... se evaluara" y en otro finales llegue a ver que decian "... optimize el uso de memoria dinamica", asi que hay que tener en cuenta esto. Ademas es raro (pero puede ser) que se utilize la memoria dinamica para una cantidad exacta, en este caso para 5 sublistas.

PD: alguno tiene el ultimo final tomado (sabado 27/02)?
03-03-2011 19:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #20
RE: [pedido]- final ALGORITMOS 19/02/2011
Acá está


Archivo(s) adjuntos
.zip  20110226F2_Puertas.zip (Tamaño: 9,47 KB / Descargas: 38)
03-03-2011 20:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Lea Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 20
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Mar 2011
Mensaje: #21
RE: [pedido]- final ALGORITMOS 19/02/2011
Gracias, mañana lo hago y subo la solución, si alguno se prende así comparamos mejor. Saludos!
03-03-2011 20:22
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Fackus Sin conexión
Militante
A State Of Trance
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 97
Agradecimientos dados: 83
Agradecimientos: 18 en 12 posts
Registro en: May 2010
Mensaje: #22
RE: [pedido]- final ALGORITMOS 19/02/2011
Yo me prendo... Trato de resolverlo y plasmar mi resolución (?)
03-03-2011 21:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pollo Sin conexión
Profesor del Modulo A
123
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 383
Agradecimientos dados: 9
Agradecimientos: 38 en 6 posts
Registro en: Jun 2008
Mensaje: #23
RE: [pedido]- final ALGORITMOS 19/02/2011
buenisimo gente lo que subieron !! gracias por el aporte....

toda la vida es ahora ...
03-03-2011 22:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #24
RE: [pedido]- final ALGORITMOS 19/02/2011
Gracias por los aportes ;)

Recién estuve haciendo ese final y planteé lo mismo que Anirus sólo que en la sublista en vez de la Posición puse el Código de Examen y en la Lista agregué el nodo de Total de Correctas, pero sin dudas la estrategia de Lea era la idea del final, ya que dan justo los 14 bytes.

El último final lo resolví pero me sobraron 4000 bytes, asi que cuando pueda lo voy a revisar bien y comparamos.

Alguno sabe exactamente cuanto es el tiempo para rendir? 1h cuanto?
03-03-2011 23:53
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #25
RE: [pedido]- final ALGORITMOS 19/02/2011
Te dan 1 hora y media.
Los 4000 bytes me parece que son para hacer un vector de listas, te alcanza para 1000 punteros, uno por empleado, creo que primero hay que cargar el archivo de EntradasYSalidas poniendo los datos en las listas usando el legajo como posición del vector ya que va de 1 a mil. Después para imprimir vas leyendo el archivo de empleados que ya está ordenando alfabéticamente e imprimis los datos de ese registro y los de la lista que corresponde a ese legajo. Pero no pensé la estructura de la lista ni para qué se usan esos 6 bytes, mañana si me dan ganas lo intento resolver.
Una cosa que creo que hay que tener en cuenta es que no hay que guardarse toda la fecha en los nodos, sólo el día, porque el archivo tiene datos de un sólo mes, con que te guardes mes y año en una variable aparte para agregarlo después al imprimir basta =)
04-03-2011 00:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #26
RE: [pedido]- final ALGORITMOS 19/02/2011
Gracias.
Yo habia planteado:

Vector con 3 registros
| TotGralPuerta1 | 2b
| TotGralPuerta2 | 2b
| TotGralPuerta3 | 2b
6b

Lista
| Legajo | CantDiasTrabajados | Sublista | Sig |
2b + 1b + 4b + 4b = 11b

Sublista
| Fecha | Hora | Evento | IDPuerta | Sig |
4b + 2b + 1b + 1b + 4b = 12b


Pero como vos dijiste se podría hacer:

El mismo vector de TotGrales 6b

VecEmpleados
1 | pLista | 4b
...
1000 | pLista | 4b
4b * 1000b = 4000b

Lista
| Dia | Hora | Evento | IDPuerta | CantDiasTrabajados | Sig |
1b + 2b + 1b + 1b + 4b + 1b = 12b

Cualquier cosa después comparamos ;)
04-03-2011 00:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #27
RE: [pedido]- final ALGORITMOS 19/02/2011
Cantidad de días trabajados no hay que guardarlos, esos los contás cuando vas imprimiendo, cada vez que cambia el número de día sumas 1 a una variable de diasTrabajados y la imprimis cuando terminas con ese empleado, y para el siguiente la pones en 0 y la volvés a usar.

Esta materia me gustó pero ODIO diagramar, a las que no sabían programar en el grupo del TP les dí el código para que se peleen ellas con VISIO xD
(Este mensaje fue modificado por última vez en: 04-03-2011 01:15 por Anirus.)
04-03-2011 01:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
xtian89 Sin conexión
Campeon del cubo Rubik
8-)
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 187
Agradecimientos dados: 83
Agradecimientos: 1 en 1 posts
Registro en: Apr 2009
Facebook
Mensaje: #28
RE: [pedido]- final ALGORITMOS 19/02/2011
Yo me presenté al final de 26/02 que por suerte aprobé; lo habia pensado así:

array_Empleados: vector de 1000 registros de tipo lst
4b * 1000 = 4000 bytes

array_Acum: vector de 3 registros de tipo integer
3 * 2b = 6 bytes

lista lst: |IdPuerta|fecha|hora|Evento|sgte|
(1b + 4b + 2b + 1b + 4b = 12 bytes)


-Abro el archivo de EntradaSalida.dat y Agrego un nodo lst en el array_Empleado [Reg1.legajo] por cada registro Reg1 leído. En cada array_Empleado [ i ] me van a quedar una lista ya ordenada por nro de puerta y la fecha y hora. Cierro el archivo.

-Abro ahora el archivo Empleados.dat. Recorro también secuencialmente el archivo; por cada registro Reg2, leo el legajo y lo busco en array_Empleado [Reg2.Legajo]. Muestro la lista de nodos lst hasta q lst apunte a NIL, mientras acumulo la cantidad de veces que pasa por cada puerta en el array_Acum [lst.IdPuerta]. Muestro los totales Generales de cada puerta. La Cantidad de Días Trabajados serán la suma de los acumuladores dividido dos. Cierro el archivo y libero los nodos.
(Este mensaje fue modificado por última vez en: 04-03-2011 01:57 por xtian89.)
04-03-2011 01:52
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #29
RE: [pedido]- final ALGORITMOS 19/02/2011
Bien ahí xtian89!

Lo único que la Cantidad de Dias Trabajados no entiendo porqué seria la suma dividido dos.. capás lo hiciste asi por lo de Entrada/Salida pero puede realizar varias Entrada/Salida por día.. si te fijás en el enunciado la tabla, la cantidad de días que trabajó son 4 y si haces la suma de los acumulados dividido 2 te dá 5.

Si es como digo, y no interpreté mal algo, la Cantidad de Días Trabajados la tenes que ir acumulando mientras que el Día anterior sea distinto al Día que vas imprimiendo. Y si no me equivoco, para hacer eso tenés que agregar un ciclo extra y no se si eso es menos eficiente que haber puesto la Cantidad de Días Trabajados en el nodo de la Lista y en vez de la fecha poner Día asi te alcanzan los 12 bytes...
04-03-2011 02:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
xtian89 Sin conexión
Campeon del cubo Rubik
8-)
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 187
Agradecimientos dados: 83
Agradecimientos: 1 en 1 posts
Registro en: Apr 2009
Facebook
Mensaje: #30
RE: [pedido]- final ALGORITMOS 19/02/2011
Cita:Lo único que la Cantidad de Dias Trabajados no entiendo porqué seria la suma dividido dos.. capás lo hiciste asi por lo de Entrada/Salida pero puede realizar varias Entrada/Salida por día.. si te fijás en el enunciado la tabla, la cantidad de días que trabajó son 4 y si haces la suma de los acumulados dividido 2 te dá 5.

Ahh tenes razon, pueden entrar y salir varias veces al dia. Entonces tendría q guardar la variable fecha en fechaAnterior y hacer corte de control para acumular la cantidad de entradas y salidas, y recien cuando salga del WHILE sumar +1 a la cantidad de dias trabajados.

Sí, puede ser tmb la opción de usar la otra lista para guardar los dias trabajados, pero si hubiera puesto que la restriccion era filesize (EntradaSalida.dat) * nodos de 12 bytes ahi sí que no quedaba otra que hacerla por corte de control.
04-03-2011 02:54
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)