El intervalo es un tipo de datos que representa un rango de números.
Por ejemplo, se requiere diseñar una definición de datos que represente un número de silla en una fila, cada fila con 32 sillas.
1 2 3 ... 32
Recordando un poco, una definición de datos consta de cuatro o cinco partes:
1) Una posible definición de una estructura (no visto hasta ahora, más adelante se verá en detalle)
2) Un comentario de tipo que define un nuevo nombre para el tipo de datos y describe como formar datos.
3) Una interpretación que describe la correspondencia entre información y datos
4) Uno o más ejemplos de los datos.
5) Una plantilla de una función que opera sobre el tipo de datos antes definido.
Ahora bien, el ejemplo planteado corresponde a un tipo atomic non-distinct, el cual tambien tiene un "subtipo" llamado interval (intervalo). Si se busca en la plantilla orientada por datos, es el siguiente:
El tipo de datos tendrá el nombre SeatNum (Número de silla):
;SeatNum is Natural [1, 32]
;Interpretación: SeatNum es un número natural que representa los números de silla
;en una fila, desde la uno hasta la 32. 1 y 32 son sillas que dan al pasillo (sillas ubicadas
;en los extremos de la fila).
[1,32] indica que el rango incluye tanto el 1 como el 32
Si se cambia la notación, tendría un significado diferente:
(1,32) indica que se excluyen 1 y 32, es decir el rango incluye 2 y va hasta 31.
[1,32) indica que incluye 1 pero excluye 32, por lo que el rango va desde 1 hasta 31.
Volviendo al ejemplo, la notación será [1,32]
Ahora se definen los ejemplos, los cuales deben incluir al menos: los extremos y un número cercano a la mitad:
;Ejemplos:
;(define SN 1) ; pasillo
;(define SN 12) ; mitdad de la fila
;(define SN 32); pasillo
Luego la plantilla asociada a los tipos de datos atomic non-distinct:
;plantillla de datos
;(define (fn-for-seat-num sn)
; (... sn))
En adelante se indicará la plantilla de datos utilizada:
;Regla de plantilla utilizada:
; - Atomic non-distinct
; Natural [1,32] ; intervalo que representa un número natural entre 1 y 32.
Al final el código completo de la definición de datos quedará así:
;SeatNum is Natural [1, 32]
;Interpretación: SeatNum es un número natural que representa los números de silla
;en una fila, desde la uno hasta la 32. 1 y 32 son sillas que dan al pasillo (sillas ubicadas
;en los extremos de la fila).
;Ejemplos:
;(define SN 1) ; pasillo
;(define SN 12) ; mitdad de la fila
;(define SN 32); pasillo
plantillla de datos
;(define (fn-for-seat-num sn)
; (... sn))
;Regla de plantilla utilizada:
; - Atomic non-distinct
; Natural [1,32] ; intervalo que representa un número natural entre 1 y 32.
Anterior
Siguiente
Apuntes del lenguaje de programación "Racket", tomados del curso virtual "How to code: simple data", que hace parte de la serie "Software development", impartida por University of British Columbia a través de edx.org. A este curso se puede acceder de forma gratuita. Los apuntes los estaré colocando en la médida que vaya avanzando en el curso.
Suscribirse a:
Enviar comentarios (Atom)
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,...

No hay comentarios:
Publicar un comentario