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
ayuda final algoritmos 06/08/11
Autor Mensaje
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: #1
ayuda final algoritmos 06/08/11 Finales Algoritmos y Estructuras de Datos
una pregunta estuve haciendo este final y quisiera saber cual seria la resolucion ya que no lo entiendo muy bien.
muchas gracias
09-12-2011 15:45
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador
2016! ❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.470
Agradecimientos dados: 930
Agradecimientos: 1.225 en 457 posts
Registro en: Sep 2010
Mensaje: #2
RE: ayuda final algoritmos 06/08/11
Subi el enunciado por favor.
09-12-2011 16:32
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
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: #3
RE: ayuda final algoritmos 06/08/11
me confundi de fecha: es este


Una empresa lleva el registro de entrada y salida de sus empleados, por tres diferentes puertas principales, y almacena los movimientos de un mes en un archivo binario, con el siguiente diseño:
EntradaSalida.Dat, con un registro por cada movimiento, ordenado por número de puerta, fecha y hora:
1. ID de puerta (1,2,3) 2. Fecha (aaaammdd) 3. Hora (hhmm)
4. Evento (‘E’:entrada, ‘S’:salida) 5. Legajo empleado (1..1000)
Los empleados pueden entrar o salir por cualquiera de las tres puertas principales, y varias veces al día. Toda entrada registrada en un día tiene registrada la salida, no hay inconsistencias.
También posee otro archivo Empleados.Dat, con un registro por cada empleado, máximo 1000 empleados, ordenado alfabéticamente por apellido y nombre y con el siguiente diseño:
1. Legajo (1..1000) 2. Apellido y nombre (25 caract) 3.Departamento (15 caract )
Se pide:
1. Obtener la fecha del sistema.
2. Desarrollar la metodología necesaria para realizar un algoritmo que emita el siguiente reporte, ordenado alfabéticamente por apellido y nombre del empleado, fecha y hora:

Reporte del e-lock
Fecha del reporte: dd/mm/aaaa
Total General entradas/salidas Puerta 1 9999
Total General entradas/salidas Puerta 2 9999
Total General entradas/salidas Puerta 3 9999
Apellido y Nombre: Perez, Juan Departamento: Sistemas
Fecha Hora Evento ID puerta
08/07/2008 14:49 Entrada 1
08/07/2008 18:15 Salida 2
10/07/2008 8:30 Entrada 2
10/07/2008 15:10 Salida 3
14/07/2008 8:26 Entrada 3
14/07/2008 15:09 Salida 1
15/07/2008 8:24 Entrada 1
15/07/2008 10:32 Salida 2
15/07/2008 11:40 Entrada 2
15/07/2008 13:13 Salida 3
Cantidad dias trabajados de Juan Perez: 99
....................................................................................................................
 Recursos, Restricciones y Observaciones:
• Memoria para arrays: 4000 bytes + 6 bytes.
• Memoria para estructuras dinámicas: nodos de 12 bytes.
• Accesos a archivos: un solo recorrido secuencial para cada archivo
• Utilizar procedimientos y funciones para desarrollar el algoritmo.
• Bloque principal sólo invocaciones a módulos.
• Optimización: dado que el uso de ciclos afecta el tiempo de ejecución de un proceso, se evaluará la eficiencia en el uso de los mismos.
• Desarrollar todos los módulos invocados.
• Utilizar nombres significativos para los identificadores, dibujos para las estructuras a utilizar, rotulando cada elemento, tamaño, breve leyenda de cómo se generan y estado inicial, respetar esos nombres para utilizarlos en el algoritmo. Letra clara, trazo fuerte y tamaño apreciable para que pueda leerlo un tercero. Escribir una carilla por hoja rotulando c/u. de ellas con su Apellido, Nombre y Nro. Pág. x de y.
09-12-2011 17:32
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador
2016! ❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.470
Agradecimientos dados: 930
Agradecimientos: 1.225 en 457 posts
Registro en: Sep 2010
Mensaje: #4
RE: ayuda final algoritmos 06/08/11
ESTRUCTURA

1)Vector de 1..3 y cada campo ocupa 2bytes entonces, 3x2= 6bytes CUMPLE



A este vector haces referencia con Reg.zona.

2)Vector de 1..1000, un vector de listas. Los nodos van a ser:
Fecha(aaaammdd) 4 + hora (int) 2 + evento 1 + puerta 1 + sigu(puntero) 4=12 cumple.
Vector: 1000*4 = 4000 cumple.

A este vector haces referencia con reg.leg (ya que tiene notese 1000 legajos a lo sumo)

Con esto tenes todas las estructuras que cumplen. Te comento masomenos como lo haria yo.. el toque final ovbiamente lo das vos.

[i]Programa principal:[/i]
-Inicializar
-Procesar
-Mostrar

Dentro de INICIALIZAR
Vec 1: pones en cero todo
Vec 2 : pones en "nil" todo

Dentro de PROCESAR
Tenes que llenar los vectores con los subindices que te indique mas arriba, solo tenes que abrir para leer el primer archivo. EL ingreso de los nodos a la lista correspondiente es de forma normal.. ya que ya viene ordenado todo eso asique no te tenes que preocupar. Como no tiene errores a todo E le va a corresponder una S. Tene en cuenta que una persona pudo haber entrado/salido mas de una vez pero tambien pudo no haber ido. Osea en el vector tenes que meter ese famoso. Buscar- actualizar o insertar... que se yo ponele lees un legajo tenes que fijarte si esta en el vector el legajo. Si esta agregas un nodo mas y lista va a ser distinto de nil
Ya te lo dije antes pero es importante que ambos vectores los llenes con las referencias de Reg.zona y Reg.leg sino dps.. anda a saber como lo vas a mostrar jajajaja.
Cuando lo termina de leer te va a quedar todo el primer vector lleno al igual que la lista con todas las entradas y salidas de cada uno. Ovbiamente como te dije.. puede darse el caso que alguno ni haya aparecido! a tener en cuenta

Dentro de Mostrar
Inovocas a la funcion primitiva "getdate" es una funcion de pascal que le teenes que mandar 4 argumentos : año, mes, dia y semana. Ejemplo : 1993 03 21 jueves eso te da .(ahi sacas lo del 1)
entonces mostras lo que te pide bonito asi como te aparece en el enunciado...
Mostrar el vec 1, un for de 1 a 3 nada que cueste mucho ¿no? jaja
Ahora si viene lo "jodido"
Tenes que abrir el segundo archivo pq ahi tiene el nombre y el dpto. Avos te pide por apellido... cosa que el archivo ya esta ordenado por eso. Entonces while not eof para que lea el archivo y te fijas antes que nada.. si el legajo que vos lees de este segundo registro tiene un nil o no. De tener nil quiere decir que dicho empleado nunca fue a trabajar pero si no es nil quiere decir que fue a trabajar. Por lo tanto, en la busqueda binaria.. pedis que te devuelva un R tipo boolean y pones en if lo que te dije recien.
Si el chabon trabajo entonces lo que vas a hacer es mostrar toda la lista que se encuentra en esa poscion del vector... mientras que mostras vas borrando asi te ahorras dps de borrarla.
Entonces una vez que muestres al ultimo ya se acabo! y quedo regio.
En caso de no estar nose si se entendio... haces que lea otro registro denuevo.

LISTO.
09-12-2011 19:56
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
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: ayuda final algoritmos 06/08/11
graciassss
09-12-2011 20:53
Envíale un email 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.