Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define-struct celular (marca memoria espacio gamma-alta? costo))
- (define-struct computador (marca procesador gamma-alta? costo))
- (define-struct accesorio (nombre costo))
- (define-struct venta (producto cantidad))
- (define-struct costo-discriminado (subtotal iva icl total))
- ;;Autor: Paola Andrea Domínguez Vélez
- ;;Fecha: 8/08/2020
- ;;Contrato: Venta:
- ;;Definición:
- (define (venta-discriminada venta)
- (cond
- [(not (venta? venta)) "Ingrese una estructura tipo venta"]
- [(celular? (venta-producto venta))
- (make-costo-discriminado
- (* (venta-cantidad venta) (celular-costo (venta-producto venta)))
- (* 0.19 (* (venta-cantidad venta) (celular-costo (venta-producto venta))))
- (Icl venta)
- (+ (* 0.19 (* (venta-cantidad venta) (celular-costo (venta-producto venta))))
- (* (venta-cantidad venta) (celular-costo (venta-producto venta)))
- (Icl venta))
- )]
- [(computador? (venta-producto venta))
- (make-costo-discriminado
- (* (venta-cantidad venta) (computador-costo (venta-producto venta)))
- (* 0.19 (* (venta-cantidad venta) (computador-costo (venta-producto venta))))
- (Icl venta)
- (+ (* 0.19 (* (venta-cantidad venta) (computador-costo (venta-producto venta))))
- (* (venta-cantidad venta) (computador-costo (venta-producto venta)))
- (Icl venta))
- )]
- [(accesorio? (venta-producto venta))
- (make-costo-discriminado
- (* (venta-cantidad venta) (accesorio-costo (venta-producto venta)))
- (* 0.19 (* (venta-cantidad venta) (accesorio-costo (venta-producto venta))))
- (Icl venta)
- (+ (* 0.19 (* (venta-cantidad venta) (accesorio-costo (venta-producto venta))))
- (* (venta-cantidad venta) (accesorio-costo (venta-producto venta)))
- (Icl venta))
- )]
- ))
- ;;Icl
- (define (Icl venta)
- (cond
- [(celular? (venta-producto venta))
- (cond
- [(or (> (* (venta-cantidad venta) (celular-costo (venta-producto venta))) 500000)
- (celular-gamma-alta? (venta-producto venta))
- ) (* 0.10 (* (venta-cantidad venta)(celular-costo (venta-producto venta))))
- ]
- [else 0]
- )]
- [(computador? (venta-producto venta))
- (cond
- [(or (> (* (venta-cantidad venta) (computador-costo (venta-producto venta))) 500000)
- (computador-gamma-alta? (venta-producto venta))
- ) (* 0.10 (* (venta-cantidad venta)(computador-costo (venta-producto venta))))
- ]
- [else 0]
- )]
- [(accesorio? (venta-producto venta))
- (cond
- [(> (* (venta-cantidad venta) (accesorio-costo (venta-producto venta))) 500000)
- (* 0.10 (* (venta-cantidad venta)(accesorio-costo (venta-producto venta))))
- ]
- [else 0]
- )]
- ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement