cardel

FDP Ejercicio

Jan 25th, 2021
650
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Una tienda maneja productos de acuerdo a la siguiente
  2. ; clasificacion
  3. ;
  4. ; - Verduras: nombre (simbolo), precio por kilo (numero)
  5. ; - Confiteria: nombre(simbolo), marca(simbolo), precio por unidad (numero)
  6. ; - Carne: nombre(simbolo), tipo-corte, precio por kilo(numero)
  7. ;
  8. ; Tipo de corte: Nombre (simbolo), nombre-animal (simbolo)
  9. ;
  10. ; Se desea crear una función llamada calcular-venta la cual
  11. ; recibe una estructura tipo producto (verdura o confiteria o
  12. ; carne) y una cantidad a comprar (numero) y retorna el valor
  13.  
  14.  
  15. ;;Primer paso definir las estructuras
  16. (define-struct verdura (nombre preciokilo))
  17. (define-struct confiteria (nombre marca preciounidad))
  18. (define-struct carne (nombre tipocorte preciokilo))
  19.  
  20. (define-struct tipo-corte (nombre nombre-animal))
  21.  
  22.  ;;Definir algunos productos
  23. (define zanahoria (make-verdura 'zanahoria 4000))
  24. (define pastel (make-confiteria 'pastel 'bimbo 5000))
  25. (define lomo (make-carne 'carne (make-tipo-corte 'lomo 'cerdo) 3000))
  26.  
  27. ;;Autor: Oscar Fernando Rivera,202067730
  28. ;;Fecha: 25 de Enero de 2021
  29. ;;Contrato: calcular-venta: producto, numero -> numero
  30. ;;Ejemplos
  31. ;;producto zanahoria Cantidad: 10, 40000
  32. ;;producto pastel Cantidad 10, 50000
  33. ;;producto lomo Cantidad, 100 300000
  34. (define (calcularventa producto cantidad)
  35.   (cond
  36.     [(verdura? producto)
  37.      (* cantidad (verdura-preciokilo producto))]
  38.     [(confiteria? producto)
  39.      (* cantidad (confiteria-preciounidad producto))]
  40.     [(carne? producto)
  41.      (* cantidad (carne-preciokilo producto))]
  42.     [else (error "ingrese un producto")]
  43.     )
  44.   )
  45.  ;;PRueba
  46.  
  47. (check-expect (calcularventa  zanahoria 10) 40000)
  48. (check-expect (calcularventa pastel 10) 50000)
  49. (check-expect (calcularventa lomo 100) 300000)
RAW Paste Data