Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Una tienda de donas requiere una aplicación para calcular el valor
- ; de la venta de las donas. Esta tienda maneja 4 tipos de donas
- ;
- ; - Donas junior: Color, adicion, precio
- ; - Donas para la señorita: Color, azucar?, precio
- ; - Donas para el señor: Color, peso, precio
- ; - Donas para la abuelita: Color, azucar?, peso, precio
- ;
- ; Se desea calcular el precio de venta de un compra de donas, bajo
- ; la restricción de que siempre compra un mismo tipo de dona.
- ; 1. Diseño de las estructuras
- ; 2. Especificación de contrato. 3. Diseño de la función.
- ;
- (define-struct donnaJ (color adicion precio))
- (define-struct donnaS (color azucar? precio))
- (define-struct donnaH (color peso precio))
- (define-struct donnaA (color azucar? peso precio))
- (define donnita1 (make-donnaJ 'verde 'chocolate 2000))
- (define donnita2 (make-donnaS 'rojo #false 3000))
- (define donnita3 (make-donnaH 'morado 20 5000))
- (define donnita4 (make-donnaA 'amarillo #true 30 4000))
- ;;Autor: Carlos A Delgado
- ;;Fecha: 01 de Febrero de 2021
- ;;COntrato: calcular-venta: donna, numero -> numero
- ;;Propósito: Calcular el precio de venta de unas donnas
- ;;Ejemplos
- ;; donnita1 10 20000
- ;; donnita2 5 15000
- ;; donnita3 20 100000
- ;; donnita4 8 32000
- (define (calcular-venta don cnt)
- (cond
- [(donnaJ? don) (* (donnaJ-precio don) cnt)]
- [(donnaS? don) (* (donnaS-precio don) cnt)]
- [(donnaH? don) (* (donnaH-precio don) cnt)]
- [(donnaA? don) (* (donnaA-precio don) cnt)]
- [else (error "Debe ingresar una estructura tipo donna a la función")]
- ))
- ;;Pruebas
- (check-expect (calcular-venta donnita1 10) 20000)
- (check-expect (calcular-venta donnita2 5) 15000)
- (check-expect (calcular-venta donnita3 20) 100000)
- (check-expect (calcular-venta donnita4 8) 32000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement