al utilizar la receta de diseño de funciones se tiene lo siguiente:
(require 2htdp/image)
;Firma (signature)
;Image --> Boolean (a partir de una imagen se produce un dato booleano)
;Próposito (purpose):
;Producir "verdadero" si el alto de la imagen es mayor que su ancho.
;colilla (stub). Se hace un borrador de la función, no tiene que ser la soluciòn completa
; en este ejemplo, se crea una función llamada "tall?" con argumento "img"(imagen) que por ahora produce false
(define (tall? img) false)
;Ejemplos:
(check-expect (tall? (rectangle 2 3 "solid" "red")) true)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 2 pixeles y alto 3 pixeles
; se deberia producir "true", pues es verdadero que 3 es mayor que 2.
(check-expect (tall? (rectangle 3 2 "solid" "red")) false)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 3 pixeles y alto 2 pixeles
; se deberia producir "false", pues es falso que 2 es mayor que 3.
(check-expect (tall? (rectangle 3 3 "solid" "red")) false)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 3 pixeles y alto 3 pixeles
; se deberia producir "false", pues es falso que 3 es mayor que 3.
Por ahora, se ejecuta este código para verificar que este bien planteado, asi sea que los resultados esperados sean diferentes a lo que produce la función.
(require 2htdp/image)
;Firma (signature)
;Image --> Boolean (a partir de una imagen se produce un dato booleano)
;Próposito (purpose):
;Producir "verdadero" si el alto de la imagen es mayor que su ancho.
;colilla (stub). Se hace un borrador de la función, no tiene que ser la soluciòn completa
; en este ejemplo, se crea una función llamada "tall?" con argumento "img"(imagen) que por ahora produce false
;(define (tall? img) false)
;plantilla (template)
;(define (tall? img )
; (... img)
;Función
(define (tall? img)
(if (> (image-height img) (image-width img))
true
false))
;Ejemplos:
(check-expect (tall? (rectangle 2 3 "solid" "red")) true)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 2 pixeles y alto 3 pixeles
; se deberia producir "true", pues es verdadero que 3 es mayor que 2.
(check-expect (tall? (rectangle 3 2 "solid" "red")) false)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 3 pixeles y alto 2 pixeles
; se deberia producir "false", pues es falso que 2 es mayor que 3.
(check-expect (tall? (rectangle 3 3 "solid" "red")) false)
;Al utilizar la función tall? cuyo argumento es un rectangulo de ancho 3 pixeles y alto 3 pixeles
; se deberia producir "false", pues es falso que 3 es mayor que 3.
Al ejecutar este código, las tres pruebas pasan satisfactoriamente:
Es de señalar que la función creada anteriormente puede simplificarse, teniendo en cuenta que en este caso, el condicional IF cuando es verdadero produce "true" y cuando es falso produce "false", lo cual es redundante:
(if (> (image-height img) (image-width img))
true
false))
Por lo tanto, la función anterior puede reducirse a lo siguiente:
(define (tall? img)
(> (image-height img) (image-width img))
Anterior
Siguiente
No hay comentarios:
Publicar un comentario