Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; Estructura usada: (define-struct producto (nombre, codigo, precio)
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25 de Junio de 2019
- ;;Contrato: incremento-precio: producto, numero -> producto
- ;;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.
- ;; Ejemplos (incremento-precio (make-producto "Gelatina" "10012" 100) 100) -> (make-producto "Gelatina" "10012" 200)
- ;;(incremento-precio (make-producto "Gelatina" "10012" 100) 1000) -> (make-producto "Gelatina" "10012" 1000)
- (define-struct producto (nombre codigo precio))
- (define (incremento-precio prod inc)
- (cond
- [(and (producto? prod) (number? inc))
- (cond
- [(> inc 500)
- (make-producto
- (producto-nombre prod)
- (producto-codigo prod)
- inc)
- ]
- [else
- (make-producto
- (producto-nombre prod)
- (producto-codigo prod)
- (+ (producto-precio prod) inc))
- ]
- )
- ]
- [else (error "Usted debe ingresar un producto y un numero")]
- )
- )
- (check-expect (incremento-precio (make-producto "Gelatina" "10012" 100) 100) (make-producto "Gelatina" "10012" 200))
- (check-expect (incremento-precio (make-producto "Gelatina" "10012" 100) 1000) (make-producto "Gelatina" "10012" 1000))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement