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
[Consulta] Algoritmos 20/09/06
Autor Mensaje
yoda182 Sin conexión
Empleado del buffet
Burnning bridges!
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 10
Agradecimientos dados: 9
Agradecimientos: 2 en 2 posts
Registro en: Mar 2011
Mensaje: #1
[Consulta] Algoritmos 20/09/06 Finales Algoritmos y Estructuras de Datos
Final Algoritmos y Estructura de Datos 20/09/06

Una concesionaria con 9 sucursales vende 90 modelos de automóvil diferentes y cuenta con el siguiente archivo de ventas:

a) VENTAS, orden natural, con un registro por cada venta de cada automotor (en un reg. de venta pueden venderse hasta 99 unidades de un mismo modelo)

a.1) Código de modelo (12 car.) a.2) Sucursal (1 a 9)
a.3) Cantidad unidades vendidas (2 díg.)

1) Emita el siguiente listado de ventas por modelo y sucursal, con el siguiente contenido
Código de modelo: XXXXXXXXXXXXX Mayor Venta Unitaria: 99 (> a.3 para dicho modelo)
Sucursal Total de Unidades Vendidas
9 9999 (sumat. de a.3 para dicho modelo/sucursal)

Recursos, restricciones: Mem. p/arrays: 1400 bytes. Mem. dinámica: 22 bytes x nodo, 2200 bytes totales. Disco: Sin espacio adicional.
Desarrollar estructuras de datos con su defin. Pascal, estrategia y algoritmo. Utilice módulos de ambos tipos (procedimiento/s y funcion/es) con parámetros.
Utilizar nombres significativos para los identificadores, dibujo de las estructuras a utilizar rotulando cada elemento. Escribir una carilla por hoja rotulando en c/u. de ellas su Apellido, Nombre y Nro.Página x de y.



Viendo entre los finales que tenia me tope con este, parece sencillo pero cuando planteo la estructura no me dan las restricciones:

Necesito por modelo las ventas de las concecionarias, entonces dije armemos un array con el Numero de modelo y un puntero a un listado de ventas de ese modelo de cada concecionaria.

he aqui : 90 * (13b+4b) osea 1530.

alguna sugerencia?
22-02-2012 19:48
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina En línea
Colaborador
2016! ❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.469
Agradecimientos dados: 930
Agradecimientos: 1.224 en 456 posts
Registro en: Sep 2010
Mensaje: #2
RE: [Consulta] Algoritmos 20/09/06
Yo al principio pense la misma, pero dps se me ocurrio otra:
Vector de 90. Con 4byts para una lista y otro byte para la cantidad total vendida = 90*5 =450

lista: modelo(13) numero de sucursal(1) total(1) sigu(4) =19

nose.. me parece raro. pero funciona
23-02-2012 00:11
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
yoda182 Sin conexión
Empleado del buffet
Burnning bridges!
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 10
Agradecimientos dados: 9
Agradecimientos: 2 en 2 posts
Registro en: Mar 2011
Mensaje: #3
RE: [Consulta] Algoritmos 20/09/06
Lo pensé pero si armo un vector de 90 como decís vos como relaciono los punteros con cada lista? es decir cuando leo el archivo de los movimientos como se en que posición ponerlo. Porque la clave seria el modelo. No se si me explico.
23-02-2012 11:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
lagrange Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 24
Agradecimientos dados: 45
Agradecimientos: 1 en 1 posts
Registro en: Dec 2009
Mensaje: #4
RE: [Consulta] Algoritmos 20/09/06
lista y vector paralelos es una buena opción

vector:
modelo(13) + cantidad total vendida(1) = 14 * 90 = 1260 b

lista:
sublista(4) sigu(4)

sublista:
numero de sucursal(1) total(1) sigu(4)

Estrategia:
Abro archivos e inicializo estructuras.
Leo archivo y por cada registro busco en el vector.
Sino esta, lo inserto ordenado por nombre, caso contrario utilizo el indice de posición del vector para recorrer esa cantidad de nodos de la lista y recorro la sublista hasta dar con la sucursal o crearla. En todos los casos incremento lo vendido en cada estructura.
Luego imprimo leyendo el vector y accediendo a la nodo de la lista correspondiente, liberando luego de utilizar la info.

Espero te sirva y entiendas esta opción.

Saludos!
23-02-2012 12:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina En línea
Colaborador
2016! ❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.469
Agradecimientos dados: 930
Agradecimientos: 1.224 en 456 posts
Registro en: Sep 2010
Mensaje: #5
RE: [Consulta] Algoritmos 20/09/06
y es mas trabajoso, no esta mal.

Tenes 90 listas, uno de los registros de esa lista es el numero de modelo. Usas busquedas en listas y listo..Osea usas el puntero Vec[n]^ìnfo^modelo osea re facil.

Lees un registro, buscas si es la primera vez que lo tenes que meter a la lista y actualizas o agregas. Para ordenar dps es facil tambien
23-02-2012 12:55
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
yoda182 Sin conexión
Empleado del buffet
Burnning bridges!
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 10
Agradecimientos dados: 9
Agradecimientos: 2 en 2 posts
Registro en: Mar 2011
Mensaje: #6
RE: [Consulta] Algoritmos 20/09/06
Lagrange, gracias por la opcion pasa que generalmente pones listas en paralelo o vecto y lista en paralelo y no les gusta ...Igual la veo Valida pero bueno!



(23-02-2012 12:55)CarooLina escribió:  y es mas trabajoso, no esta mal.

Tenes 90 listas, uno de los registros de esa lista es el numero de modelo. Usas busquedas en listas y listo..Osea usas el puntero Vec[n]^ìnfo^modelo osea re facil.

Lees un registro, buscas si es la primera vez que lo tenes que meter a la lista y actualizas o agregas. Para ordenar dps es facil tambien

Estoy medio embotado despues de varios finales este es sencillo pero no entiendo o siguiente:

Tengo un vecto de 90 posiciones con 2 campos, uno es un puntero a un lista y otro es un campo de totales. Hasta ahi barbaro...lo que no logro ver es por ejemplo leo el primer registro y no va estar en el vector en que posicion del vector lo cuelgo ?Es eso lo que no veo como relacionar el vector con la lista entiendo que la lista vaa ser de ventas de un modelo especifico y voy a tener 90 como max....pero la pregunta es al leer una venta ponele como se en qe posicion ponerla del vector ?


Estoy mas que bloqueado y agradezco la ayuda!!
(Este mensaje fue modificado por última vez en: 23-02-2012 21:16 por yoda182.)
23-02-2012 21:10
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina En línea
Colaborador
2016! ❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.469
Agradecimientos dados: 930
Agradecimientos: 1.224 en 456 posts
Registro en: Sep 2010
Mensaje: #7
RE: [Consulta] Algoritmos 20/09/06
A listo, entendi tu duda.

Vos tenes un unico archivo, asique la unica solucion para empezar es leerlo.
Asig..blabla
Abris el while, not eof arch
Lees un registro: ese registro consta de un numero de modelo + numero de sucursal + cantidad vendida.

Algunas observaciones:
- La misma sucursal para el mismo modelo puede aparecer mas de una vez
- El archivo se encuentra en orden natural

Orden natural: se ingresaron los datos al archivo asi como fueron sucediendo, sin orden alguno.

Bueno, lo leimos POR PRIMERA VEZ. Nuesto vector esta con sus dos campos uno con "nil" y otro con "0" (lista y contador s/ corresponda) lees un numero de modelo por ser el primero te garantizas que no hay nada escrito y que va a ser el primero en tu vector.
Entonces armas un registro auxiliar para el nodo de la sucursal y todos los datos que te puse.
Termina de operar con el primer registro del archivo y VOLVES a leer.

Observaciones:
Entre las tres cosas que lees, una es el numero de modelo. Este nro puede ser igual al anterior o distinto. Entonces.. ¿Como sabes que es igual al anterior? Buscas en el vector, tu vector sea la posicion que sea el primer nodo SIEMPRE va a tener el nro de modelo.. entonces podes usar Vector[x].Lista^.info.nro de modelo! x=pos del vector (antes no puse Lista pq me olvide que tenia dos registros el vector sino seria directamente Vector[x]^.info.nro). Entonces, si lo encontras tenes que ACTUALIZAR... pero ahora acordate que vos tenias dos campos mas en el registro cantidad comprada y sucursal. Dentro de esa posicion del vector(osea la lista correspondiente) buscas si esta ese nro de sucursal si esta actualizas el nro vendido sino agregas otro nodo. OJO: los nodos se agregan ordenados de men a may por nro de sucursal( asi dps los mostras y lo necesitas para buscar dps!)
Si ese nro de modelo es diferente haces lo mismo que hiciste cuando leiste el primer registro.

Lo sè, es un poco heavy capas pero es la unica idea que se me ocurre y se hacerlo! La idea central de este algoritmo es que vos leeas, te fijes si este: si esta actualizas sino agregas. Trate de que eso se entendiera

saludos=)
23-02-2012 23:32
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.