Está en la página 1de 19

FUNDAMENTOS DE PROGRAMACIÓN

CAPITULO 2
CLASE 8

Procesamiento de Datos
Simples

Tema: Estructuras III

Procesamiento de Datos Simples


1
DEFINICIÓN DEL PROBLEMA: TRATANDO CON FÍGURAS

Crear una función Calcular-Área que recibe una


figura bidimensional y calcula el área de la figura.

Específicamente se debe tratar con:

• Círculos: PI * Radio * Radio (donde PI = 3.14)


• Rectángulos: Base * Altura
• Triángulos: 1/2 * longitud de la base * altura

Procesamiento de Datos Simples


2
CREAR DEFINICIONES DE DATOS COMPLEJOS

Hemos considerado definiciones sencillas de datos


como:

(define-struct posn(x y))

Como se puede apreciar, la declaración no nos


indica el tipo de información que se almacena en
los campos. Un comentario nos permite especificar
esta información.

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


;; donde a y b son números que representan
;; las coordenadas x & y del punto.
Procesamiento de Datos Simples
3
OTRO TIPO DE CONCEPTO

Es posible crear definición es de datos que


puedan variar, por ejemplo:
Una mascota puede ser:
• Un gato, o
• Un perro, o
• Una culebra

Nosotros abordaremos específicamente un


caso muy común:
FIGURA

Procesamiento de Datos Simples


4
ALGUNAS FIGURAS

Una figura puede ser


únicamente:

Triángulo: tiene tres


puntos.

Rectángulo: tiene una


esquina, una base, y una
altura.

Círculo: tiene la posición


del centro y su radio.

Procesamiento de Datos Simples


5
CÓMO LO PODEMOS REPRESENTAR EN SCHEME?

Podemos definir las estructuras para cada tipo


particular.

• Una estructura para triángulo.


• Una estructura para rectángulo.
• Una estructura para círculo.

Cómo capturamos la noción de que son


subcategorías de “Figura”?

Procesamiento de Datos Simples


6
DEFINICIONES DE DATOS

(define-struct rectangulo(esquina ancho alto))


;;un rectángulo es una estructura: (make-rectangulo e an al)
;;donde e es un posn, y an & al son números.

(define-struct triangulo(punto1 punto2 punto3))


;;un triangulo es una estructura: (make-triangulo p1 p2 p3)
;;donde p1, p2, & p3 son posns.

(define-struct circulo(centro radio))


;;un círculo es una estructura: (make-circulo c r)
;;donde c es un posn y r es un número.

Procesamiento de Datos Simples


7
DESCRIBIR EL TIPO DE DATO COMPLEJO

Una figura puede ser un círculo, un rectángulo o un


triángulo.

;;Una Figura puede ser:


;; 1. Un círculo.
;; 2. Un triángulo.
;; 3. Un rectángulo.

Procesamiento de Datos Simples


8
PREGUNTA

Se requiere una instrucción como


(define-struct figura…) o algo
parecido?

R/ No. Una figura no es una estructura.

Esto se debe a la flexibilidad que debe tener figura,


la cual permite que cualquier función que la quiera
manipular deba poder tratar con cualquiera de las
tres estructuras.

Procesamiento de Datos Simples


9
CONTINUA EL DISEÑO

;;Contrato: Calcular-Área : figura Ænúmero.

;;Propósito: Dada una figura cualquiera, calcular su


;;área usando sus propiedades específicas.

;;Ejemplos:
;;(Calcular-Área (make-rectangulo (make-posn 0 0) 3 4)) Æ 12
;; …más, ejemplos…

;;Bosquejo: ...

Procesamiento de Datos Simples


10
BOSQUEJO PARA PROCESAR UNA ESTRUCTURA

;;(define (procesando-figura miFigura)


;; (cond
;; [(circulo? miFigura)
;; …(circulo-centro miFigura)…
;; …(circulo-radio miFigura)…]
;; [(rectangulo? miFigura)
;; …(rectangulo-esquina miFigura)…
;; …(rectangulo-ancho miFigura)…
;; …(rectangulo-alto miFigura)…]
;; [(triangulo? miFigura)
;; …(triangulo-punto1 miFigura)…
;; …(triangulo-punto2 miFigura)…
;; …(triangulo-punto3 mifigura)… ]))

Procesamiento de Datos Simples


11
BOSQUEJO PARA PROCESAR UNA ESTRUCTURA

;;(define (procesando-figura miFigura)


;; (cond Verifica qué
;; [(circulo? miFigura) tipo de figura
;; …(circulo-centro miFigura)… es..
;; …(circulo-radio miFigura)…]
;; [(rectangulo? miFigura) Verifica qué
;; …(rectangulo-esquina miFigura)… tipo de figura
;; …(rectangulo-ancho miFigura)… es..
;; …(rectangulo-alto miFigura)…]
;; [(triangulo? miFigura) Verifica qué
;; …(triangulo-punto1 miFigura)… tipo de figura
;; …(triangulo-punto2 miFigura)… es..
;; …(triangulo-punto3 mifigura)… ]))

Procesamiento de Datos Simples


12
CONTIENE LOS POSIBLES SELECTORES

;;(define (procesando-figura miFigura)


;; (cond
;; [(circulo? miFigura)
;; …(circulo-centro miFigura)… Incluso si
;; …(circulo-radio miFigura)…] no se usan
;; [(rectangulo? miFigura) en la
;; …(rectangulo-esquina miFigura)…
definición.
;; …(rectangulo-ancho miFigura)…
;; …(rectangulo-alto miFigura)…]
;; [(triangulo? miFigura)
;; …(triangulo-punto1 miFigura)…
;; …(triangulo-punto2 miFigura)…
;; …(triangulo-punto3 mifigura)… ]))

Procesamiento de Datos Simples


13
DEFINICIÓN

(define (calcularArea miFigura)


(cond
[(circulo? miFigura)
(* 3.14 (* (circulo-radio miFigura)
(circulo-radio miFigura)))]

[(rectangulo? miFigura)
(* (rectangulo-ancho miFigura)
(rectangulo-alto miFigura))]

[(triangulo? miFigura)
(/ (* (distancia (triangulo-punto1 miFigura)
(triangulo-punto2 miFigura))
(distancia (triangulo-punto2 miFigura)
(triangulo-punto3 miFigura))) 2)]))

Procesamiento de Datos Simples


14
OTRA OPCIÓN: USANDO ABSTRACCIÓN

(define (calcularArea miFigura)


(cond
[(circulo? miFigura)
(encontrarAreaCirculo miFigura)]
[(rectangulo? miFigura)
(encontrarAreaRectangulo miFigura)]
[(triangulo? miFigura)
(encontrarAreaTriangulo miFigura)]))

Procesamiento de Datos Simples


15
CONCLUSIÓN

Expresiones condicionales
+
Estructuras.

Procesamiento de Datos Simples


16
EJERCICIO

Desarrolle las estructuras y las definiciones de


datos para una colección de animales del zoológico.

La colección incluye:

• Arañas

• Elefantes

• Monos

Procesamiento de Datos Simples


17
EJERCICIO

Arañas: sus atributos relevantes son: el número de


patas que les quedan (se asume que las arañas
pueden perder sus patas en accidentes) y el
espacio que necesitan en caso de ser
transportadas.

Elefantes: su único atributo es el espacio que


necesitan en caso de ser transportados.

Monos: sus atributos son la inteligencia y el


espacio necesitado para el transporte.
Desarrolle el bosquejo para las funciones que
consumen animales del zoológico.

Procesamiento de Datos Simples


18
EJERCICIO

Desarrolle una función Encaja. La función consume


un animal del zoológico y el volumen de la caja.
Esta determina si la caja es suficientemente larga
para transportar al animal.

Procesamiento de Datos Simples


19

También podría gustarte