Está en la página 1de 28

FUNDAMENTOS DE PROGRAMACIÓN

CAPITULO 2
CLASE 7

Procesamiento de Datos
Simples

Tema: Guía de Diseño

Procesamiento de Datos Simples


1
PASO 1: DEFINICIÓN DE DATOS

Considerando lo visto en la clase anterior, cada


estructura definida tiene unos campos que pueden
tomar valores en cierto dominio.

Por ejemplo la estructura posn tiene dos campos y


cada uno corresponde a valores numéricos.

Entonces, Cómo podemos prevenir, instrucciones


como:
(make-posn ‘casa ‘perro)
(make-estudiante 27 18 1900)

Procesamiento de Datos Simples


2
COMENTARIOS EN EL DISEÑO

Desafortunadamente no podemos prevenir que se


construyan instancias de una estructura con valores
diferentes a los esperados.

Sin embargo, se puede comunicar al usuario acerca


de lo que se espera almacenar en las estructuras.

Esto se realiza por medio de COMENTARIOS.

Procesamiento de Datos Simples


3
GUÍA DE DISEÑO PARA PROGRAMAS CON ESTRUCTURAS

La guía de diseño a usar tiene algunos elementos


adicionales a los vistos.

A continuación se presenta un ejemplo con las


consideraciones necesarias en el diseño.

Ejemplo: Consideraremos una nueva estructura


punto, la cual además de sus coordenadas x & y,
tendrá un color asociado, vamos a considerar que
todos tienen el mismo radio.

Procesamiento de Datos Simples


4
EJEMPLO

Procesamiento de Datos Simples


5
ANÁLISIS Y DEFINICIÓN DE DATOS

;; Análisis y Definición de Datos


(define-struct punto (x y color))

;; Un punto es una estructura: (make-punto a b c)


;; donde a y b son números, y c es un color.

Procesamiento de Datos Simples


6
ANÁLISIS Y DEFINICIÓN DE DATOS

;; Análisis y Definición de Datos


(define-struct punto (x y color))

;; Un punto es una estructura: (make-punto a b c)


;; donde a y b son números, y c es un color.
Se especifica que tipos de
datos deben ser pasados
como parámetro al
constructor para crear
una instancia del punto.

Procesamiento de Datos Simples


7
NUEVA FASE: BOSQUEJO

;;Bosquejo
;;(define (función unPunto)
;; … (punto-x unPunto) …
;; … (punto-y unPunto) …
;; … (punto-color unPunto) …)

El Bosquejo es el esqueleto de una función basado


únicamente en la definición de datos. El Bosquejo
presenta la forma en que la mayoría de funciones
que usan la definición de datos están organizadas;
indica que cosas se pueden acceder cuando se
procesan este tipo de datos.
Procesamiento de Datos Simples
8
BOSQUEJO

;;(define (función unPunto)


;; … (punto-x unPunto) …
;; … (punto-y unPunto) …
;; … (punto-color unPunto) …)

El bosquejo presenta las


posibles opciones que se
tienen, para acceder los
datos.

Procesamiento de Datos Simples


9
EJEMPLO DE APLICACIÓN

Se quiere construir una función que reciba como


entrada un punto, un color a sustituir y un color
sustituto.

Si el color del punto es el mismo que el color a


sustituir entonces la función crea y retorna un
punto con el mismo x & y, pero con el color
sustituto.

Si al punto no le corresponde el color a sustituir


entonces la función retorna el punto sin ningún
cambio.

Procesamiento de Datos Simples


10
DISEÑO: ANÁLISIS Y CONTRATO

;;Análisis y Definición de Datos


(define-struct punto (x y color))
;; Un punto es una estructura:(make-punto a b c)
;; donde a y b son números, y c es un símbolo.

;;Contrato: sustitución: punto, símbolos Æ punto


;;Los símbolos corresponden al color que se desea
;;sustituir y al color actual.

Procesamiento de Datos Simples


11
DISEÑO: PROPÓSITO Y EJEMPLOS

;;Propósito: A partir de un punto, un color a


;;sustituir y un color sustituto, retornar un punto
;;donde en lugar del color a sustituir aparezca el
;;color sustituto. Si el color a sustituir no está se
;;retorna el mismo punto.

;;Ejemplos:
;;(sustitución (make-punto 3 4 ‘rojo) ‘rojo 'azul)
;; debe producir (make-punto 3 4 ‘azul)

;;(sustitución (make-punto 3 4 ‘verde) ‘azul ‘rojo)


;; debe producir (make-punto 3 4 ‘verde)

Procesamiento de Datos Simples


12
DISEÑO: BOSQUEJO

;;Bosquejo
;;(define (funcion unPunto)
;; … (punto-x unPunto) …
;; … (punto-y unPunto) …
;; … (punto-color unPunto) …)

Procesamiento de Datos Simples


13
DISEÑO: DEFINICIÓN

;;Definición
(define (sustitucion unPunto colorAnterior colorPosterior)
(cond
[(symbol=? (punto-color unPunto) colorAnterior)
(make-punto (punto-x unPunto)
(punto-y unPunto)
colorPosterior)]
[else unPunto]))

Procesamiento de Datos Simples


14
DISEÑO: PRUEBAS

;; Pruebas:
(sustitución (make-punto 3 4 ‘rojo) ‘rojo ‘azul)
;; debe producir
(make-punto 3 4 ‘azul)

(sustitución (make-punto 5 6 ‘verde) ‘azul ‘amarillo)


;; debe producir
(make-punto 5 6 ‘verde)

Procesamiento de Datos Simples


15
OTRO PROBLEMA USANDO PUNTOS

Se quiere realizar una función que a


partir de dos puntos determine la
distancia entre ellos.

Procesamiento de Datos Simples


16
RECORDANDO

Procesamiento de Datos Simples


17
DISEÑO: ANÁLISIS, CONTRATO, PROPÓSITO Y EJEMPLOS

;;Análisis y Definición de Datos


(define-struct punto (x y color))
;;Un punto es una estructura:(make-punto a b c)
;;donde a y b son números, y c es un color.

;;Contrato: distancia: punto, punto -> número

;; Propósito: A partir de dos puntos, determinar la


;; distancia entre ellos.

;; Ejemplos
;;(distancia (make-punto 1 1 ‘azul)(make-punto 4 5 'rojo))
;; debe producir 5

Procesamiento de Datos Simples


18
DISEÑO: BOSQUEJO Y PRUEBAS

;;Bosquejo
;; (define (función punto1 punto2) A pesar que no se
;; ( . . . (punto-x punto1) . . . presente, se debe
;; . . . (punto-y punto1) . . . realizar el contrato,
propósito, ejemplos
;; . . . (punto-color punto1) . . .
y pruebas de las
;; . . . (punto-x punto2) . . . funciones auxiliares,
;; . . . (punto-y punto2) . . . en este caso
;; . . . (punto-color punto2) . . distancia-auxiliar.

;;Pruebas:
;;(distancia (make-punto 1 1 ‘azul)(make-punto 4 5 'rojo))
;; debe producir 5

Procesamiento de Datos Simples


19
PROBLEMA: FUTBOL AMERICANO

Un partido de fútbol americano está dividido en


cuatro periodos.

Durante cada periodo, ambos equipos buscan


alcanzar el mayor número de puntos, de tal manera
que al final de partido el número total de puntos del
equipo sea superior al número total de puntos del
equipo contrario.

Nuestro objetivo es obtener información estadística


de un equipo en un juego.
Procesamiento de Datos Simples
20
SOLUCIÓN

Por ahora, realicemos una función que


reciba una estructura, que tiene la
información de los puntos obtenidos en cada
periodo por el equipo. La función debe
retornar el promedio de puntos alcanzado
por el equipo en el juego.

Procesamiento de Datos Simples


21
DISEÑO: ANÁLISIS Y DEFINICIÓN DE DATOS

;; Análisis y Definición de Datos

(define-struct juego (primero segundo tercero cuarto))

;; Un juego es una estructura: (make-juego a b c d)


;; donde a, b, c, d son números que representan los
;; puntos obtenidos durante el periodo 1,2,3 y 4
;; respectivamente.

Procesamiento de Datos Simples


22
DISEÑO: CONTRATO, PROPÓSITO Y EJEMPLOS

;;Contrato: promedio-juego: juego Æ número

;;Propósito: A partir de un juego determinar el


;;número promedio de puntos obtenido por el
;;equipo en el juego.

;; Ejemplos:
;;(promedio-juego (make-juego 7 0 14 3))
;; debe producir 6
;; (promedio-juego (make-juego 7 7 0 14))
;; debe producir 7
;; (promedio-juego (make-juego 0 0 0 0))
;; debe producir 0
Procesamiento de Datos Simples
23
DISEÑO: BOSQUEJO

;;Bosquejo:
;; (define (función unJuego)
;; … (juego-primero unJuego)…
;; … (juego-segundo unJuego)…
;; … (juego-tercero unJuego)…
;; … (juego-cuarto unJuego)…)

Procesamiento de Datos Simples


24
DISEÑO: DEFINICIÓN

;; Definición:

(define (promedio-juego unJuego)


(/
(+ (juego-primero unJuego)
(juego-segundo unJuego)
(juego-tercero unJuego)
(juego-cuarto unJuego))
4))

Procesamiento de Datos Simples


25
DISEÑO: PRUEBAS

;; Pruebas:
(= (promedio-juego (make-juego 7 0 14 3)) 6)
(= (promedio-juego (make-juego 7 7 0 14)) 7)
(= (promedio-juego (make-juego 0 0 0 0)) 0)

Procesamiento de Datos Simples


26
PREGUNTAS FRECUENTES

Definición de Datos:

1)Sólo hay definición de datos para las


estructuras?
R/ No, muy pronto se verán otros tipos de
programas que también tienen definición de datos.

2)La definición de la estructura va en la etapa


de definición de datos?
R/ Si

Procesamiento de Datos Simples


27
PREGUNTAS FRECUENTES

Bosquejo:

1)La función en el bosquejo no es la misma que estoy


construyendo??
R/ El bosquejo no corresponde exactamente a la función que
se este realizando.

El bosquejo muestra que es posible respecto a la definición de


datos que aplica a las entradas de la función. Presenta un
repertorio de usos de funciones que permiten acceder a los
datos que generalmente se deben manipular.

La función no tiene que llamar o hacer uso de todas las


funciones que hay en el bosquejo. Por ejemplo en la función
no se uso el color del punto (“punto-color...”), sin embargo
aparece en el bosquejo.

Procesamiento de Datos Simples


28

También podría gustarte