SHARE
TWEET

Untitled

cardel Jun 25th, 2019 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;; Estructura usada: (define-struct producto (nombre, codigo, precio)
  2. ;;Autor: Carlos A Delgado
  3. ;;Fecha: 25 de Junio de 2019
  4. ;;Contrato: incremento-precio: producto, numero -> producto
  5. ;;Propósito: Esta función recibe un producto y un número, retorna el mismo producto pero con el campo precio sumado con el número recibido. Si el incremento es mayor que 500, se asume solo el incremento como precio.
  6. ;; Ejemplos (incremento-precio (make-producto "Gelatina" "10012" 100) 100) -> (make-producto "Gelatina" "10012" 200)
  7. ;;(incremento-precio (make-producto "Gelatina" "10012" 100) 1000) -> (make-producto "Gelatina" "10012" 1000)
  8. (define-struct producto (nombre codigo precio))
  9.  
  10. (define (incremento-precio prod inc)
  11.   (cond
  12.     [(and (producto? prod) (number? inc))
  13.      (cond
  14.        [(> inc 500)
  15.         (make-producto
  16.          (producto-nombre prod)
  17.          (producto-codigo prod)
  18.          inc)
  19.         ]
  20.        [else
  21.          (make-producto
  22.          (producto-nombre prod)
  23.          (producto-codigo prod)
  24.          (+ (producto-precio prod) inc))
  25.          ]
  26.        )
  27.      ]
  28.     [else (error "Usted debe ingresar un producto y un numero")]
  29.     )
  30. )
  31.  
  32. (check-expect (incremento-precio (make-producto "Gelatina" "10012" 100) 100) (make-producto "Gelatina" "10012" 200))
  33. (check-expect (incremento-precio (make-producto "Gelatina" "10012" 100) 1000) (make-producto "Gelatina" "10012" 1000))
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top