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
Dudas con respecto al final del 22/9/04 (Buques y containers)
Autor Mensaje
rob. Sin conexión
Presidente del CEIT
Smile!
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.145
Agradecimientos dados: 126
Agradecimientos: 83 en 66 posts
Registro en: Dec 2010
Mensaje: #1
Dudas con respecto al final del 22/9/04 (Buques y containers) Finales Algoritmos y Estructuras de Datos
Buenas,
el final dice lo siguiente:

Cita:La Subdirección General de Operaciones Aduaneras requiere de un proceso para el manejo de las Cargas y Descargas de Containers hacia o desde los buques, por medio de grúas, donde cada grúa atiende a un solo buque. Para llevar a cabo el proceso de un día se cuenta con los siguientes archivos:

a) BUQUES: desordenado, máximo 200 registros, en donde cada registro representa un buque.
a.1) Id. del buque (word) a.2) Nombre del buque (30 car.) a.3) Dársena (5 car.)
a.4) Nro. de grúa (1..200) a.5) Cant. de containers (byte) a.6) Fecha Salida o Llegada (aaaammdd)
a.7) Constante de flotación (byte) a.8) Lugar de Origen o Destino (25 car.)
Si la fecha indicada en a.6 es mayor o igual que la fecha del sistema (Ej. 20040930 > 20040922), se trata de una salida y el buque va a hacer una carga. De lo contrario, se trata de una llegada y se hará una descarga.

b) CONTAINERS: ordenado por Id. de buque, conteniendo:
b.1) Id. del container (5 car.) b.2) Peso en Kgrs. (word)
b.3) Longitud en metros (byte) b.4) Id. del buque.

c) TARIFAS: con un único registro, el cual contiene 3 campos que representan c/u un valor de tipo single y que indica el valor por cada kg. que la grúa cobra, según la siguiente escala: hasta 20.000 kg al valor del primer campo, los siguientes kgs. hasta 40.000 kgs. al valor del segundo campo y los restantes kgr. al valor del tercer campo.

Se pide:
1. Obtener por única vez la fecha del sistema utilizando el procedimiento GetDate(aa,mm,dd,ds) donde los parámetros son de tipo word.

2. Desarrolle y utilice una función Carga_Descarga que reciba como parámetros dos fechas, y retorne un carácter ‘C’ si la primer fecha es mayor o igual que la segunda y, de lo contrario, devuelva un carácter ‘D’.

3. Para la Carga o Descarga de Containers de los buques debe controlar, por cada uno, que el buque mantenga su estabilidad. Para ello aplique la función
Estable(PesoContainer:longint; LongitudContainer:byte; CteFlot:byte; CargaoDescarga:char): boolean;
donde CargaoDescarga debe ser un carácter ‘C’ o ‘D’. Si la función retorna un valor true el container puede ser cargado o descargado; de lo contario (false ) el container debe esperar otro momento.

4. Imprima el siguiente listado, ordenado por Nro. de grúa y PesoKg de cada container, con el siguiente diseño:

LISTADO DE CARGAS Y DESCARGAS DE CONTAINERS AL dd-mm-aaaa
Nro. grúa: 999 Id.buque: 9999 CARGA o DESCARGA

Fecha: dd-mm-aaaa DE SALIDA o DE LLEGADA Cant. containers: 999
Id. container Peso Kg. Long. Mt. Importe
XXXXX 99999 99 $ 99999,99
. . . .
** Total de la grúa.........: 99999 Toneladas.
** Total de la grúa................................................: $ 999999,99

* Total general........….............: 9999999 Toneladas.
* Total general....................................................................: $ 9999999,99
* Total general containers..…....: 99999

Recursos, restricciones:
Mem. estática p/arreglos opcional: 812 bytes. Mem. en disco: 0 byte. Se permite un solo acceso a c/registro para c/archivo. Mem. dinámica: FileSize(Buques) x 17 bytes + FileSize(Containers) x 13 bytes.
Realizar: dibujo de las estructuras de datos adecuadamente rotuladas con identificadores que representen su significado, cálculo del espacio que ocupan en memoria; estrategia; algoritmo. No usar variables globales en los módulos.

Me trabo en el tema que a mi parecer es el mas delicado, que son las estructuras de datos. Siento que tengo que usar toda la memoria o la maxima posible, y no se como relacionarlas entre si de acuerdo a cumplir lo que pide el punto 4.

Off-topic:
Pense en mover los dos primeros archivos a dos listas distintas, y el tercero a un vector de tres campos, quedando 800bytes de estatica para un vector de punteros. Pero me confunde pensar que tipo de punteros usaria, si cumplo con lo que pide el ejercicio 4 en cuanto al orden...



Tampoco entiendo de donde saco el importe.

Capaz el final este mal explicado y lo hayan corregido/aclarado en plena instancia, pero quiero ver si le encuentro alguna vuelta a este.
(Este mensaje fue modificado por última vez en: 12-12-2012 14:55 por rob..)
12-12-2012 14:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
H3rnst Sin conexión
Secretario de la SAE
Overlord
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 647
Agradecimientos dados: 246
Agradecimientos: 117 en 50 posts
Registro en: Sep 2010
Mensaje: #2
RE: Dudas con respecto al final del 22/9/04 (Buques y containers)
¿A cuál de los órdenes te referís?

Así de movida mirándolo por arriba me imagino un vector de 200 punteros (donde cada posición representa una grúa, fijate que te dicen que el nro de grúa es de 1 a 200) que apuntan a una lista de buques con la siguiente estructura:

-Id.Buque (2 bytes, word)
-CantContainers (1 byte, byte)
-Fecha (4 bytes, longint)
-CteFlotacion (1 byte, byte)
-PunteroSiguienteBuque(4 bytes, puntero)
-PunteroListaContainers(4 bytes, puntero)

Ahí tenés 16 bytes (acordate que el límite es 17 bytes * fileSize(buques))

Y luego lees el archivo Containers y vas cargando ListaContainers (insertando ordenado por peso del container) con nodos con la siguiente estructura:

-IdContainer (5 bytes, 5 caracteres)
-Peso (2 bytes, word)
-Longitud (1 byte, byte)
-PunteroSiguienteContainer (4 bytes, puntero)

Ahí tenés 12 bytes (acordate que el límite acá eran 13 bytes * fileSize(containers))

Me parece que ahí tenés la estructura. Ojo que puede ser que haya puesto algún tamaño de tipo de dato mal, no me acuerdo mucho de eso, revisalo y fijate si dan.

Saludos
12-12-2012 16:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] H3rnst recibio 1 Gracias por este post
rob. (12-12-2012)
rob. Sin conexión
Presidente del CEIT
Smile!
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.145
Agradecimientos dados: 126
Agradecimientos: 83 en 66 posts
Registro en: Dec 2010
Mensaje: #3
RE: Dudas con respecto al final del 22/9/04 (Buques y containers)
Me refería a las órdenes enunciadas en el final (punto 4), por número de grua y peso en kilogramos. Eso es lo que me confunde en cuanto a la estructura, aunque calculo que el orden lo tendría al tener el vector de punteros por grúa de 1..200, y el orden de peso en kilogramos ordenando la lista de containers, ¿no?


En tanto a los posibles errores en tus datos, sí, en el segundo el IDContainer al ser un string[5] son en realidad 6 bytes (string[n] = n+1). Ahí alcanza los 13 bytes, justo lo que se pedía, así que sigue estando bien.


Te dejo un gracias!
12-12-2012 20:14
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)