Título: Programa para introducir precios compra y acomular Publicado por: sora_ori en 12 Septiembre 2013, 12:13 pm Buenas, necesitaría un poco de ayuda para un programa en C es por eso que les vengo a pedir una manita :P
El programa hace lo siguiente: - Pide precio de compra - Precio al que vende el producto - Unidades vendidas - Beneficio obtenido - Beneficio acomulado - Quieres seguir introduciendo productos (s/n) ¿Cómo he planteado el algoritmo? Pues primero de todo he hecho un IF conforme quiero introducir productos y dentro de aquí he pedido por pantalla todo lo que me pedían. Código
¿Está bien planteado? Seguro que no jeje el caso es que como puedo retornar al principio si digo que quiere volver a introducir productos...? :-\ Gracias Título: Re: Programa para introducir precios compra y acomular Publicado por: eferion en 12 Septiembre 2013, 12:40 pm Tienes que encerrar todo el proceso en un bucle.
En c tienes dos tipos de bucles: for y while. En mi opinión for se debe emplear cuando se sabe el número de iteraciones del bucle... recorrer un vector por ejemplo, mientras que los while se deben emplear el resto de casos, es decir, cuando el número de repeticiones es indeterminado. En este caso, dado que a priori no puedes saber cuántos elementos va a querer introducir el usuario, deberías usar un while. El bucle while tiene dos variantes: Código
En tu caso, como la pregunta la haces al final, podrías poner un bucle do-while. Puedes usar también el otro... pero tendrías que asegurarte de la condición da true en la primera pasada. Código
Con la configuración que te he puesto arriba el programa va a estar pidiendo datos hasta que 'otroProducto' sea diferente de 1. Nota: Tu código tiene un error: Código
Si 'acomulado' ( se escribe acumulado ) debe almacenar el beneficio total no tiene sentido que en esa ecuación aparezca 'otroProducto', ya que esa es una variable que usas para otras cosas. si quieres llevar un total de beneficios es tan sencillo como esto: Código
Nota2: otroProducto lo estás usando para almacenar números o valores ?? al principio compruebas si es igual a 1... y al final almacenas un caracter... y compruebas si es 's'... no tiene sentido. Si usas otroProducto para almacenar caracteres... ciñete a caracteres. Con todos estos cambios el código resultante queda más o menos así: Código
Esta solución no funciona con mayúsculas, pero es una mejora que puedes plantearte. Título: Re: Programa para introducir precios compra y acomular Publicado por: rir3760 en 12 Septiembre 2013, 15:01 pm Otro error se debe al "Copy & Paste", en la llamada a getch para pedir confirmación sobre continuar o no:
Código Deberia ser una llamada (mas) a scanf: Código Se debe utilizar " %c" (un espacio antes del carácter '%') para evitar problemas con el espacio blanco al final de la linea anterior. Un saludo Título: Re: Programa para introducir precios compra y acomular Publicado por: sora_ori en 12 Septiembre 2013, 15:35 pm Gracias por la ayuda ;)
Finalmente he usado el "do while" y el programa funciona bien, salvo dos pequeños bugs. Uno en el "Beneficio acomulado" y otro que veréis en la imagen siguiente: (http://i41.tinypic.com/35kqs5c.png) Un saludo Título: Re: Programa para introducir precios compra y acomular Publicado por: eferion en 12 Septiembre 2013, 16:11 pm Las variables no se inicializan solas en c.
Tienes que darles tu un valor inicial. tu tienes seguramente un 'int acumulado;', pero cuando el programa reservan memoria para ese int no la 'limpia' y en consecuencia puede tener cualquier valor. si quieres que sume bien prueba a hacer: Código
Es una buena práctica inicalizar TODAS las variables que uses en tu programa... puede que en un principio algunas no sea necesario inicializarlas... pero luego el programa cambia y eso te puede dar problemas. Título: Re: Programa para introducir precios compra y acomular Publicado por: sora_ori en 12 Septiembre 2013, 16:18 pm Gracias, me faltaba eso :P
¿Sabrías decirme el pequeño bug de la imagen? Hace que cuando le de a "s" o "n" para responder a la pregunta me obligue a escribir algo para poder seguir. Saludos Título: Re: Programa para introducir precios compra y acomular Publicado por: eferion en 12 Septiembre 2013, 16:22 pm el scanf espera a que se pulse el enter.
Si quieres que no espere, usa getch ... pero mírate la interfaz que no es la que estabas usando al principio: Código Título: Re: Programa para introducir precios compra y acomular Publicado por: sora_ori en 12 Septiembre 2013, 16:46 pm Dejo mi código para que vean como lo tengo, esta todo completo menos el pequeño bug, el cual tengo que escribir un caracter y pulsar enter para volver a escribir un producto.
Código
No he podido arreglarlo :-\ Título: Re: Programa para introducir precios compra y acomular Publicado por: eferion en 12 Septiembre 2013, 16:51 pm No he podido arreglarlo :-\ Lo más normal en cualquier tipo de aplicación es que le des la oportunidad al usuario de rectificar un dato que ha metido ( por si le da por equivocarse ). Si tu en vez del scanf pones un getch o similar el usuario no puede rectificar su entrada y eso suele causar muy mala impresión en un programa. Título: Re: Programa para introducir precios compra y acomular Publicado por: kaozdeoz en 14 Septiembre 2013, 04:58 am otroProducto = 1; while (otroProducto == 1){ printf("Precio de compra: "); scanf("%d", &compra); printf("Precio de venta: "); scanf("%d", &venta); printf("Unidades vendidas: "); scanf("%d", &unidades); beneficio = (venta-compra)*unidades; printf("Beneficio: %d", beneficio); acomulado = beneficio + otroProducto; printf("\nBeneficio acomulado: %d", acomulado); printf("\nQuieres introducir otro producto (s = 1/ n = 2)? "); scanf(%d,&otroProducto) } Título: Re: Programa para introducir precios compra y acomular Publicado por: rir3760 en 14 Septiembre 2013, 17:20 pm ¿Sabrías decirme el pequeño bug de la imagen? Hace que cuando le de a "s" o "n" para responder a la pregunta me obligue a escribir algo para poder seguir. El problema es la cadena de formato al pedir confirmación:Código Utilizas " %c " cuando debería ser " %c". Un saludo Título: Re: Programa para introducir precios compra y acomular Publicado por: sora_ori en 15 Septiembre 2013, 09:51 am El problema es la cadena de formato al pedir confirmación: Código Utilizas " %c " cuando debería ser " %c". Un saludo Esto es lo que me fallaba! Gracias :) Muchas gracias a todos los la ayuda, TEMA SOLUCIONADO |