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
[Aporte] 2do Parcial Prof. Bruno
Autor Mensaje
leaan Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 113
Agradecimientos dados: 97
Agradecimientos: 17 en 14 posts
Registro en: Apr 2011
Mensaje: #1
[Aporte] 2do Parcial Prof. Bruno Parciales Algoritmos y Estructuras de Datos
2do parcial del curso anual, se agradece si alguien tiene idea como encararlo roll


Archivo(s) adjuntos Imagen(es)
   
(Este mensaje fue modificado por última vez en: 29-11-2012 22:36 por leaan.)
29-11-2012 22:34
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #2
RE: [Aporte] 2do Parcial Prof. Bruno
Por lo que leo así medio de refilón, te comento la estrategia que se me ocurre ahora

A ver:

Memoria estática 6500 la podrías usar en un vector [1..100] con los datos de los libros:
CodigoLibro, Autor, Titulo. La suma de esto da 6400; así que te está sobrando espacio como para meter un campo más de 1 byte

En el vector estarías cargando los nuevos nomás, ya que dice "los libros nuevos de cada jornada no superan los 100"

Como también en algún momento vas a tener que hacer modificaciones de precios (y los libros nuevos también van a tener precios), podés aprovechar la memoria dinámica que te dan (14 bytes por nodo) y ahí hacer un nodo con los precios:
La info del nodo te quedaría: CodLibro, PrecioVenta, Costo, siguiente. Acá te da 14

El tema son las Bajas. Algo que se me ocurre es que, como en tu estructura dinámica vas a tener todos los libros para los que se haga un alta, baja o modificación, que cuando sea una baja le cambies los precios a números negativos.

En lo que es la actualización, mmm, primero agregarías los nuevos leyendo el vector
Después suprimirías los nodos, realizando las actualizaciones

Aclaro que es una idea super vaga =P

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
29-11-2012 23:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] nanuiit recibio 1 Gracias por este post
leaan (29-11-2012)
leaan Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 113
Agradecimientos dados: 97
Agradecimientos: 17 en 14 posts
Registro en: Apr 2011
Mensaje: #3
RE: [Aporte] 2do Parcial Prof. Bruno
Gracias! Me sirve bastante para arrancar.

Lo que no me queda muy claro, es que pide un programa que haga todas esas cosas, casi todos los ejercicios que vi piden basicamente crear un listado, hay que usar algo distinto en este caso ?
29-11-2012 23:29
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #4
RE: [Aporte] 2do Parcial Prof. Bruno
En realidad, la diferencia entre lo que vos mencionás y este parcial es el "output" por así decirlo.
En este caso en vez de imprimir, vas a ir pisando el mismo archivo.

A vos te va a quedar algo como (en módulos):

- abrir archivos
- procesar archivo
- actualizar archivo
- cerrar archivo

En el caso que imprimas un listado, sería

- abrir archivos
- procesar archivo
- imprimir listado
- cerrar archivo

La estructura es la misma, cambiaría solamente ese módulo.

Si no queda muy claro avisame, estoy redactando horrible

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
29-11-2012 23:37
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leaan Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 113
Agradecimientos dados: 97
Agradecimientos: 17 en 14 posts
Registro en: Apr 2011
Mensaje: #5
RE: [Aporte] 2do Parcial Prof. Bruno
Ah listo, Sisi se entiende lo de los modulos. igual la parte que mas me cuesta entender es la de ir actualizando el archivo o agregando lo que pida

Gracias de nuevo !
29-11-2012 23:45
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #6
RE: [Aporte] 2do Parcial Prof. Bruno
Uh, recién lo veo...
Mmm, para agregar los datos nuevos, tenés que agregarlos al archivo (supongo que al final, desd el cel no puedo ver el enunciado). Para actualizar los precios, lo haces directamente en el archivo. Para borrar, lo primero que se me ocurre es hacer un Truncate (todo lo que descartás en el truncate serian los registros que borrás).
Cuando pueda veo bien el enunciado; es lo que estoy suponiendo de lo que me acuerdo

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
01-12-2012 23:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] nanuiit recibio 1 Gracias por este post
leaan (01-12-2012)
martin.m Sin conexión
Empleado de Fotocopiadora
Bleh
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 47
Agradecimientos dados: 2
Agradecimientos: 7 en 2 posts
Registro en: Mar 2012
Mensaje: #7
RE: [Aporte] 2do Parcial Prof. Bruno
Justo estoy viendo este parcial, alguno tiene otra estrategia mas definida para hacerlo?
15-12-2012 00:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #8
RE: [Aporte] 2do Parcial Prof. Bruno
A pesar de lo que redacté, está bastante bien planteado. Fijate si te sirve para encarar la consigna y sino preguntá las dudas

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
15-12-2012 09:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
reLlene Sin conexión
Profesor del Modulo A
...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 287
Agradecimientos dados: 300
Agradecimientos: 54 en 31 posts
Registro en: Aug 2012
Mensaje: #9
RE: [Aporte] 2do Parcial Prof. Bruno
Estuve viendo este parcial y no parece ser demasiado dificil pero es que estoy colgadisimo con la estrategia, no termino de enterarme si esta bien planteada mi idea de encararlo. La expongo a continuación a ver si algún alma caritativa me da una mano. =(

Por empezar, inicializo un array de 100 posiciones (como planteo nanuiit más arriba) con los campos codLib, autor, titulo por registro dándome un total de 6400 bytes cómo MAX.
La aclaración "los libros nuevos de cada jornada no superan los 100" me da la idea de que en ése array sólo debo tratar las ALTAS. Confused
Luego, mientras no 'F' ( no sea fin del dia)
si OPER es 'N' solicito el ingreso de codLib, autor y titulo, hago una busqueda binaria al archivo para enterarme si es que existe ya ése codLib, en cuyo caso muestro un mensaje diciendo que es imposible o vuelvo a pedir ingreso de datos. Si NO existe me encargo de cargar dicha info al array y sus precios a una lista (cuya lista contendrá los campos codLib, precioVenta, costo y Sgte, teniendo un total de 14 bytes x nodo). Luego a fin del dia cuando tenga que actualizar el archivo tendré que tomar los valores cargados en el array y aquellos que estan en la lista.
Si OPER es 'M', solicito ingreso de datos, verifico si existe en archivo, en caso ok -> inserto un nodo a la lista que tenia con los nuevos precios a modificar (porque en el enunciado sólo habla de realizar las modificaciones de éstos campos). Lo que se me ocurre también acá es que se trate de OTRA lista que sea DISTINTA de aquella lista que contiene los nodos de las altas y ponerle un nombre significativo a ésta lista como lisModif (lista de modifcaciones pero DESCONOZCO si estoy pensándolo bien y si se puede jaja) Confused
si OPER es 'B', solicito ingreso de datos, verifico que exista en archivo, en caso ok -> seteo sus precios en cero o negativos (como dijo nanuiit más arriba) porque no conozco ni vi ningun caso donde borrar por completo dichos registros del archivo y la función truncate no veo que cuadre mucho acá Confused
Por último...Actualizo el archivo a medida que voy liberando los nodos de las listas tambien, cierro el archivo y eso es todo creo....

Otra cosa que me llama la atención en muchos enunciados es la nota " estatica para vectores y/o matrices...". Esto implica que también es posible resolverlo por matrices cierto? blush Intuyo que sea de libros POR autor ó autores POR libros peroooo no se me ocurre ni de coña cómo sacarlo wall
Repito, CUALQUIER ayudin es bienvenido, estoy hasta las bol@s con muchos enunciados y necesito correr a como de lugar =P
(Este mensaje fue modificado por última vez en: 18-02-2013 13:58 por reLlene.)
18-02-2013 13:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #10
RE: [Aporte] 2do Parcial Prof. Bruno
reLlene (te taggeo por si no lo viste)

Lo resolví hace dos meses, pero haré el intento de recordar:

(18-02-2013 13:56)reLlene escribió:  Estuve viendo este parcial y no parece ser demasiado dificil pero es que estoy colgadisimo con la estrategia, no termino de enterarme si esta bien planteada mi idea de encararlo. La expongo a continuación a ver si algún alma caritativa me da una mano. =(

La papa del parcial este, justamente es la estrategia.

(18-02-2013 13:56)reLlene escribió:  Por empezar, inicializo un array de 100 posiciones (como planteo nanuiit más arriba) con los campos codLib, autor, titulo por registro dándome un total de 6400 bytes cómo MAX.
La aclaración "los libros nuevos de cada jornada no superan los 100" me da la idea de que en ése array sólo debo tratar las ALTAS. Confused

Okay, eso es cierto.

(18-02-2013 13:56)reLlene escribió:  Luego, mientras no 'F' ( no sea fin del dia)
si OPER es 'N' solicito el ingreso de codLib, autor y titulo, hago una busqueda binaria al archivo para enterarme si es que existe ya ése codLib, en cuyo caso muestro un mensaje diciendo que es imposible o vuelvo a pedir ingreso de datos. Si NO existe me encargo de cargar dicha info al array y sus precios a una lista (cuya lista contendrá los campos codLib, precioVenta, costo y Sgte, teniendo un total de 14 bytes x nodo). Luego a fin del dia cuando tenga que actualizar el archivo tendré que tomar los valores cargados en el array y aquellos que estan en la lista.

Bien, por una cuestión de funcionalidad, pedirías de nuevo el ingreso de datos, sino el programa te quedaría ahí, con el mensaje impreso de que ese libro ya existe. No vas a desaprobar por eso, pero es un detalle que está bueno comentarlo, pensemos como usuarios del sistema ;)

(18-02-2013 13:56)reLlene escribió:  Si OPER es 'M', solicito ingreso de datos, verifico si existe en archivo, en caso ok -> inserto un nodo a la lista que tenia con los nuevos precios a modificar (porque en el enunciado sólo habla de realizar las modificaciones de éstos campos). Lo que se me ocurre también acá es que se trate de OTRA lista que sea DISTINTA de aquella lista que contiene los nodos de las altas y ponerle un nombre significativo a ésta lista como lisModif (lista de modifcaciones pero DESCONOZCO si estoy pensándolo bien y si se puede jaja) Confused

Varias cosas:
- Fijate que tanto para el alta como para la modificación estás realizando la misma búsqueda básicamente, así que podríamos decir que estás repitiendo código :O
Nuevamente, por eso no vas a desaprobar, pero quizás más adelante nos demos cuenta de que quizás solamente tengamos que invocar a esa búsqueda con esos parámetros una vez nomás.
En síntesis, cualquier operación que no sea fin de proceso hace una búsqueda, no? Te parece que está bueno llamar tres veces entonces a la misma función? Chequeá eso y cualquier cosa decime
-El tema de lisModif, podés hacerlo, porque en el enunciado decir "nodos de 14 bytes". JAMÁS te especifica que solamente podés hacer una lista. Y que te lo discutan a morir, vos decí que te aferraste al enunciado y que vas a llamar a Niklaus Wirth que venga especialmente a romperles la cara =P. Ahora, que el enunciado que te deje hacer eso, no implica que esté bueno hacerlo. Podés tenerlo en la misma lista tranquilamente... no entiendo para qué querés dos listas, si total vos con esos valores después pisás el archivo

(18-02-2013 13:56)reLlene escribió:  si OPER es 'B', solicito ingreso de datos, verifico que exista en archivo, en caso ok -> seteo sus precios en cero o negativos (como dijo nanuiit más arriba) porque no conozco ni vi ningun caso donde borrar por completo dichos registros del archivo y la función truncate no veo que cuadre mucho acá Confused

Personalmente no me gusta truncate, pero solamente es mi manera de pensar. Lo pensé así porque después quería procesar todo junto cuando lea el array y la lista.


(18-02-2013 13:56)reLlene escribió:  Por último...Actualizo el archivo a medida que voy liberando los nodos de las listas tambien, cierro el archivo y eso es todo creo....

No olvides que vos guardaste el codLibro con precio cero/negativo a los que ibas a borrar... ahí sí podrías que usar truncate para que no te queden registros blancos. Porque el enunciado dice "eliminando físicamente". Si fuese a nivel lógico, la zafabas, pero te está pidiendo que, si en tu set de datos a procesar hay bajas, los registros correspondientes no deben figurar ni por asomo en el archivo output

(18-02-2013 13:56)reLlene escribió:  Otra cosa que me llama la atención en muchos enunciados es la nota " estatica para vectores y/o matrices...". Esto implica que también es posible resolverlo por matrices cierto? blush Intuyo que sea de libros POR autor ó autores POR libros peroooo no se me ocurre ni de coña cómo sacarlo wall
Repito, CUALQUIER ayudin es bienvenido, estoy hasta las bol@s con muchos enunciados y necesito correr a como de lugar =P

Capaz lo ponen para ser abarcativos, ni idea.

Si no entendiste algo de lo que expliqué o te parece que algo de lo que comenté no es feliz, chiflá.
Saludos!

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
(Este mensaje fue modificado por última vez en: 20-02-2013 17:06 por nanuiit.)
18-02-2013 22:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] nanuiit recibio 1 Gracias por este post
reLlene (22-02-2013)
reLlene Sin conexión
Profesor del Modulo A
...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 287
Agradecimientos dados: 300
Agradecimientos: 54 en 31 posts
Registro en: Aug 2012
Mensaje: #11
RE: [Aporte] 2do Parcial Prof. Bruno
(18-02-2013 22:33)nanuiit escribió:  - Fijate que tanto para el alta como para la modificación estás realizando la misma búsqueda básicamente, así que podríamos decir que estás repitiendo código :O

Totalmente de acuerdo, ya lo corregi !!!thumbup3

(18-02-2013 22:33)nanuiit escribió:  
(18-02-2013 13:56)reLlene escribió:  si OPER es 'B', solicito ingreso de datos, verifico que exista en archivo, en caso ok -> seteo sus precios en cero o negativos (como dijo nanuiit más arriba) porque no conozco ni vi ningun caso donde borrar por completo dichos registros del archivo y la función truncate no veo que cuadre mucho acá Confused

Personalmente no me gusta truncate, pero solamente es mi manera de pensar. Lo pensé así porque después quería procesar todo junto cuando lea el array y la lista.
...
No olvides que vos guardaste el codLibro con precio cero/negativo a los que ibas a borrar... ahí sí podrías que usar truncate para que no te queden registros blancos. Porque el enunciado dice "eliminando físicamente". Si fuese -a nivel lógico, la zafabas, pero te está pidiendo que, si en tu set de datos a procesar hay bajas, los registros correspondientes no deben figurar ni por asomo en el archivo output

Acá me surge el interrogante...

porque hasta acá tengo aquellos nodos que tienen precios en ceros (porque asi los tilde para saber que los debo borrar) y esos mismos (según CodLib) debo de hacer de desaparecer como vos me decis -> "eliminandolos fisicamente" del archivo que debo actualizar (LIBROS.DAT) pero es que no me termina de cuadrar la intervención aqui de la funcion truncate porque lo hace pero desde una posicion particular hasta el final y justameeente puede que tenga que borrar algunos registros que se encuenten en las lineas del medio del archivo y no caigo cómo usarla y si se la puede usar ok, se vuelan esos registros y de manera automatica los que le seguian adoptan la linea anterior del que se borro o que onda?? Confused

Gracias por tu tiempo!!!
22-02-2013 22:12
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 572 en 201 posts
Registro en: Aug 2010
Mensaje: #12
RE: [Aporte] 2do Parcial Prof. Bruno
Pensando en el tema del eliminar, pensé en el agregar; hipotéticamente el archivo de libros.dat debería seguir quedándome ordenado por códLibro, pero... qué pasa si yo en el archivo tengo los códigos:

0123
0555
0714
0832

Y quiero agregar un libro nuevo de código 0658?

Entonces pensé en dos cosas:
1- Usar un archivo auxiliar (la verdad no dice nada de espacio en disco así que es simplemente una alternativa medio loca) entonces ahí solamente grabaría lo que va, apareando mi archivo original con la otra estructura donde tengo los libros nuevos; y además en el auxiliar no pasaría los que tengo que borrar. Una vez que hice eso hago REWRITE(LIB) y piso con el archivo auxiliar

2- La otra es pasarme a la estructura que usé, los libros que están actualmente (cargarlos previamente en la estructura, por ejemplo). Entonces cuando tengo una operación de modificación, modifico ahí directo, si tengo una de borrar, le pongo el precio en cero, y los nuevos los inserto.
Después a mi estructura la ordeno por codLibro, y finalmente hago

REWRITE(LIB)

Una vez que hice eso libero mi estructura, cargando los datos que van en el archivo

Y listo, creo que con eso me evito el lío, no?

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
23-02-2013 00:12
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.