Título: Algoritmo en C con acción Publicado por: Javaniano en 19 Noviembre 2013, 14:10 pm Un supermercado que hace reparto a domicilio dispone de una secuencia de datos para llevar el control de los pedidos . Cada pedido tiene una secuencia con el siguiente formato:
< idProd1 quantity1 price1 fridge1 idProd2 quantity2 price2 fridge2 . .. idProdn quantityn prices fridgen END > , donde: • idProdi es un entero positivo de 5 dígitos que representa el código del producto • Price es un real que indica el precio del producto • Cantidad es un entero positivo que representa el número de elementos de este producto • fridgen es un carácter con el valor 'S' si este producto necesita nevera, 'N' contrario • END es la marca final de secuencia y vale -1 Nos dicen que cada código de producto aparecerá sólo una vez en la secuencia y que una secuencia contendrá , como mínimo , la marca final . Partiendo de una secuencia con los datos de un pedido que entrarán por el canal estándar , se nos pide que diseñamos una acción que calcule el precio final del pedido sabiendo que : • El precio del reparto depende del precio final del pedido : Si el precio total es menor a 70 euros el reparto tiene un coste adicional de 6 euros , sino si el precio total es mayor o igual a 70 euros y menor a 120 euros el coste del reparto es de 4 euros . En caso de que el precio sea superior a 120 euros , el reparto es gratuito . • Algunos productos tienen una oferta especial : comprando dos , el segundo tiene un 50 % de descuento . Estos productos están señalados mediante el identificador de producto : si empieza con el dígito 9 . Se debe imprimir por pantalla el precio final del pedido ( con los descuentos y el coste de reparto incluidos) , el coste del reparto y el total de descuentos obtenidos . Lo del precio lo hago: si (subtotal<70) llavors rep = 6.0; fsi si (subtotal>=70 i <120) llavors rep = 4.0; sino rep=0.0; fsi ¿cómo haríais lo del descuento? GRACIAS Título: Re: Algoritmo en C con acción Publicado por: rir3760 en 19 Noviembre 2013, 18:12 pm Para conocer si el numero (id del producto) termina en 9 puedes utilizar el operador de modulo.
El calculo del descuento depende de si este aplica solo al segundo o por pares. * Si aplica solo al segundo verificas si el numero de unidades es mayor o igual a dos, si eso sucede al costo total le restas ".5 * precio_unitario". * Si aplica por pares (por ejemplo compras cinco artículos con el descuento aplicando a dos de ellos) debes utilizar: Código: descuento = (cantidad / 2) * .5 * precio_unitario Un saludo |