programación en C ayuda ejercicio

Iniciado por clauditaal2013, 2 Agosto 2014, 21:23 PM

0 Miembros y 1 Visitante están viendo este tema.

clauditaal2013

Hola necesito ayuda con un programa en c, para un ejercicio dice:

Una empresa farmaceutica tiene un local para la venta de sus productos.
Dicho local atiende de 08hs a 13hs y de 14hs a 20hs.
Consta de 3 empleados y un farmaceutico, los que atienden al publico durante todo el horario seis veces a la semana .
La venta esta centrada sobre sus 8 productos que pertenecen a dos rubros, farmacia y cosmetica

Cada vez que realizan un ticket de venta se registra
Nº de ticket
Nº de remedio (1,2,3,4,5,6,7 u 8)
Nº de rubro (1 o 2)
Cantidad
Valor Unitario
Nº de vendedor (1,2,3 o 4)

siendo el empleado 1 el farmaceutico
El ingreso de datos finaliza cuando el Nº de ticket es igual a 0

SE DESEA SABER:
1. Facturacion total de la empresa
2. Valor promedio de los tickets
3. Comision a cobrar por cada empleado si es igual al 2% del valor de su venta
4. Si el farmaceutico cobra ademas un 3% sobre la facturacion total, cuanto cobrara?
5. Cual fue el Nº de ticket de mayor valor y quien lo vendio?
6. De que rubro se vendieron mas cantidad de articulos?

(no tiene que tener variables globales)
Gracias estoy perdida

Xandrete

#1
¡Hola!

Primero que nada, no voy a resolver yo el ejercicio, porque así no aprenderías y además sería injusto.

Querría hacer una observación sobre la forma de expresarse. En programación, y en general en todas las ciencias, es muy importante emplear un lenguaje lo menos ambiguo posible, claro y técnico, en medida de lo que alcancen tus conocimientos. Dices...

Citar(no tiene que tener variables globales)

Esa frase estrictamente quiere decir: "no es necesario que tenga variables globales, no es obligatorio". Sin embargo, haciendo algo de metajuego entiendo que lo que quieres decir es: "No ha de usar variables globales/ No está permitido emplear variables globales/ Es obligatorio hacerlo sin variables globales". En problemas más complejos, esta diferencia que a priori puede parecer muy tiquismiquis marca la diferencia entre crear un programa correcto y crear uno incorrecto.

Respecto al problema, yo (y seguramente cualquiera) estaré encantado de ayudarte si nos ofreces algo de código, un intento aunque sea fútil de resolverlo y que nos demuestre que lo has meditado lo suficiente. Como no tienes nada de código sólo puedo aportarte unas guías generales:

Puedes utilizar un vector (como estás en C, sería un array) o una lista enlazada (quizás en este caso sea mejor una lista enlazada, ya que a priori no sabes el número de compras hasta que te ingresan una con el número de ticket igual a cero) de structs para guardar la información sobre las compras. El struct tendría como campos el número de ticket, el número del remedio, el número del rubro, la cantidad, el valor unitario y el número del vendedor. A partir de ahí, una forma muy fácil de resolver el problema sería recorrer la lista el número de veces que te sea necesario para hallar el resultado de cada una de las cosas que te piden. Hacerlo de esta manera puede resultar algo más ineficiente que calcular dos o tres de ellos en el mismo recorrido (o incluso todo), pero te puede ayudar al principio para separar el problema en subproblemas de dimensión menor. Una vez tengas hecho el primer apartado (el de la facturación total), los demás son muy sencillos.

Respecto a lo de las variables globales, no es una restricción demasiado fuerte. De hecho, acostúmbrate a hacerlo todo sin variables globales. Éstas es conveniente usarla sólo en ocasiones especiales (por ejemplo, cuando programas con OpenGL en C, con el que no puedes declararte clases, es más cómodo usar variables globales).

Saludos y ánimos resolviendo el problema.