UTNianos

Versión completa: final algoritmos 17/12/11
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
bueno esto es lo que me acuerdo del final de hoy
era una empresa que tenia ciertas ventas y productos en stock y habia dos archivos
ventas: con 3 registros: id_caja, codigo del articulo(7 caracteres), cantidad solicitada. sin orden
existenc:codigo del articulo,cantidad en stock, fecha ultima vendida(longint). ordenado por codigo de articulo

pedia 3 cosas:
1) obtener fecha del sistema
2) actualizar archivo existenc con la nueva cantidad en stock
3) hacer un listado con los archivos que no se vendieron ordenado por dias que no se vendio y codigo del articulo
en la lista va
cantidad de dias sin ventas--------------------------cod de articulo-------------------------- cantidad en stock
1------------------------------------------------- xxxxxxx -------------------------------- 9999
la cantidad de dias es de 1,2,3,..,30 o mas. la categoria 30 o mas va toda junta en el mismo lugar

se usa la funcion calculadias (fecha del sistema, fecha ultima vendida):byte devuelve la cantidad de dias sin ventas
restricciones:
memoria para arrays:120b
memoria dinamica: nodos de 16b
accesos al archivo: 1 acceso secuencial a cada archivo y uno directo a existenc

eso era todo lo que recuerdo
Acá adjunto el enunciado, era un final viejo.

Había que hacer un array de 1 a 30, de listas con nodos de 16 bytes que tenian un codArt y cantS(stock Actual).-

Y una lista de ventas con nodos con codArt y cantidad de unidades vendidas(cantU), que sacabas recorriendo secuencialmente el archivo VENTAS, fijandote que sea uno por articulo (si el articulo se repite solo acumulas cantU).

Una vez que tenias la lista, recorrias secuencialmente el archivo de existencias e ibas buscando el codArt en la lista de ventas. Si estaba actualizabas el registro (como pide el enunciado) ya leido accediendo directamente.
Si no encontrabas el codArt tenías que usar la función que te dan y de acuerdo a los dias sin vender, agregabas un nodo al vector con codArt y el stock.-

Y después imprimias =P

Espero que haya servido.
Adiós Algoritmos jajaja
Tengo una duda importante.
Di este final y me fue muy mal. Para mi la mejor solución era usar listas paralelas... PEERO.... un docente me dijo que no se pueden usar listas paralelas en los finales.... ¿ES VERDAD ESTO?
Necesito sacarme la duda cuanto antes, no quiero volver a dar mal un final =(

PD: La razón de porque hice mal el final es por la ambiguedad de "30 o más".... si en el ej. del listado hubieran puesto "1, 2, 2 y 30 o más" se entendía que "30 o más" era un único registro... Si de una explicaban eso aprobaba sin más, pero siempre me tocan los enunciados más chotos en los finales wall
Yo use el otro dia y me puso un "?" (era un recu) pero por que realmente no valia la pena que la haya usado. Capas es eso... todo coincide para que uses solo una y tenes que ver la mejor forma. ¿Usaste los accesos directos? debio haber algun error en tu estrategia.
ESo de los 30 dias... nose era muy confuso yo hubiera preguntado. Ahi te aclara dos veces que va d 1 a 30.. y dps en el primer archivo te muestra que la fecha vinee en formato aaaammdd y cuando la calculas tenes dos fechas. Te podria haber dado un numero entre 0 y 364 no?

Gracias por el final1! =)
yo me equivoque como el mejor y no respete la lectura, lo hize sin la lista con una busqueda binaria y buen llegaba al resultado pero lo leia n veces y buen, dsp tuve todo bien pero ese error me mato. a febrero entonces
Yo di el mismo, hice un desastre y me saque un nueve, no vi el examen porq llegue tarde a buscar la libreta ...no tiene explicacion...
Pero si, lo que habia que hacer era vector de 1 a 30 con listas de no vendidos y lista de vendidos aparte...
tambien esta el tema ese del acceso directo que en realidad era un seek nada mas
o sea lo que se podia hacer era mientras se leia el archivo de existencias mirar si se encontraba en la lista de vendidios, si no estaba armabas el nodo y colgabas en el vector...
Ahora... si estaba grababas en archivo ahi mismo, o sea seekabas uno para atras y grababas en archivo, era la unica manera de grabar en el archivo porq la posicion no se podia guardar...(yo la guarde en Codart imaginense el desastre)
asi que no se porq tengo un nueve... pero bueno no me lo voy a cuestionar mucho
(18-12-2011 20:45)Aleepocho escribió: [ -> ]Yo di el mismo, hice un desastre y me saque un nueve, no vi el examen porq llegue tarde a buscar la libreta ...no tiene explicacion...
Pero si, lo que habia que hacer era vector de 1 a 30 con listas de no vendidos y lista de vendidos aparte...
tambien esta el tema ese del acceso directo que en realidad era un seek nada mas
o sea lo que se podia hacer era mientras se leia el archivo de existencias mirar si se encontraba en la lista de vendidios, si no estaba armabas el nodo y colgabas en el vector...
Ahora... si estaba grababas en archivo ahi mismo, o sea seekabas uno para atras y grababas en archivo, era la unica manera de grabar en el archivo porq la posicion no se podia guardar...(yo la guarde en Codart imaginense el desastre)
asi que no se porq tengo un nueve... pero bueno no me lo voy a cuestionar mucho

Yo hice exactamente lo mismo que vos, y tambien me saque un 9. Estaba reeee cagado porque me sobraba ese acceso directo que no lo use, porque a medida que iba leyendo ponia un if, si estaba en la lista de vendidos, grababa el archivo ahi nomas... y si no estaba, colgaba el nodo en el vector sacando la posicion mediante la funcion que te daban.
Estoy re feliz porque me parecio un final bastante dificil y lo pude hacer... habia desaprobado el anterior que era muchisimo mas facil por algunas boludeces, pero con el 9 este repunte un poco.
URLs de referencia