Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;.
- (define-struct avion (aceleracion velmax rango))
- (define-struct rango-avion (alcance-minimo alcance-maximo precision))
- (define avionA (make-avion 100 2000 (make-rango-avion 10 100 50)))
- (define avionB (make-avion 200 2000 (make-rango-avion 20 200 10)))
- (define avionC (make-avion 100 4000 (make-rango-avion 10 150 30)))
- ;;Extraer los datos
- (avion-aceleracion avionA)
- (avion-aceleracion avionB)
- (avion-aceleracion avionC)
- (avion-velmax avionA)
- (avion-velmax avionB)
- (avion-velmax avionC)
- (avion-rango avionA)
- (avion-rango avionB)
- (avion-rango avionC)
- ;(define-struct rango-avion (alcance-minimo alcance-maximo precision))
- (rango-avion-alcance-minimo (avion-rango avionA))
- (rango-avion-alcance-minimo (avion-rango avionB))
- (rango-avion-alcance-minimo (avion-rango avionC))
- (rango-avion-alcance-maximo (avion-rango avionA))
- (rango-avion-alcance-maximo (avion-rango avionB))
- (rango-avion-alcance-maximo (avion-rango avionC))
- (rango-avion-precision (avion-rango avionA))
- (rango-avion-precision (avion-rango avionB))
- (rango-avion-precision (avion-rango avionC))
- ;;Desarollar una función que reciba dos aviones y nos retorne que el que tenga más precisión
- ;;pensar:
- ;(define avionA (make-avion 100 2000 (make-rango-avion 10 100 50)))
- ;(define avionB (make-avion 200 2000 (make-rango-avion 20 200 10)))
- ;(define avionC (make-avion 100 4000 (make-rango-avion 10 150 30)))
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25-Enero-2021
- ;;Contrato: avion-mas-preciso: avion,avion -> avion
- ;;Propósito: Esta función permite determinar de dos aviones cual es el más preciso
- ;;;Ejemplos
- ;Si comparo avionA y avionB ¿Cual es el más preciso? avionA
- ;Si comparo avionA y avionC ¿Cual es el más preciso? avionA
- ;Si comparo avionB y avionC ¿Cual es el más preciso? avionC
- (define (avion-mas-preciso avionx aviony)
- (cond
- [(and (avion? avionx)
- (avion? aviony))
- (if (>
- (rango-avion-precision (avion-rango avionx))
- (rango-avion-precision (avion-rango aviony)))
- avionx
- aviony
- )]
- [else (error "Las dos entradas deben ser estructuras tipo avion")]
- )
- )
- (check-expect (avion-mas-preciso avionA avionB) avionA)
- (check-expect (avion-mas-preciso avionA avionC) avionA)
- (check-expect (avion-mas-preciso avionB avionC) avionC)
- (check-error (avion-mas-preciso avionA "hola"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement