Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Una tienda maneja productos de acuerdo a la siguiente
- ; clasificacion
- ;
- ; - Verduras: nombre (simbolo), precio por kilo (numero)
- ; - Confiteria: nombre(simbolo), marca(simbolo), precio por unidad (numero)
- ; - Carne: nombre(simbolo), tipo-corte, precio por kilo(numero)
- ;
- ; Tipo de corte: Nombre (simbolo), nombre-animal (simbolo)
- ;
- ; Se desea crear una función llamada calcular-venta la cual
- ; recibe una estructura tipo producto (verdura o confiteria o
- ; carne) y una cantidad a comprar (numero) y retorna el valor
- ;;Primer paso definir las estructuras
- (define-struct verdura (nombre preciokilo))
- (define-struct confiteria (nombre marca preciounidad))
- (define-struct carne (nombre tipocorte preciokilo))
- (define-struct tipo-corte (nombre nombre-animal))
- ;;Definir algunos productos
- (define zanahoria (make-verdura 'zanahoria 4000))
- (define pastel (make-confiteria 'pastel 'bimbo 5000))
- (define lomo (make-carne 'carne (make-tipo-corte 'lomo 'cerdo) 3000))
- ;;Autor: Oscar Fernando Rivera,202067730
- ;;Fecha: 25 de Enero de 2021
- ;;Contrato: calcular-venta: producto, numero -> numero
- ;;Ejemplos
- ;;producto zanahoria Cantidad: 10, 40000
- ;;producto pastel Cantidad 10, 50000
- ;;producto lomo Cantidad, 100 300000
- (define (calcularventa producto cantidad)
- (cond
- [(verdura? producto)
- (* cantidad (verdura-preciokilo producto))]
- [(confiteria? producto)
- (* cantidad (confiteria-preciounidad producto))]
- [(carne? producto)
- (* cantidad (carne-preciokilo producto))]
- [else (error "ingrese un producto")]
- )
- )
- ;;PRueba
- (check-expect (calcularventa zanahoria 10) 40000)
- (check-expect (calcularventa pastel 10) 50000)
- (check-expect (calcularventa lomo 100) 300000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement