Título: Error en Ciclo "For" (C) Publicado por: Geg1 en 7 Marzo 2017, 20:32 pm Buenas a todos! Desde ya muchas gracias por su atención!
No encuentro la forma de evitar que ocurra esto en mi "lista de pedidos": Código
En Rojo, creo yo, en donde esta el error... ya que al ingresar (Ejemplo) un pedido, y quererlo mostrar por pantalla, sale esto: (http://i.imgur.com/ODPHZiz.png) No se como lograr que solo muestre la cantidad puesta anteriormente asignada al entero "cantidad" Por otra parte, necesito ayuda para anular un registro y asi crear la función "Anular pedido", digamos que estoy perdido y no se por donde empezar para crear dicha función, si me ayudan con un planteo se los agradecería muchísimo! Título: Re: Error en Ciclo "For" (C) Publicado por: MAFUS en 8 Marzo 2017, 12:53 pm ¿Has visto listas enlazadas?
Lo que planteas es un problema que se resuelve con ellas. Si no las has visto y solo puedes usar arrays tendrás podrías resolver el problema poniendo un campo más en tu estructura diciendo si el registro es útil. Cada vez que incluyas un registro buscas el primero que no sea útil (esté vacío) y lo incluyes allí. Para visualizar repasas toda la lista y solo muestras los marcados como útiles. Para borrar solo debes marcar el registro de interés como inútil. También podrías hacer lo mismo sin ese campo pero creando un array paralelo, que tendrán que ser recorridos al mismo tiempo, en el que solo guardaría la información de si el registro es válido. Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 8 Marzo 2017, 16:55 pm ¿Has visto listas enlazadas? No he visto tal cosa :( pero me podrias explicar mas a fondo la nueva estructura que planteas? Gracias por tu respuesta!!Lo que planteas es un problema que se resuelve con ellas. Si no las has visto y solo puedes usar arrays tendrás podrías resolver el problema poniendo un campo más en tu estructura diciendo si el registro es útil. Cada vez que incluyas un registro buscas el primero que no sea útil (esté vacío) y lo incluyes allí. Para visualizar repasas toda la lista y solo muestras los marcados como útiles. Para borrar solo debes marcar el registro de interés como inútil. También podrías hacer lo mismo sin ese campo pero creando un array paralelo, que tendrán que ser recorridos al mismo tiempo, en el que solo guardaría la información de si el registro es válido. Título: Re: Error en Ciclo "For" (C) Publicado por: Kenji-chan en 8 Marzo 2017, 17:59 pm el problema que tienes esta en la funcion
Código: void mostrarvectorpedidos(tpedido V[]){ en la que tu ciclo for(); j<5 se repte 5 veces independiente del numero de pedidos que has ingrsado por ejemplo tu ingresaste 1 y te lo imprime pero tambien imprime otros 4 con contenido basura o no definido lo que puedes hacer es mantener un contador que almacene el numero de pedidos ingresados que sera el mismo que le pases al ciclo for() como j<contador; para que solo te imprima la cantidad de pedidos ingresados haora para las listas enlasadas te recomiendo este video https://www.youtube.com/watch?v=vldM-3PYAmo Título: Re: Error en Ciclo "For" (C) Publicado por: MAFUS en 8 Marzo 2017, 19:00 pm Algo así (solo se muestran las modificaciones al original):
Código
Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 8 Marzo 2017, 19:49 pm el problema que tienes esta en la funcion Código: void mostrarvectorpedidos(tpedido V[]){ en la que tu ciclo for(); j<5 se repte 5 veces independiente del numero de pedidos que has ingrsado por ejemplo tu ingresaste 1 y te lo imprime pero tambien imprime otros 4 con contenido basura o no definido lo que puedes hacer es mantener un contador que almacene el numero de pedidos ingresados que sera el mismo que le pases al ciclo for() como j<contador; para que solo te imprima la cantidad de pedidos ingresados haora para las listas enlasadas te recomiendo este video https://www.youtube.com/watch?v=vldM-3PYAmo Entiendo, pero ese contador es justamente el entero "cantidad" como lo relaciono con la funcion "mostrarVectorPedidos"? Disculpen es que soy bastante nuevo en esto de la programacion! :rolleyes: Título: Re: Error en Ciclo "For" (C) Publicado por: MAFUS en 8 Marzo 2017, 20:20 pm Sácalo de la función y conviértelo en global, así lo tendrás visible para todas las funciones.
Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 8 Marzo 2017, 20:25 pm Sácalo de la función y conviértelo en global, así lo tendrás visible para todas las funciones. Uf, que me hago un mate en la cabeza jajaj, solo el entero "cantidad" dices que saque de la funcion "Cargarvectorpedidos"?Título: Re: Error en Ciclo "For" (C) Publicado por: Kenji-chan en 8 Marzo 2017, 23:27 pm la variable 'cantidad' que tienes en la función void cargarvectorpedidos(tpedido V[]) declarala en la funcion main() y despues solo pasar la direccion de la variable cargarvectorpedidos(x, &cantidaad); y la revises como puntero en la funcion void cargarvectorpedidos(tpedido V[], int* cantidad); y despues solo lo pasas como reerencia en la uncion mostrarvectorpedidos(X, cantidad); y la usas en el ciclo for(); j<cantidad
si tienes mas dudad puedes ver este vídeo https://youtu.be/fFjmbymw2Ug · No hacer doble post, usa el botón "modificar" >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 9 Marzo 2017, 02:38 am la variable 'cantidad' que tienes en la función void cargarvectorpedidos(tpedido V[]) declarala en la funcion main() y despues solo pasar la direccion de la variable cargarvectorpedidos(x, &cantidaad); y la revises como puntero en la funcion void cargarvectorpedidos(tpedido V[], int* cantidad); y despues solo lo pasas como reerencia en la uncion mostrarvectorpedidos(X, cantidad); y la usas en el ciclo for(); j<cantidad No entiendo a que te refiieres con " la revises como puntero" si tienes mas dudad puedes ver este vídeo https://youtu.be/fFjmbymw2Ug · No hacer doble post, usa el botón "modificar" >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: Error en Ciclo "For" (C) Publicado por: Kenji-chan en 9 Marzo 2017, 02:41 am Perdón q la reenvies como puntero XD
Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 9 Marzo 2017, 02:56 am Perdón q la reenvies como puntero XD Te envie un MPTítulo: Re: Error en Ciclo "For" (C) Publicado por: jvm1994 en 9 Marzo 2017, 06:16 am Agrega a tus pedidos un campo que se llame int estadoPedido.
Cuando creas tu vector de pedidos tenes que inicializar todos los pedidos en 0. Despues a la hora de dar de alta un pedido ademas de cargar todos los campos, vas a tener que poner el estado del pedido en 1. Entonces despues en la función de mostrar usas un if para que solamente muestre los pedidos cuyo estado sea 1. Es lo más práctico, si no entendes te escribo el código.. lo ideal sería que leas con atención lo que escribí y lo hagas por tu cuenta, creo que en 15 minutos lo tenes. 1. Agregar un int estadoPedido (A la estructura tpedido. 2. Recorrer el array de pedidos poniento todos en estado 0. 3. Modificar la funcion de alta de pedido para que cuando cargue el pedido ponga el estado del mismo en 1. 4. Modificar la funcion de mostrar pedidos para que solo muestre el pedido si su estado es uno. Título: Re: Error en Ciclo "For" (C) Publicado por: Geg1 en 10 Marzo 2017, 17:37 pm Hola
|