1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección...

109
1 4. TIPOS DE DATOS

Transcript of 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección...

Page 1: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

1

4. TIPOS DE DATOS

Page 2: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

2

Conceptos Básicos

Un tipo de dato es:

un conjunto de objetos

una colección de operaciones

con

Tipo elemental. Valores constantes

Tipo estructurado. Compuestos

Page 3: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

3

Estructura de Tipos

La estructura de los tipos de datos en un lenguaje la determinan dos componentes

Equivalencia

Conversión

Page 4: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

4

Equivalencia

Criterio con el cual se decide que dos objetos son del mismo tipo

Equivalencia

Nominal

Estructural

Los tipos de los dos objetos tienen el mismo nombre

Los dos objetos tienen la misma estructura

C++, Pascal, Ada

C

Page 5: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

5

Ejemplo

Type E = integer; A = array[1..10] of

integer;Var x1 : integer; x2 : integer; x3 : E; v1 : array [1..10] of

integer; v2 : A; v3 : A;

Equivalencia nominal

x1 eqN x2

v2 eqN v3Equivalencia estructural

x1 eqE x2 eqE x3

v1 eqE v2 eqE v3

NOTA:

El tipo de v1 es anónimo

Page 6: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

6

Ejemplo Program Ejemplo; Type Vector1= Array[1..10] of Real; Vector2= array[1..10] of Real;Var X,Z : Vector1; Y : Vector2; Procedure Rutina(A: Vector1); : End;Begin X:= Y; Rutina(Y);End.

Error!! en eq. nominal Permitido en eq.

estructural

Page 7: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

7

Conversión

Transformar la representación interna de un r-valor

representación| interna del respectivo l-valor.

según

La conversiónCoerción (Implícita)

Casting (Explícita)

Page 8: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

8

Coerción

Conversión de dato IMPLÍCITA, que depende del contexto

Al efectuar una asignación

Al evaluar una expresiónPASCAL

Var Z,X: Real;

Y: Integer;

X:= Y;

Z:= X+3;

FORTRAN

R=I

Page 9: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

9

Coerción

PL/1 provee una conversión implícita entre TODOS los tipos elementales

• Caracter

• Real

• bit

Real

Integer

Caracter

En general, los LP proveen conversión de tipos entre tipos escalares y no entre tipos estructurados o definidos por el usuario.

Page 10: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

10

Casting

Conversión de tipo de dato EXPLÍCITA, utilizando operadores.

En C:

• (int)x

• (float)y

Page 11: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

11

Ejemplo

float p, q;int s, n;s = 5;n = 2;p = s/n; /* coerción */q = (float)s/n; /* casting */printf(%f %f \n, p, q); p: 2.0

q: 2.5

Page 12: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

12

Ejemplo

float x,y,z;int i=5,j=2,k=4;x = i/k;y = i/(float)j;z= (float)i/k;printf(%f %f \n, x,

y,z);

x=5/4 = 1 x=1.0 coercióny=5/2.0 = 5.0/2.0 y=2.5 casting coerción

z=5.0/4 = 5.0/4.0 z=1.25 castingcoerción

Page 13: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

13

Comprobación de Tipos

Acción de verificar la consistencia entre: un l-valor y un r-valor.

en cada operación a ejecutarse.

La representación de datos NO incluye información sobre el tipo de dato.

Recepción de: Cantidad apropiada de

parámetros. y del tipo apropiado.

Page 14: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

14

Comprobación de Tipos

EstáticaLP fuertemente tipados

DinámicaLP débilmente tipados

Comprobación

Page 15: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

15

Comprobación estática

Tiempo de compilación

Generación de la tabla de símbolos

Gran % de comprobación antes de la ejecución.

Ejecución más segura y eficiente.

Page 16: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

16

Comprobación dinámica

Tiempo de ejecución

No se requiere declaración ni se asume tipo.

El tipo de dato de un objeto puede variar durante la ejecución.

Su implementación sugiere utilizar una "marca" que indique su tipo. Mayor espacio de almacenamiento.

Programas más flexibles.

Mayor tiempo de ejecución. Comprobar el tipo antes de ejecutar. Código generado por el compilador.

Page 17: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

17

Comprobación dinámica

El compilador generará código para: ALMACENAR información del tipo de dato

del objeto

CONSULTAR la información alamcenada sobre los objeto durante la ejecución

COMPROBAR los valores que se van obteniendo durante la ejecución.

Page 18: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

18

Comprobación dinámica

Casi NO existen lenguajes de programación en los que TODAS las comprobaciones de tipo se realicen durante la compilación

Page 19: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

19

Ejemplo

Type rango = 1..100;Var k, n : rango; ··· n := 2*k + 1;

El valor a asignar sólo se puede comprobar en tiempo de ejecución

Page 20: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

20

Ejemplo

x:= F(x) + Z;

El compilador comprobará que:

X sea del tipo de dato del parámetro formal de F

El tipo de dato de F y de Z deben coincidir o ser compatibles

El tipo de dato de la operación coincida o sea compatible con el de X

Page 21: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

21

Tipos Estructurados de Datos

Modelos de Definición

Page 22: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

22

Producto Cartesiano

El producto cartesiano de n conjuntos C1, C2, C3... Cn, denotado en la forma

C1 x C2 x ... x Cn

es un conjunto cuyos elementos son n-túplas

(c1, c2, ... cn) con ci Ci.

Page 23: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

23

Producto Cartesiano

productos cartesianos

registros o estructuras

struct persona

{ char nombre[15];

int edad;

}

Page 24: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

24

Ejemplos

Los polígonos regulares se pueden caracterizar por:

Un número entero que representa el numero de lados, y

Un número real que representa la longitud de un lado.

Page 25: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

25

Ejemplos

Todo polígono regular así expresado (3,12.5) es un elemento del producto cartesiano

Z x R

Typepol_reg = record

num_lados: integer; longitud: real

end;

Page 26: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

26

Aplicación Finita

Es una función de un conjunto de valores pertenecientes a un dominio D sobre un conjunto de valores pertenecientes a una imagen I.

F : D I

Page 27: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

27

Aplicación Finita

Aplicación del subrango de enteros 1...5 sobre los números reales.

A[k] k : 1..5

A: array [1..5] of real;

aplicaciones finitas

arreglos

un objeto del conjunto imagen

Page 28: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

28

Estrategias de los lenguajes para ligar el dominio de la función a un subconjunto específico de valores: Estática Semidinámica Dinámica

Aplicación Finita

Page 29: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

29

El subconjunto se determina en tiempo de compilación.

Pascal :

Lista = array [1..5] of real;

Estrategia estática

C :

typedef float Lista[5];

Page 30: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

30

El subconjunto se determina en tiempo de creación del objeto.

En Algol :

[m : n] int A;

declara un arreglo semidinámico cuyo espacio en memoria se asigna de acuerdo a los valores actuales de m y n y permanece mientras A exista en el ambiente en el que fue definido.

Estrategia semidinámica

Page 31: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

31

El subconjunto puede cambiar en cualquier instante de la existencia del objeto.

En Algol :

flex [1: 0] int B;

declara un arreglo vacío, de modo que,

B:= (2, 3, 8) cambia sus límites a [1:3]

Estrategia dinámica

Page 32: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

32

Unión Discriminada

Extensión del producto cartesiano.

Permite, en cualquier instante de la ejecución del código al que pertenece, la elección de una entre diferentes estructuras alternativas :

Variante : estructura alternativa

Discriminante: Campo selector

Page 33: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

33

Unión Discriminada

Parte Variante

Parte Fija

Page 34: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

34

Ejemplo

Pascal :type

reg_var = recordCampo1 : integer;case atomo : boolean of

true : info1 : real;

false : info2 : char end;

Page 35: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

35

Conjunto Potencia

Permite definir variables cuyo valor puede ser cualquier subconjunto de un conjunto de elementos de un determinado tipo T.

El tipo de las variables, tipo base, es:

El conjunto de todos los subconjuntos de elementos de tipo T

Si T = {a, b, c}

P (T) = {, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}} #(P (T)) = 2#(T) = 23 = 8

Page 36: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

36

Modelos de Construcción

Criterios a considerar en la elección de representaciones de almacenamiento :

Selección eficiente de componentes de una estructura de datos.

Gestión global eficiente del almacenamiento para la implementación del lenguaje.

Page 37: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

37

Constituyen una técnica de representación interna de objetos de dato.

Formado por un par consistente en : Descriptor (Conjunto de atributos de la

estructura) Objeto (almacenamiento para los componentes)

Modelos de Construcción

Page 38: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

38

Tipos Elementales

Enteros

Constituyen una abstracción de una implementación Hw.

No tienen otros atributos, además de su tipo. Su implementación más común, es usar una

representación definida por el Hw, y un conjunto de aritmética de Hw y operaciones primitivas relacionales sobre enteros.

Normalmente, esta representación usa una palabra de memoria (o serie de bytes) completa para guardar un entero.

Page 39: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

39

Representación

1. Sin descriptor. (C – FORTRAN)

110111

Entero binario

Bit de signo

Sólo se guarda el valor Representación posible si el lenguaje

provee declaraciones y verificación estática de tipos.

Page 40: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

40

2. Descriptor guardado en una palabra independiente. ( Lisp)

Lo guarda en una localidad de memoria separada, con un puntero al valor entero de la “palabra completa”.

Desventaja: puede duplicar el almacenamiento requerido para un objeto de datos entero individual.

Ventaja: el valor se guarda usando la representación dada por el Hw; esto permite usar operaciones aritméticas de Hw.

Representación

Page 41: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

41

Gráficamente:

I

Descriptor

Bit de signo

Entero binario

:

Objeto

Representación

Page 42: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

42

3. Descriptor guardado en la misma palabra.

Guarda el descriptor y el valor en una localidad de memoria.

Acorta el tamaño del entero para dar espacio para el descriptor.

Se conserva el almacenamiento, pero las operaciones aritméticas del Hw no se pueden usar, sin antes:

despejar el descriptor del objeto de datos entero,

ejecutar la aritmética y reinsertar luego el descriptor.

Representación

Page 43: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

43

Gráficamente:Descript

or de tipo

Bit de signo

Entero binario

I

Ejecutar una serie de instrucciones de Hw para una operación aritmética ==> aritmética ineficiente.

Forma práctica sólo para descriptores de tipo implementados por el Hw, no son comunes actualmente.

Representación

Page 44: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

44

Representación

Cantidad de direcciones de memoria que requiere un objeto para su almacenamiento.

Word = 4 byte

T=1

Objeto

Word = 2 byte

T=1

Objeto

Objeto

:

Word = 1 byte

T=2

wordladeTamañoTipoTamaño

ObjetoTamaño)(

)(

Page 45: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

45

Signo Magnitud

0 15

Posibles representaciones para un entero

Ejemplo: Entero (2 bytes) int a;

Objeto

Descriptor

Dir. Base

enteroTipo

aNombre

Representación

Page 46: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

46

Este modelo emula la notación científica: cualquier número se puede expresar como

N = m * 2k; 0 < m < 1; k Z

Tamaño: 4 Byte; norma 754 IEEE

Para reales de doble precisión en punto flotante, se usa una palabra adicional de memoria para guardar una mantisa extendida.

Tipos Elementales

Reales (punto flotante)

Page 47: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

47

Signo exponente mantisa

0 1 8 31

Dígitos significativos del

número

S E M

Representación

Gráficamente:

Page 48: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

48

Los números se componen de 3 campos :

S un campo de signo de un bit ( 0 es positivo)

E un exponente en notación de exceso. Los valores (8 bits) varían entre 0 y 255, correspondientes a exponentes de 2 que van de –127 a 128.

M una mantisa de 23 bits. Con esto se obtiene un intervalo de 10-38 a 1038.

En formato de 64 bits, el exponente se amplía a 11 bits, para dar un intervalo de –1022 a +1023, lo que da números en el intervalo de 10-308 a 10308.

Representación

Page 49: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

49

Bit de signo de exponente Exponente

Bit de signo Mantisa

Punto raíz implícito

000001 110000000 0

Representación del real 1.5 :

Representación

Page 50: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

50

Parámetros Valor

E = 255 y M 0

Número no válido.

E = 255 y M = 0

0 < E < 255 2E-127 (1.M)

E = 0 y M 0

2-126.M

E = 0 y M = 0

0

Dados E y M, el valor de representación es :

Representación

Page 51: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

51

Ejemplos

+1 = 20 x 1 = 2127-127 x (1).0 (binario) 0 01111111 000000...

+1.5 = 20 x 1.5 = 2127-127 x (1).1 (binario)

0 01111111 100000...

-5 = -22 x 1.25 = 2129-127 x (1).01 (binario)

1 10000001 010000...

32 bits

Page 52: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

52

Ejemplo: Real (4 Byte; norma 754 IEEE)

float x;

Objeto

:

DescriptorNombre: x

Tipo RealDir Base

Representación

Page 53: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

53

Objeto

:

Word = 4B

T=1

Objeto

:

Word = 2B

T=2

Word = 1B

T=4

:

Objeto

wordladeTamañoTipoTamaño

ObjetoTamaño)(

)(

Representación

Cantidad de direcciones de memoria que requiere un objeto para su almacenamiento.

Page 54: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

54

Secuencial. La estructura de datos se guarda en un bloque contiguo de almacenamiento, que incluye el descriptor y los componentes.

Un apuntador del bloque A al bloque B, “vínculo”, se representa guardando la dirección de la primera localidad del bloque B en una localidad reservada para ese fin en el bloque A.

Vinculado. La estructura de datos se guarda en varios bloques no contiguos, con los bloques vinculados entre sí a través de apuntadores.

Tipos Estructurados

Page 55: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

55

Componente

Componente

Componente

Componente

Componente

.

.

.

Descriptor

Componente

Componente

Componente

......

Secuencial Vinculada

vínculo

Tipos Estructurados

Page 56: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

56

Secuencial:

• Se usan para estructuras de tamaño fijo.

• Ocasionalmente en estructuras homogéneas de tamaño variable.

Ejemplo : registros, vectores, strings, etc.

Ejemplo : listas enlazadas.

Tipos Estructurados

Vinculada:

• Se usan para estructuras de tamaño variable.

Page 57: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

57

• Las memorias se estructuran como una serie de bytes.

• Ausencia de operaciones de hardware para acceso a componentes.

Simular a través de software las estructuras de datos y las operaciones que trabajan con estructuras de datos.

• Tipos elementales de datos, representación de almacenamiento y operaciones son manejadas por hardware.

Tipos Estructurados

Page 58: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

58

Cantidad de direcciones de memoria que requiere un objeto para su almacenamiento.

El tamaño de un Objeto de Dato dependerá de:

Tipo de dato del objeto

Tamaño de la palabra

wordladeTamañoTipoTamaño

ObjetoTamaño)(

)(

Representación

Page 59: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

59

Los modelos de representación deben considerar fórmulas de acceso para alcanzar las componentes de tipos agregados de datos.

referencias lógicasdirecciones

relativasdirecciones absolutas

referencias físicas

Una fórmula de acceso es una función que transforma, a partir de los atributos contenidos en el descriptor:

Representación

Page 60: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

60

Tipos Estructurados de Datos

Modelos de Representación

Page 61: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

61

Producto Cartesiano

Var reg : record

a : integer; b : real

end;

Modalidad Pascal

Page 62: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

62

Producto Cartesiano

Descriptor

Objeto : a

b

Nombre reg

Constructor record

Selector 1 a

Tipo Selector 1 integer

Tamaño Selector 1 t1

Dirección relativa Selector 1 K1 = 0

Selector 2 b

Tipo Selector 2 real

Tamaño Selector 2 t2

Dirección relativa Selector 2 K2

Dirección Base

Page 63: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

63

1

1

).(i

kki tSRDir

Fórmula de acceso Dirección absoluta de memoria donde se encuentra el i-ésimo selector del registro R.

donde

es la dirección base de R, resuelta en tiempo de carga, y

tk el tamaño del k-ésimo selector.

:

Objeto

Producto Cartesiano

Page 64: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

64

Sin embargo, la expresión

se resuelve en tiempo de traducción. Luego,

con

i - 1

tkk = 1

i - 1

tkk = 1

= y = 0, constantes

Producto Cartesiano

ii kSRDir ).(

ik 1k

Page 65: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

65

Ejercicio

a) Defina las declarativas en Pascal y en C.

b) Describa una fómula de acceso a una componente del registro r

c) Determine la dirección absoluta del campo g del registro r, si la dirección base es 1000 y la word =1

int

float

char

int

boolean float

float

puntero

int

a b c d e f g h j

r:

Dada la siguiente estructura:

Page 66: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

66

a) Pascal :

type

puntero = ^real;

estructura = recorda, d, j : integer;b, f, g : real; c : char ; e :

boolean ; h :

puntero end;

a) C :

typedef real * puntero;

typedef struct

{ int a, d, j;float b, f, g;char c ;int e ;puntero h;

} estructura ;

Ejercicio

Solución

Page 67: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

67

Solución

en que,

tsel_k = techo(tamaño del tipo(sel_k) / tamaño de la palabra)

Con : a k < x

Dir(r.x)= + (tsel_1+ …+tsel_k)

b) Aplicando la fórmula, se tiene :

Dir(r.x)= + tsel_i sel_i =a

x-1

Page 68: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

68

Solución

c) Aplicando la fórmula, se tiene :

Dir(r.g) = + ta+tb+tc+td +te +tf

a b c d e f g h j

Dado que el tamaño de la palabra es 1, word=1 se tiene que :

ta= techo(2/1)=2; tb= techo(4/1)=4; tc= techo(1/1)=1;

td= techo(2/1)=2; te= techo(1/1)=1; tf= techo(4/1)=4

Luego,

Dir(r.g) = + 2 + 4 + 1 + 2 + 1 + 4 = + 14;

pero: = 1000,

Dir(r.g) = 1014

Page 69: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

69

Ejercicio

Realice implementaciones para :

1) Números complejos (a+bi)

2) Números racionales (a/b)

3) Enumeraciones

4) Booleanos

5) Caracteres

Page 70: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

70

Después de una declaración de variable

Var A : array[0 .. 4] of integer;

Los elementos del arreglo A aparecen en localidades consecutivas de memoria:

Aplicación Finita

A[0] A[1] A[2] A[3] A[4]

Page 71: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

71

Dada una representación secuencial, en la selección directa de un componente, intervienen el cálculo de :

La dirección base + El desplazamiento

A través de una fórmula de acceso.

Aplicación Finita

Localidad relativa del componente seleccionado dentro del bloque secuencial.

Localidad inicial del bloque completo.

Page 72: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

72

La fórmula de acceso, dado el nombre o subíndice del componente deseado, especifica cómo calcular el desplazamiento del componente.

Este desplazamiento se suma a la dirección base para obtener la localidad real del componente seleccionado en la memoria.

Aplicación Finita

Page 73: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

73

Observación:

Este cálculo será muy eficiente, si se usan subíndices constantes, ya que el traductor puede calcular la fórmula de acceso durante el tiempo de compilación y generar código para tener acceso directo al componente.

Aplicación Finita

Page 74: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

74

Ejemplo : Sea el arreglo en C : char A[10];

Aplicación Finita

• El almacenamiento para A, se dispone en forma secuencial como A[0], A[1], ..., A[9].

• La dirección de A[1] será la dirección base del arreglo A más 1

• En general, para arreglos de char en C, la dirección de A[I] será Dir(A[i]) = l-value(A[0])

+ I

Page 75: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

75

Aplicación Finita

Dirección base = localidad de A[0]

Desplazamiento = i * tamaño del componente

= 5 * 1 = 5Dirección base + desplazamiento

= l-valor( A[0] ) + 5

= l-valor( A[5] )

154:

155:

156:

157:

158:

159:

160:

161:

162:

163:

A[5]

A[0]

A[1]

A[2]

A[3]

A[4]

A[6]

A[7]

A[8]

A[9]

Page 76: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

76

Aplicación Finita

Dirección base = localidad de A[0]

Desplazamiento = i * tamaño del componente

= 5 * 1 = 5Dirección base + desplazamiento

= l-valor( A[0] ) + 5

= l-valor( A[5] )

154:

155:

156:

157:

158:

159:

160:

161:

162:

163:

A[5]

A[0]

A[1]

A[2]

A[3]

A[4]

A[6]

A[7]

A[8]

A[9]

Page 77: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

77

Acceso a los componentes de una estructura homogénea:

Aplicación Finita

2. Para avanzar a la próxima componente: A[i+1]

• Sumar el tamaño de la componente actual a la localidad (dirección) del mismo.

1. Para seleccionar la primera componente de la serie: A[i]

• Usar el cálculo de dirección base más el desplazamiento.

Page 78: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

78

Aplicación Finita

Dirección base

Descriptor (vector de arreglos)

LI

Representación de almacenamiento para componentes

Tipo de datos

Límite Inferior de subíndicesLímite Superior de subíndicesTipo de Datos Componentes

Tamaño del componenteA[LI]

A[LI] + 1

A[LS]

Vector

Entero

E

LS

Page 79: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

79

Aplicación Finita

Vectores : Pascal type vector = array [1..10] of real;Var V : vector;

: V[1]V[2]V[3]

V[10]

ObjetoDescriptor

Nombre VConstructor ArrayTipo Elemento RealTamaño Elem TDimensiones 1Tipo índice IntegerLímite inf (li) 1Límite sup (ls) 10Dir Base

Page 80: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

80

Fórmula de acceso El acceso al i-ésimo elemento de V, durante ejecución:

Aplicación Finita

Dir(V[i]) = + ( i – li ) * T

donde: li y T se determinan en tiempo de

traducción.

,la dirección base, en tiempo de carga

Page 81: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

81

Ejercicio

a) Declarativas en Pascal

b) Fómula de acceso a una componente i del vector V

-2 -1 0 1 2 3 4 5 6 7 8

V:

Real

c) Dirección absoluta de la componente 4 del vector V, si la dirección base es 1000 y la word =2

Page 82: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

82

Solución

a) Type vector = array[-2..8] of real;

Var V : vector;

b) Dir(V[i]) = + ( i – -2 ) * T

Dir(V[i]) = + ( i +2 ) * T

T=4/word

c) Dir(V[4]) = + ( 4 +2 ) * 2

= 1000 + 6 * 2

= 1012

T=4/2=2

Page 83: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

83

Aplicación Finita

Matrices Modalidad PascalVar

A : array [1..10,1..5] of real;A:

1 2 3 4 5 1

2

3

4

5

6

7

8

9

10

Linealizar!!

1,1 2,1 3,1 4,1 10,1 1,2 2,2 3,2 .. 10,5 ...

Por columnas:

...1,1 1,2 1,3 1,4 1,5 2,1 2,2 10,5

Por filas:

Page 84: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

84

Aplicación Finita

Matrices Modalidad Pascal Var

A : array [1..10,1..5] of real;

A[1,1]A[1,2]A[1,3]

A[10,5]

:

Objeto

A[1,4]A[1,5]A[2,1]A[2,2]A[2,3] :

Nombre AConstructor ArrayTipo Elemento RealTamaño Elem TDimensiones 2Tipo índice IntegerLímite inf . fila (if) 1Límite sup. fila (sf) 10Límite inf. col (ic) 1Límite sup. col (sc) 5Dir Base

Descriptor

Page 85: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

85

se determinan en tiempo de traducción

El acceso al elemento A[i, j], durante ejecución, se expresa mediante la fórmula:

Aplicación Finita

Dir( A[i,j] ) = + ( i – if ) * TF + ( j – ic ) * T

la dirección base, en tiempo de carga

Tamaño de la fila

(sc-ic+1)*T

Tamaño de la componente

Límite inferior de

la fila

Límite inferior de la columna

Límite superior de la

columna

Límite inferior de la columna

Page 86: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

86

Ejercicio

Para el arreglo :

A:

1 2 3 4 5 1

2

3

4

5

6

7

8

9

10

a) Realizar la declarativa en Pascal y en C. Asuma como tipo de las componentes los reales.

b) Determinar la dirección del elemento A[4,3].

Page 87: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

87

Solución

Pascal :Type

matriz = array[1 .. 5,1..10] of float;Var

A : matriz;

C :typedef float matriz[5][10];

Matriz A;

Page 88: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

88

El acceso al elemento A[i, j], durante ejecución, se expresa mediante la fórmula:

Fórmula de acceso

Dir(A[i,j]) = + ( i – if ) * TF + (j – ic) * T

Para el ejemplo anterior, se tiene :

Dir(A[4,3] )= F + (3 – 1) * T

Dir(A[4,3] )= +34

F = (sc-ic+1)*T

T = 4 / 2 2; word = 2 byte

F = (5 – 1 + 1) * 2 10

Dir(A[4,3] )= F + (3 – 1) * T

+ (3 – 1) * 2

+ 2 * 2

Tamaño de la fila

Tamaño de los elementos

Page 89: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

89

Cubo:

Fórmula de acceso

Var A : array [1..4,1..10,1..5] of real;

41

1

10

1 5

i

j

kC[k,i,j]

... Vector de matrices

Linealizar!!

Page 90: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

90

Fórmula de acceso

Por planos

1 5

j

1

10

i

k

Por filas

i

41k

1 5

j

Por columnas

1

10

i

41k

j

Var A : array [1..4,1..10,1..5] of Real;

k i j

Formas posibles de linealizar :

Page 91: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

91

Fórmula de acceso

donde: TP Tamaño del plano (sf-if+1)*(sc-ic+1)*T

TF Tamaño de la fila (sc-ic+1)*T

if, ic, T, TF y TP se determinan en tiempo de traducción.

,la dirección base, en tiempo de carga

Var A : array [1..4,1..10,1..5] of Real;

T*ic)(jT*if)(iT*ip)(kαj])i,Dir(C[k, Fp

Page 92: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

92

Ejemplo

Se tiene una estructura de datos que consiste en un arreglo, cuyos componentes son registros.

1) Realizar las declarativas correspondientes en C y Pascal.

2) Representarlos gráficamente.

3) Determinar la fórmula de acceso para una componente cualquiera.

Page 93: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

93

Unión Discriminada

Si los objetos de un conjunto A pueden ser clasificados en subconjuntos disjuntos B1, B2, ..., Bk, con k > 1

Tales objetos pueden representarse por medio de un registro variante, con la información común almacenada en campos fijos y la información de cada objeto en partes variantes opcionales.

Page 94: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

94

Unión Discriminada

Ejemplos :

a) Todos los aviones tienen un fabricante y un precio; sin embargo, una avioneta tiene un motor y algunos aviones tienen 4 motores.

b) Sea el siguiente árbol de expresión :and

not

x 0 p

Todos los nodos tienen un tipo; sin embargo, pueden tener un número diferente de hijos.

Estos nodos pueden clasificarse en nodos para variables, constantes, operadores binarios y unarioos, con 0, 2 o 1 hijo respectivamente.

Page 95: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

95

Unión Discriminada

Se representa el árbol anterior :

Type

clase = (unario, binario);

nodo = record

c1 :T1;

c2 : T2;

case k : clase of

unario : (hijo : T3);

binario : (hijoizq, hijoder : T4);

end

end;

Parte variant

e

Campo discriminante

Page 96: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

96

Unión Discriminada

Localización en memoria:

hijoder

c1 c2 k hijo

c1 c2 k hijoizq

Parte fija

Campo

marcador

Parte variant

e

hijoder

Page 97: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

97

Var

Z : recorda : integer;case b : boolean of

True: (c : integer); False: (d : integer; e : real);

end;

Unión Discriminada

Consta de:

Un descriptor y

Del espacio necesario para sus componentes, considerando el tamaño de la mayor variante definida.

Variante 1:

a b c

T

Variante 2:

a b d eF

Page 98: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

98

Unión Discriminada

True False

Tabla de selección de variantes

Descriptor

Selector 3 cTipo S3 IntegerTamaño S3 T3Dir relativa S3 K3

Selector 3 dTipo S3 IntegerTamaño S3 T3Dir relativa S3 K3Selector 4 eTipo S4 IntegerTamaño S4 T4Dir relativa S4 K4

Nombre ZConstructor Unión

Selector 1 aTipo S1 IntegerTamaño S1 T1Dir relativa S1 K1=0Selector 2 bTipo S2 IntegerTamaño S2 T2Dir relativa S2 K2Dir tabla de selección

Dir Base

Objeto

Page 99: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

99

Fórmula de accesoEl acceso al i-ésimo selector, durante la ejecución, se expresa mediante la fórmula:

donde Sj es el selector discriminante (tag

field)

1i

1kki T entonces j)(i Si)Dir(Z.S

1-i

1jkkj

j

1kk TTrue)(Z.S SiT no Si

1-i

1jkkT no Si

Page 100: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

100

Fórmula de accesoO bien :

1i

1kki Tj)Ord(i)Dir(Z.S

1-i

1jkkj

j

1kk T*True)Ord(Z.ST *j)Ord(i

1-i

1jkkj T*False)Ord(Z.S

Ord(false) = 0

Ord(true) = 1

selector discriminante

Page 101: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

101

Ejercicio

Sea la siguiente multilista:

1) Realizar las declarativas correspondientes en Pascal y C.

2) Representar gráficamente.

3) Definir descriptor y objeto correspondiente.

4) Determinar la dirección real del selector 3.

L

1 4

32

átomo next

link

info

Page 102: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

102

Solución

Type base = integer;Enlace=^Nodo;Nodo = Record

link :Enlace;case atomo : boolean of

true : (info : base;)false : (next : Enlace;)

end;Var L : Enlace;

Page 103: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

103

Solución

typedef int base;

typedef struct Nodo

{ Nodo *link;

int atomo;

union

{base info;

Nodo *next;

}X;

} *Enlace;

Enlace L;

Selector 1

Selector2

Selector 3

link atomo X

Page 104: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

104

Solución

Gráficamente, se tiene un arreglo de nodos :

No ocupado

Page 105: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

105

Solución

DescriptorNombre L

Constructor Union

Selector 1 link

Tamaño 1 T1

Dirección relativa 1 K1 = 0

Selector 2 atomo

Tamaño 2 T2

Dirección relativa 2 K2

Dir.Tabla de selección

Dirección Base

Tabla de selección

ObjetoTrue False

infoSelector 3

T2Tamaño 3

K2Dirección relativa 3

Selector 3 next

Tamaño 3 T3

Dirección relativa 3

K3

Page 106: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

106

Solución

Fórmula de Acceso al campo X.info: Selector ( Si ) = 3

Discriminante ( Sj ) = 2

i = 3; j = 2Dir(Z.x) = + Ord( 3 2 )* ti

+ Ord( 3 > 2)* (T1 + T2 )

+ Ord(Z.S2 = true) * (T3 )

+ Ord(Z.S2 = false) * (T3 )

Dir(Z.S3) = + Ord( true)* (T1 + T2) + Ord( true)* (T3 )

= + 1* (T1 + T2) + 1* T3

Page 107: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

107

Conjunto Potencia

La representación interna de un conjunto potencia está restringida a los conjuntos definidos por extensión.Se sustenta en la estructura conocida como:

string de bits

Page 108: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

108

Conjunto Potencia

donde:

Los n bits en cero

presencia del i-ésimo valor del tipo T en C,

el i-ésimo bit en 1

C =

C es una variable de tipo conjunto potencia#(T) = n,

Si:

un string de n bits

C se representa

Page 109: 1 4. TIPOS DE DATOS. 2 Conceptos Básicos Un tipo de dato es: un conjunto de objetos una colección de operaciones con Tipo elemental. Valores constantes.

109

Un string de bits coincide conceptualmente con la estructura

Conjunto Potencia

packed array of boolean

Ejemplo: Sea T = {a, b, c}

y las variables:

P = {a, c}

Q = {b, c}

R = PQ = {c}

0 1 1

0 0 1

1 0 1

Representación