sábado, 20 de mayo de 2017

Cómo programar: datos simples (15) - condiciones multiples con la expresión COND

Hay ocasiones en que la expresión IF no resulta suficiente, dado que algunas expresiones tienen multiples opciones. Para estos casos se utiliza la expresión COND.

El formato de la expresión COND es el siguiente:

(cond [ pregunta1 respuesta1 ]
          [ pregunta2 respuesta2 ]
          [ pregunta n respuesta n ] )

En el siguiente ejemplo se evalua si la imagen es alta, cuadrada o ancha. Para poner comentario en un bloque completo de código se utiliza #;

(require 2htdp/image)

(define I1 (rectangle 10 20 "solid" "red")) ;se crea la constante I1 que representa un rectángulo de 10x20
(define I2 (rectangle 20 20 "solid" "red")) ;se crea la constante I2 que representa un rectángulo de 20x20
(define I3 (rectangle 20 10 "solid" "red")); se crea la constante I3 que representa un rectángulo de 20x210

;colilla (stub): se crea la función "aspect ratio", cuyo argumento es una imagen (img) y su resultado es un texto.
;(define (aspect-ratio img) " ")

;Plantilla
#;(define (aspect-ratio img)
    (... img))

;creación de la función completa:
(define (aspect-ratio img)
 (cond [ (> (image-height img) (image-width img) ) "tall"]
           [ (= (image-height img) (image-width img) ) "square"]
           [ else "wide"] ))

;Firma: Image --> String 
;Próposito: produce la forma de una imagen, que es una de las siguientes: "alta" (tall), "cuadrada" (square) o "ancha" (wide)
;ejemplos:
(check-expect (aspect-ratio I1) "tall")
(check-expect (aspect-ratio I2) "square")
(check-expect (aspect-ratio I3) "wide")






No hay comentarios:

Publicar un comentario

Cómo programar: datos simples (21) - Enumeración

Diseñar una definición de datos para representar las letras de calificaciones en un curso.  Estas letras son A, B y C, que significan bueno,...