UTNianos

Versión completa: Ayuda - Fundamentos de Informática
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, pongo esto acá porque si lo posteo en Mecánica no me contesta nadie (como lo que me pasó con la duda de Electrotecnia... sólo que acá no hay usuarios de Eléctrica a los cuales preguntarles).

La cuestión es que mañana rindo el final de Fundamentos de Informática y quería ver si me pueden dar una manito con este ejercicio, ustedes que la tienen clara con esto.

[Imagen: FinalFundamentos.jpg]


Por otro lado, supongamos que quiero ordenar en forma decreciente un lote de 500 registros en función, por ejemplo, de la cantidad de unidades. Tengo

CodigodeArtículo(I), PrecioUnitario(I), CantUnidades(I)

¿Está bien esto que hago acá?

[Imagen: OrdenamientoDecreciente.jpg]



Gracias de antemano.
en realidad de la forma que lo dibujaste lo ardena de forma ascendente.
decreciente : Cantidad de unidades (k) < cantidad de unidades (z)


Sobre el final.
Segun lo que entendi tenes unos 2500 registros (nose si habla de un archivo con 2500 reg o solo reg) que tenes todos los insumos que pueden llegar o no a ser utilizados. ¿Cierto? De cada registro lees un codigo de pieza que es unico, un stock la cantidad disponible y el precio unitario
Sobre lo segundo, se entiende que se va a producir 100 unidades... con certeza no sabes cuantas de cada uno de los 5 artiulos. Algo que es muy ovbio aunque loa aclara mas abajo es que hay mas que un codigo de pieza por cada articulo no, osea.. para una silla necesitas tornillos, madera pintura.. que seyo imaginatelo asi!
Eso que dice "para indicar..." creo que tendrias que grabarlo y listo no creo que sea algo determinante.

Como veo que no tenes ninguna reestriccion jajaja te voy a contar lo que haria y me parece mas facil.

DOS VECTORES

vec 1 : DE 2500REGISTROS,
esos registros los metes en el vector y ademas añadis un campo "necesitadas" y un campo "R".
Necesitadas: cada vez que vos lees de los pedidos "cantidad necesaria" tambien lees un codigo de pieza entonces, buscas en el vector aquel codigo de pieza.. te traes la posicoon del registro (pos) en que esta esa pieza y en "necesitadas" se lo sumas. Cuando vos temines de procesar te va a decir este campo, la cantidad de pieza total que necesitas para hacer estos 100 unidades.. puede ser mayor al stock, menor o, giual o cero.
R: Cuadno creas y metees en el vector, pones una F... r es de tipo boolean. Caudno haces lo que te dije arriba, ademas en R cambias la f por v... ya que esto va a querer decir que fue requerido. okey?

Vec2: 5
este va a contener Codigo de articulo, denominacion y el importe. Aca en la parte dos.. vos vas ir leyendo poneele que vos lees:
1
1
1
2
3

Que haces.. En el vector como es el primero pones el 1 en cod articulo, la denominacion que le corresponde y calculas el importe
volves a leer y ete encontras el uno, pero ahora lo que vas a hacer es calcular denuevo el importe y sumarselo a lo que tenias antes. Esto se debe hacer asi ya que no tenes una seguridad de que esten todos juntos . Si esta actualizas si no esta (la forma de saber si esta es buscandolo por codigo de articulo o denominacion en el vec) lo ingresas.

1) agarras el primer vector y comparas necesitadas con stock, para ver si tenes o no.. en caso de no tener ese numero lo guardas en una variable y lo multiplicas por el precio unitario. Tdoo eso lo mostras
2) ordenas el segundo vector... como pregutnaste de mayor a menor y mostras el primero
3) en el primer vector mostras nada mas los qu eitenen F en r


bueno espero haber sido clara, =D
Muchas gracias por responder =D

(12-12-2011 18:25)CarooLina escribió: [ -> ]en realidad de la forma que lo dibujaste lo ardena de forma ascendente.
decreciente : Cantidad de unidades (k) < cantidad de unidades (z)


Pasa que el chabón lo dio como una ''receta'': esto se hace así y no de otra forma. La onda es que la tengo dos veces copiada en la carpeta, y está de forma distinta. Además, a todos los que les preguntaba me decían una cosa diferente: que así está bien, que así no es, que así no lo tengo yo. Ahí me enquilombé.


(12-12-2011 18:25)CarooLina escribió: [ -> ]Sobre el final.
Segun lo que entendi tenes unos 2500 registros (nose si habla de un archivo con 2500 reg o solo reg) que tenes todos los insumos que pueden llegar o no a ser utilizados. ¿Cierto? De cada registro lees un codigo de pieza que es unico, un stock la cantidad disponible y el precio unitario
Sobre lo segundo, se entiende que se va a producir 100 unidades... con certeza no sabes cuantas de cada uno de los 5 artiulos.

Acá yo lo tomo como que sí o sí de cada uno de los 5 artículos se producen 100 unidades.

(12-12-2011 18:25)CarooLina escribió: [ -> ]Algo que es muy ovbio aunque loa aclara mas abajo es que hay mas que un codigo de pieza por cada articulo no, osea.. para una silla necesitas tornillos, madera pintura.. que seyo imaginatelo asi!
Eso que dice "para indicar..." creo que tendrias que grabarlo y listo no creo que sea algo determinante.

Como veo que no tenes ninguna reestriccion jajaja te voy a contar lo que haria y me parece mas facil.

DOS VECTORES

vec 1 : DE 2500REGISTROS,
esos registros los metes en el vector y ademas añadis un campo "necesitadas" y un campo "R".
Necesitadas: cada vez que vos lees de los pedidos "cantidad necesaria" tambien lees un codigo de pieza entonces, buscas en el vector aquel codigo de pieza.. te traes la posicoon del registro (pos) en que esta esa pieza y en "necesitadas" se lo sumas. Cuando vos temines de procesar te va a decir este campo, la cantidad de pieza total que necesitas para hacer estos 100 unidades.. puede ser mayor al stock, menor o, giual o cero.
R: Cuadno creas y metees en el vector, pones una F... r es de tipo boolean. Caudno haces lo que te dije arriba, ademas en R cambias la f por v... ya que esto va a querer decir que fue requerido. okey?

Esto que me decís de la F, y que la F es de tipo boolean, ni idea. O sea, esto ni siquiera lo mencionó el profesor durante la cursada. En la resolución que hice después de leer tu respuesta, le puse un 1 a las piezas que usé y a las que no usé les quedó un 0.


(12-12-2011 18:25)CarooLina escribió: [ -> ]Vec2: 5
este va a contener Codigo de articulo, denominacion y el importe. Aca en la parte dos.. vos vas ir leyendo poneele que vos lees:
1
1
1
2
3

Que haces.. En el vector como es el primero pones el 1 en cod articulo, la denominacion que le corresponde y calculas el importe
volves a leer y ete encontras el uno, pero ahora lo que vas a hacer es calcular denuevo el importe y sumarselo a lo que tenias antes. Esto se debe hacer asi ya que no tenes una seguridad de que esten todos juntos . Si esta actualizas si no esta (la forma de saber si esta es buscandolo por codigo de articulo o denominacion en el vec) lo ingresas.

1) agarras el primer vector y comparas necesitadas con stock, para ver si tenes o no.. en caso de no tener ese numero lo guardas en una variable y lo multiplicas por el precio unitario. Tdoo eso lo mostras
2) ordenas el segundo vector... como pregutnaste de mayor a menor y mostras el primero
3) en el primer vector mostras nada mas los qu eitenen F en r


bueno espero haber sido clara, =D

Esta parte la hice un toque distinta.


Acá te muestro lo que hice:

[Imagen: Resolucin.jpg]
[Imagen: ResolucinII.jpg]

Pasa que el chabón lo dio como una ''receta'': esto se hace así y no de otra forma. La onda es que la tengo dos veces copiada en la carpeta, y está de forma distinta. Además, a todos los que les preguntaba me decían una cosa diferente: que así está bien, que así no es, que así no lo tengo yo. Ahí me enquilombé.


Si ovbio a mi tambien, pero haceme caso es como te digo yo. Ademas te propongo algo, arma un vector de 5 y aplicale este procedimiento de forma manual para que veas que no te miento =) o mejor aun, codificalo. Funciona, garantizado.


Acá yo lo tomo como que sí o sí de cada uno de los 5 artículos se producen 100 unidades.
Touche tenes razon, entonces se producen 500 pero no sabes en que orden los ingresa.. o si?

Esto que me decís de la F, y que la F es de tipo boolean, ni idea. O sea, esto ni siquiera lo mencionó el profesor durante la cursada. En la resolución que hice después de leer tu respuesta, le puse un 1 a las piezas que usé y a las que no usé les quedó un 0.

jajaj es que es algo sumamente personal, yo para que dps cuando comparas en el if.. si es veraddero ya va para el aldo izq. Pero lo importante es que pongas algo que identifique lo usado de lo no usado.


La forma en que vos buscaste el maximo esta tan bien como la mia vos usas el metodo absurdo, solo que para mi es mucho mas simple la mia y me parece como de "mas nivel", son formas... ambos vamos a obtener lo mismo y una no descalifica a la otra eh!
Algo que me hace ruido de lo que vos pones, ta bien los datos del segundo s cargarn por teclaro.. okey. "son valor centinela" como diria mi profe.
Lo que vos hiciste desde que entraste al "while" en i=1 hasta j=1.. es una busqueda secuencial que es mas lenta.. por que vos tenes que comparar ese codigo de pieza con 2499 mas.. me pareceque no vale la pena. Entonces yo te diria, que el vector lo ordenes por codigo de pieza en forma ascendente y le realices una busqueda binaria en el. CONSEJO.. capas el profe no te dice nada
Dps del J=1 hasta llegar al fin del ciclo while. Me parece que lo queres meter en el vector de 5 no? entonces.. no veo que este mal tu forma, pero me pareceria mas rapido que pongas en vez de j usas codArt ya que este es 1 2 3 4 o 5, que coincide con los numeros del vector y te ahorras que haga todo eso . Esto se resumiria en:

"imp(CodArt) = imp(CodArt) + cant*PU"
y mostras listo.


y lo demas coincido. Hasta si queres el ultimo for de 1 a 2500, lo volves a ordenar pero esta vez por "R" entoncs te va a quedar todos los 1 juntos y todos los ceros juntos, cada vez que vos ordenes acumulas en un contador. Haciendo que muestre los "x" primeros. De forma descendente claro.

Y esa es mi humilde opinion
(12-12-2011 20:19)CarooLina escribió: [ -> ]
Pasa que el chabón lo dio como una ''receta'': esto se hace así y no de otra forma. La onda es que la tengo dos veces copiada en la carpeta, y está de forma distinta. Además, a todos los que les preguntaba me decían una cosa diferente: que así está bien, que así no es, que así no lo tengo yo. Ahí me enquilombé.


Si ovbio a mi tambien, pero haceme caso es como te digo yo. Ademas te propongo algo, arma un vector de 5 y aplicale este procedimiento de forma manual para que veas que no te miento =) o mejor aun, codificalo. Funciona, garantizado.

Ok, seguiré tu consejo entonces.


(12-12-2011 20:19)CarooLina escribió: [ -> ]Acá yo lo tomo como que sí o sí de cada uno de los 5 artículos se producen 100 unidades.
Touche tenes razon, entonces se producen 500 pero no sabes en que orden los ingresa.. o si?

Sé que se producen 500 unidades, ni idea del orden.


(12-12-2011 20:19)CarooLina escribió: [ -> ]La forma en que vos buscaste el maximo esta tan bien como la mia vos usas el metodo absurdo, solo que para mi es mucho mas simple la mia y me parece como de "mas nivel", son formas... ambos vamos a obtener lo mismo y una no descalifica a la otra eh!
Algo que me hace ruido de lo que vos pones, ta bien los datos del segundo s cargarn por teclaro.. okey. "son valor centinela" como diria mi profe.
Lo que vos hiciste desde que entraste al "while" en i=1 hasta j=1.. es una busqueda secuencial que es mas lenta.. por que vos tenes que comparar ese codigo de pieza con 2499 mas.. me pareceque no vale la pena. Entonces yo te diria, que el vector lo ordenes por codigo de pieza en forma ascendente y le realices una busqueda binaria en el. CONSEJO.. capas el profe no te dice nada
Dps del J=1 hasta llegar al fin del ciclo while. Me parece que lo queres meter en el vector de 5 no? entonces.. no veo que este mal tu forma, pero me pareceria mas rapido que pongas en vez de j usas codArt ya que este es 1 2 3 4 o 5, que coincide con los numeros del vector y te ahorras que haga todo eso . Esto se resumiria en:

"imp(CodArt) = imp(CodArt) + cant*PU"
y mostras listo.


y lo demas coincido. Hasta si queres el ultimo for de 1 a 2500, lo volves a ordenar pero esta vez por "R" entoncs te va a quedar todos los 1 juntos y todos los ceros juntos, cada vez que vos ordenes acumulas en un contador. Haciendo que muestre los "x" primeros. De forma descendente claro.

Y esa es mi humilde opinion


Solamente vimos la búsqueda secuencial. El profesor aclaró que era la única forma de búsqueda que íbamos a ver (tené en cuenta que soy de Mecánica, y todo esto no me sirve para nada). Los profesores se fijan si lo que hacemos funciona o no funciona: que hay formas más rápidas, seguro que las hay, pero no nos compete a nosotros conocerlas (por suerte =D)


En fin, muchas gracias por tu tiempo y por contestar thumbup3thumbup3
URLs de referencia