4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra...

114
4-1 Tema 4 Tema 4 Tipos de Datos y Objetos Tipos de Datos y Objetos Alumnos: Alumnos: Mónica Patricia Padilla Mónica Patricia Padilla Ibarra. Ibarra. Honorato Saavedra Honorato Saavedra Hernández. Hernández. Carlos Eugenio Ojeda Carlos Eugenio Ojeda Nava. Nava.

Transcript of 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra...

Page 1: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-1

Tema 4Tema 4

Tipos de Datos y ObjetosTipos de Datos y Objetos

Alumnos:Alumnos: Mónica Patricia Padilla Ibarra.Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández.Honorato Saavedra Hernández.

Carlos Eugenio Ojeda Nava.Carlos Eugenio Ojeda Nava.

Page 2: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-2

ObjetivosObjetivos

• PropiedadesPropiedades

• Tipos de datos elementalesTipos de datos elementales

• Tipos de datos estructuradosTipos de datos estructurados

Page 3: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-3

Tipos y Objetos: PropiedadesTipos y Objetos: Propiedades

• Propiedades:Propiedades:

– Almacenamiento de datos en la computadora Almacenamiento de datos en la computadora actual:actual:

• Memoria, registros y almacenamientos Memoria, registros y almacenamientos externos, tienen una estructura sencilla externos, tienen una estructura sencilla agrupados en palabras o bytes. agrupados en palabras o bytes.

– Almacenamiento en una computadora virtual:Almacenamiento en una computadora virtual:

• Organización más compleja, con arreglos, Organización más compleja, con arreglos, stacks, números, caracteres, cadenas, y stacks, números, caracteres, cadenas, y otras estructuras de datos que existen otras estructuras de datos que existen durante la ejecución del programa. durante la ejecución del programa.

• Por tal razón es necesario emplear el término objeto Por tal razón es necesario emplear el término objeto de datos para referirnos a la corrida en tiempo de de datos para referirnos a la corrida en tiempo de ejecucíon de un grupo o más estructuras de datos ejecucíon de un grupo o más estructuras de datos en una computadora virtual.en una computadora virtual.

Page 4: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-4

Tipos y Objetos: PropiedadesTipos y Objetos: Propiedades

• Un objeto de datos representa a un contenedor de Un objeto de datos representa a un contenedor de valores de datos. Uno objeto de datos se caracteriza valores de datos. Uno objeto de datos se caracteriza por un set (o conjunto) de atributos. por un set (o conjunto) de atributos. El más El más importante de ellos es el tipo de datoimportante de ellos es el tipo de dato..

• El tipo de datos es una clase de objeto de datos, El tipo de datos es una clase de objeto de datos, junto con un set de operaciones para su creación y junto con un set de operaciones para su creación y manipulación. Los elementos básicos para manipulación. Los elementos básicos para especificar de un tipo de dato son:especificar de un tipo de dato son:

1.- Los atributos que distingue al tipo del objeto 1.- Los atributos que distingue al tipo del objeto de datosde datos

2.- El valor que puede tener el objeto de datos, y2.- El valor que puede tener el objeto de datos, y

3.- Las operaciones que define la posible 3.- Las operaciones que define la posible manipulación del objeto de datos.manipulación del objeto de datos.

Page 5: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-5

Tipos y Objetos: PropiedadesTipos y Objetos: Propiedades

Un objeto de datos de variable simple con el valor de 17. Un objeto de datos de variable simple con el valor de 17.

Page 6: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-6

Tipos y Objetos: PropiedadesTipos y Objetos: Propiedades

• En los siguientes subtemas se analizarán con más En los siguientes subtemas se analizarán con más detalles estos aspectos. A continuación mostramos detalles estos aspectos. A continuación mostramos un par de ejemplos para mostrar lo antes expuesto:un par de ejemplos para mostrar lo antes expuesto:

#include <stdio.h>#include <stdio.h>int radio, area;int radio, area;main()main(){{printf(“Teclea el radio :”);printf(“Teclea el radio :”);scan(“%d”,&radio);scan(“%d”,&radio);area=3.1416*radio*radio;area=3.1416*radio*radio;printf(“\n\nArea = %d, area);printf(“\n\nArea = %d, area);return 0;return 0;}}End Sub End Sub

Page 7: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-7

Tipos y Objetos: PropiedadesTipos y Objetos: Propiedades

• Cabe señalar que Java, por ser descendiente de las Cabe señalar que Java, por ser descendiente de las premisas de C y C++ en lo referente a estos temas premisas de C y C++ en lo referente a estos temas de exposición. Decidimos mostrar un ejemplo de exposición. Decidimos mostrar un ejemplo pequeño en Visual Basic:pequeño en Visual Basic:

Private Sub Command1_Click()Private Sub Command1_Click()Dim Primero, SegundoDim Primero, Segundo ´Declaración de ´Declaración de variablesvariablesPrimero=Text1.TextPrimero=Text1.TextSegundo=Text2.TextSegundo=Text2.Text

EndSubEndSub

Page 8: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-8

Tipos Elementales De DatosTipos Elementales De Datos

• Tipos de datos numéricosTipos de datos numéricos

• EnumeracionesEnumeraciones

• BooleanosBooleanos

• CaracteresCaracteres

• InternacionalizaciónInternacionalización

Page 9: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-9

Tipos De Datos NuméricosTipos De Datos Numéricos

• EnterosEnteros

• SubintervaloSubintervalo

• Números reales de punto flotanteNúmeros reales de punto flotante

• Números reales de punto fijoNúmeros reales de punto fijo

• Otros tipos de datos numéricosOtros tipos de datos numéricos

Page 10: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-10

EnterosEnteros

• EspecificaciónEspecificación

– Operaciones aritméticasOperaciones aritméticas

BinOp : entero x entero BinOp : entero x entero —> —> enteroentero

UnaryOp : entero UnaryOp : entero —> entero—> entero

– Operaciones relacionalesOperaciones relacionales

RelOp : entero x entero RelOp : entero x entero —> booleano—> booleano

– AsignaciónAsignación

entero x entero —> vacíoentero x entero —> vacío

entero x entero —> enteroentero x entero —> entero

Page 11: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-11

EnterosEnteros

• ImplementaciónImplementación

Page 12: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-12

EjemplosEjemplos

• AdaAdaNext : Integer;Next : Integer;

One, Two : Integer :=1;One, Two : Integer :=1;

Two := One + 1;Two := One + 1;

• ALGOLALGOLinteger x,y,z;integer x,y,z;

x := 1;x := 1;

• FORTRANFORTRANINTEGER H, I, JINTEGER H, I, J

H = 1H = 1

Page 13: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-13

EjemplosEjemplos

• COBOLCOBOL77 X PIC 99999.77 X PIC 99999.

77 Y PIC S999.77 Y PIC S999.

ADD 1 TO X.ADD 1 TO X.

ADD 1,X GIVING Y.ADD 1,X GIVING Y.

SUBTRACT 1 FROM Y.SUBTRACT 1 FROM Y.

MULTIPLY 3 BY H GIVING Y.MULTIPLY 3 BY H GIVING Y.

• PL/1PL/1DECLARE X FIXED BINARY;DECLARE X FIXED BINARY;

Page 14: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-14

EjemplosEjemplos

• CCint x,y;int x,y;

X = 0;X = 0;

y = -1;y = -1;

Page 15: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-15

SubintervaloSubintervalo

• EspecificaciónEspecificación

– Serie de valores enteros dentro de cierto Serie de valores enteros dentro de cierto intervalo restringidointervalo restringido

– Se puede designar como un subtipo del tipo Se puede designar como un subtipo del tipo base enterobase entero

• ImplementaciónImplementación

– Requerimientos de almacenamiento más Requerimientos de almacenamiento más reducidosreducidos

– Mejor verificación de tiposMejor verificación de tipos

Page 16: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-16

EjemplosEjemplos

• AdaAdaAmount : Integer RANGE 0 .. 100;Amount : Integer RANGE 0 .. 100;

Type Year_type IS RANGE 1901 .. 2099;Type Year_type IS RANGE 1901 .. 2099;

Current_Year, Year_Of_Birth : Year_Type;Current_Year, Year_Of_Birth : Year_Type;

Page 17: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-17

Números Reales de Punto FlotanteNúmeros Reales de Punto Flotante

• EspecificaciónEspecificación

– Misma aritmética relacional y operadores de Misma aritmética relacional y operadores de asignación que los enterosasignación que los enteros

– Algunas veces las operaciones booleanas están Algunas veces las operaciones booleanas están restringidasrestringidas

Page 18: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-18

Números Reales de Punto FlotanteNúmeros Reales de Punto Flotante

• ImplementaciónImplementación

Page 19: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-19

Números Reales de Punto FlotanteNúmeros Reales de Punto Flotante

• Ejemplo de formato de IEEEEjemplo de formato de IEEE

– La norma 754 de IEEE especifica tanto una La norma 754 de IEEE especifica tanto una norma de 32 bits como una de 64 bits para norma de 32 bits como una de 64 bits para números de punto flotante.números de punto flotante.

– Los números se componen de tres camposLos números se componen de tres campos

• S : un campo de signo de un bit. 0 es S : un campo de signo de un bit. 0 es positivopositivo

• E : un exponente en notación exceso 127E : un exponente en notación exceso 127

• M : una mantisa de 23 bitsM : una mantisa de 23 bits

Page 20: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-20

Números Reales de Punto FlotanteNúmeros Reales de Punto Flotante

+1 = 2^0 x 1 = 2^(127-127) x (1).0 (binario)+1 = 2^0 x 1 = 2^(127-127) x (1).0 (binario)

0 01111111 000000 ...0 01111111 000000 ...

+1.5 = 2^0 x 1.5 = 2^(127-127) x (1).1 (binario)+1.5 = 2^0 x 1.5 = 2^(127-127) x (1).1 (binario)

0 01111111 100000 ...0 01111111 100000 ...

-5 = -2^2 x 1.25 = 2^(129-127) x (1).01 (binario)-5 = -2^2 x 1.25 = 2^(129-127) x (1).01 (binario)

1 10000001 010000 ...1 10000001 010000 ...

Page 21: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-21

EjemplosEjemplos

• AdaAdaTYPE Distance_Type IS DIGITS 6 RANGE 0.0 .. 10.0;TYPE Distance_Type IS DIGITS 6 RANGE 0.0 .. 10.0;

x,y : Distance_Type;x,y : Distance_Type;

• ALGOLALGOLreal x,y,z;real x,y,z;

x := 0.5;x := 0.5;

y := -1;y := -1;

z := -0.2555z := -0.25551010-2-2

Page 22: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-22

EjemplosEjemplos

• FORTRANFORTRANREAL H, I, JREAL H, I, J

DOUBLE PRECISION K, L, MDOUBLE PRECISION K, L, M

H = -.551E-2H = -.551E-2

L = 22.33D4L = 22.33D4

• PL/1PL/1DECLARE X REAL FLOAT DECIMAL (6);DECLARE X REAL FLOAT DECIMAL (6);

• CCfloat x,y;float x,y;

x = 5.43;x = 5.43;

y = -435435e34;y = -435435e34;

Page 23: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-23

Números Reales de Punto FijoNúmeros Reales de Punto Fijo

• EspecificaciónEspecificación

• ImplementaciónImplementación

Page 24: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-24

EjemplosEjemplos

• AdaAda

TYPE Average_Type IS DELTA 0.001 RANGE 0.0 .. 1.0;TYPE Average_Type IS DELTA 0.001 RANGE 0.0 .. 1.0;

Category : Average_Type DELTA 0.100;Category : Average_Type DELTA 0.100;

• COBOLCOBOL77 X PIC 9999V99.77 X PIC 9999V99.

77 Y PIC S999V9.77 Y PIC S999V9.

• PL/1PL/1DECLARE X REAL FIXED DECIMAL (7,2);DECLARE X REAL FIXED DECIMAL (7,2);

Page 25: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-25

Otros Tipos De Datos NuméricosOtros Tipos De Datos Numéricos

• Números ComplejosNúmeros Complejos

Un número complejo se compone de un par de Un número complejo se compone de un par de números que representan las partes real e números que representan las partes real e imaginaria del númeroimaginaria del número

• Números RacionalesNúmeros Racionales

Un número racional es el cociente de dos enterosUn número racional es el cociente de dos enteros

Page 26: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-26

Otros Tipos De Datos NuméricosOtros Tipos De Datos Numéricos

Page 27: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-27

EjemplosEjemplos

• FORTRANFORTRANCOMPLEX H, I, JCOMPLEX H, I, J

H = (3.2,1.5E3)H = (3.2,1.5E3)

• PL/1PL/1DECLARE X COMPLEX;DECLARE X COMPLEX;

Page 28: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-28

EnumeracionesEnumeraciones

• EspecificaciónEspecificación

Una enumeración es una lista de valores distintosUna enumeración es una lista de valores distintos

• ImplementaciónImplementación

Page 29: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-29

EjemplosEjemplos

• AdaAdaTYPE Suit_Type IS (Clubs,Diamonds,Hearts,Spades);TYPE Suit_Type IS (Clubs,Diamonds,Hearts,Spades);

Longest_Suit : Suit_Type := Diamonds;Longest_Suit : Suit_Type := Diamonds;

TYPE Animales IS (Perro,Gato,Raton);TYPE Animales IS (Perro,Gato,Raton);

TYPE Herramientas IS (Llave,Gato,Martillo);TYPE Herramientas IS (Llave,Gato,Martillo);

Variable1 : Animales;Variable1 : Animales;

Variable1 := Animales’(Gato);Variable1 := Animales’(Gato);

type Day is (Mon, Tue, Wed, Thu, Fri, Sat, Sun); type Day is (Mon, Tue, Wed, Thu, Fri, Sat, Sun); type Gender is (M, F);type Gender is (M, F);

type Level is (Low, Medium, Urgent);type Level is (Low, Medium, Urgent);

type Color is (White, Red, Yellow, Green, Blue, type Color is (White, Red, Yellow, Green, Blue, Brown, Black);Brown, Black);

type Light is (Red, Amber, Green); type Light is (Red, Amber, Green); -- Red and Green -- Red and Green are overloadedare overloaded

Page 30: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-30

EjemplosEjemplos

type Hexa is ('A', 'B', 'C', 'D', 'E', 'F');type Hexa is ('A', 'B', 'C', 'D', 'E', 'F');

type Mixed is ('A', 'B', '*', B, None, '?', '%');type Mixed is ('A', 'B', '*', B, None, '?', '%');

subtype Weekday is Day range Mon .. Fri;subtype Weekday is Day range Mon .. Fri;

subtype Rainbow is Color range Red .. Blue; subtype Rainbow is Color range Red .. Blue; -- the -- the Color Red, not the LightColor Red, not the Light

• CCenum Color {rojo, verde, azul, negro};enum Color {rojo, verde, azul, negro};

enum Poligono {trienum Poligono {triaangulo = 3, cuadrado = 4, pentngulo = 3, cuadrado = 4, pentaagono =5}; gono =5};

Color c=verde; Color c=verde;

Page 31: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-31

BooleanosBooleanos

• EspecificaciónEspecificación

El tipo booleano de datos consiste en objetos de El tipo booleano de datos consiste en objetos de datos que tienen uno de dos valores, cierto o falsodatos que tienen uno de dos valores, cierto o falso

– OperacionesOperaciones

y : booleano x booleano y : booleano x booleano —>—> booleano booleano

o : booleano x booleano o : booleano x booleano —>—> booleano booleano

no : booleano no : booleano —>—> booleano booleano

• ImplementaciónImplementación

Page 32: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-32

EjemplosEjemplos

• FortranFortranLOGICAL K, L, MLOGICAL K, L, M

M = .TRUE.M = .TRUE.

PAGEND = .FALSE.PAGEND = .FALSE.

PRNTOK = LINE .LE. 132 .AND. .NOT. PAGENDPRNTOK = LINE .LE. 132 .AND. .NOT. PAGEND

ABIG = A.GT.B .AND. A.GT.C .AND. A.GT.DABIG = A.GT.B .AND. A.GT.C .AND. A.GT.D

• AdaAdaTYPE Boolean IS (False, True); --predefinidaTYPE Boolean IS (False, True); --predefinida

x : Boolean;x : Boolean;

• ALGOLALGOLBoolean x,y;Boolean x,y;

x := true;x := true;

y := false;y := false;

Page 33: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-33

EjemplosEjemplos

• CC#define TRUE 0#define TRUE 0

int x;int x;

x = TRUE;x = TRUE;

• SchemeScheme(not #t) (not #t) => #f => #f

(not 3) (not 3) => #f => #f

(not (list 3)) (not (list 3)) => #f => #f

(not #f) (not #f) => #t => #t

Page 34: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-34

CaracteresCaracteres

• EspecificaciónEspecificación

Un tipo de datos de caracter proporciona objetos de Un tipo de datos de caracter proporciona objetos de datos que tienen un solo caracter como su valordatos que tienen un solo caracter como su valor

• ImplementaciónImplementación

Page 35: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-35

EjemplosEjemplos

• AdaAdaTYPE Character_Type ISTYPE Character_Type IS

(‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’);(‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’);

micaracter : Character_Type;micaracter : Character_Type;

type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M'); type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M');

• COBOLCOBOL77 X PIC AAAAAAAAAA.77 X PIC AAAAAAAAAA.

77 Y PIC A(15).77 Y PIC A(15).

77 Z PIC XXXXXXXX.77 Z PIC XXXXXXXX.

• PL/1PL/1DECLARE X CHARACTER;DECLARE X CHARACTER;

• CCchar x,y[20];char x,y[20];

Page 36: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-36

InternacionalizaciónInternacionalización

• Órdenes de clasificaciónÓrdenes de clasificación

• Formatos de fecha específicos del paísFormatos de fecha específicos del país

• Formatos de hora específicos del paísFormatos de hora específicos del país

• Husos horariosHusos horarios

• Sistemas ideográficosSistemas ideográficos

• MonedaMoneda

Page 37: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-37

Otros EjemplosOtros Ejemplos

• Complejos en C++Complejos en C++class Cclass Complejoomplejo{{

intint realreal;;

int imaginariaint imaginaria;;

public:public:

void set(int void set(int xx, int , int yy){){

realreal = = xx; ; imaginariaimaginaria = = yy;;

}}

CComplejoomplejo operator+(C operator+(Complejoomplejo a); a);

};};

CComplejoomplejo operator+(C operator+(Complejoomplejo a){ a){

CComplejoomplejo temp; temp;

temp.temp.realreal = = realreal + a. + a.realreal;;

temp.temp.imaginariaimaginaria = = imaginariaimaginaria + a. + a.imaginariaimaginaria;;

return temp;return temp;

}}

Page 38: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-38

Otros EjemplosOtros Ejemplos

main(){main(){

CComplejoomplejo i,j,ki,j,k;;

ii.set(2, 4, 5);.set(2, 4, 5);

jj.set(5, 6, 8);.set(5, 6, 8);

kk = = ii + + jj;;

}}

Page 39: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-39

Tipos EstructuradosTipos Estructurados

• Son objetos de datos construido como un agregado Son objetos de datos construido como un agregado de otros objetos de datos, llamados de otros objetos de datos, llamados ComponentesComponentes..

• Sus componentes pueden ser:Sus componentes pueden ser:

– Elementales.Elementales.

– Estructuras de datos.Estructuras de datos.

Page 40: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-40

Implicaciones de Tipos de Estructuras Implicaciones de Tipos de Estructuras de Datosde Datos

• Especificación de tipos.Especificación de tipos.

• Implantación de tipos.Implantación de tipos.

• Declaración y verificación de tipos.Declaración y verificación de tipos.

• Especificación e implantación de información Especificación e implantación de información estructural.estructural.

• Gestiones de almacenamiento.Gestiones de almacenamiento.

Page 41: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-41

Atributos para la Especificación de Atributos para la Especificación de Tipos de Estructuras de DatosTipos de Estructuras de Datos

Los atributos principales son:Los atributos principales son:

• Número de componentes.Número de componentes.

– Estructuras de tamaño fijo.Estructuras de tamaño fijo.

– Estructuras de tamaño variable.Estructuras de tamaño variable.

• Tipo de cada componente.Tipo de cada componente.

– Estructuras homogéneas.Estructuras homogéneas.

– Estructuras heterogéneas.Estructuras heterogéneas.

• Nombres que se deben usar para seleccionar Nombres que se deben usar para seleccionar componentes.componentes.

• Número máximo de componentes.Número máximo de componentes.

• Organización de los componentes.Organización de los componentes.

Page 42: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-42

Operaciones sobre Estructuras de Operaciones sobre Estructuras de DatosDatos

• Operaciones de selección de componentes.Operaciones de selección de componentes.

– Selección directa.Selección directa.

– Selección secuencial.Selección secuencial.

• Operaciones con estructuras de datos completas.Operaciones con estructuras de datos completas.

• Inserción y eliminación de componentes.Inserción y eliminación de componentes.

• Creación y destrucción de estructuras de datos.Creación y destrucción de estructuras de datos.

Nota:Nota:

La operación de selección de (o el acceso a) unLa operación de selección de (o el acceso a) uncomponente requiere de dos operaciones:componente requiere de dos operaciones:

– Refinamiento.Refinamiento.

– Selección.Selección.

Page 43: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-43

Implantación de Tipos de Estructuras Implantación de Tipos de Estructuras de Datosde Datos

• Consideraciones de los tipos elementales.Consideraciones de los tipos elementales.

• Representación de almacenamiento:Representación de almacenamiento:

– Secuencial.Secuencial.

– Vinculada.Vinculada.

• Implantación de operaciones sobre estructuras de Implantación de operaciones sobre estructuras de datos:datos:

– Representación secuencial.Representación secuencial.

– Representación vinculada.Representación vinculada.

• Gestiones de almacenamiento:Gestiones de almacenamiento:

– Basura.Basura.

– Referencias desactivadas.Referencias desactivadas.

Page 44: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-44

Declaración y Verificación de Tipos de Declaración y Verificación de Tipos de Estructuras de DatosEstructuras de Datos

• Tomar en cuenta las consideraciones de los tipos Tomar en cuenta las consideraciones de los tipos elementales.elementales.

• Para la verificación de tipos se deben considerar las Para la verificación de tipos se deben considerar las operaciones de selección de componentes.operaciones de selección de componentes.

• Existen dos problemas principales:Existen dos problemas principales:

– Existencia de un componente seleccionado.Existencia de un componente seleccionado.

– Tipo de un componente seleccionado.Tipo de un componente seleccionado.

Page 45: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-45

Vectores y ArreglosVectores y Arreglos

• VectorVector

– Es una estructura de datos integrada por un Es una estructura de datos integrada por un número fijo de componentes del mismo tipo número fijo de componentes del mismo tipo organizados como una serie lineal simple.organizados como una serie lineal simple.

– Es un arreglo unidimensional o arreglo lineal.Es un arreglo unidimensional o arreglo lineal.

• ArregloArreglo

– Un arreglo bidimensional es una matriz Un arreglo bidimensional es una matriz compuesta de filas y columnas.compuesta de filas y columnas.

– Un arreglo tridimensional se compone de Un arreglo tridimensional se compone de planos de filas y columnas.planos de filas y columnas.

– Un arreglo multidimensional, se construye a Un arreglo multidimensional, se construye a partir de arreglos de dimensiones menores.partir de arreglos de dimensiones menores.

Page 46: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-46

Atributos de un VectorAtributos de un Vector

• Número de componentes.Número de componentes.

– Implícito en un rango de intervalos de Implícito en un rango de intervalos de subíndices.subíndices.

– Se determina para cada dimensión.Se determina para cada dimensión.

• Tipo de datos de cada componente.Tipo de datos de cada componente.

– Un solo tipo de dato para todos los Un solo tipo de dato para todos los componentes.componentes.

• Subíndice de selección de cada componente.Subíndice de selección de cada componente.

– Generalmente se especifica como un intervalo Generalmente se especifica como un intervalo de enteros, o una enumeración.de enteros, o una enumeración.

– Identifican la posición de cada componente.Identifican la posición de cada componente.

Page 47: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-47

Operaciones Sobre VectoresOperaciones Sobre Vectores

• Operaciones permitidas:Operaciones permitidas:

– Seleccionar un componente.Seleccionar un componente.

– Crear y destruir vectores.Crear y destruir vectores.

– Asignación de componentes a un vector.Asignación de componentes a un vector.

– Operaciones aritméticas sobre parejas de Operaciones aritméticas sobre parejas de vectores.vectores.

• Suma y Resta de vectores.Suma y Resta de vectores.

• Operaciones no permitidas:Operaciones no permitidas:

– Inserción y eliminación de componentes.Inserción y eliminación de componentes.

Page 48: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-48

Implantación de VectoresImplantación de Vectores

• Representación de Representación de almacenamiento almacenamiento secuencial.secuencial.

• Representación de Representación de almacenamiento almacenamiento empacado.empacado.

• Representación de Representación de almacenamiento no almacenamiento no empacado.empacado.

• Operaciones con Operaciones con vectores completos.vectores completos.

VectorVector

LiLi

LsLs

EnteroEntero

EE

DescriptorDescriptor(vector de (vector de

arreglos)arreglos)

Representación Representación dede

almacenamiento almacenamiento para para

componentes.componentes.

Tipo de Dato Tipo de Dato (del descriptor)(del descriptor)

Límite Inferior Límite Inferior de subíndicesde subíndices

Límite Superior Límite Superior de subíndicesde subíndices

Tipos de Datos Tipos de Datos (del componente)(del componente)

Tamaño del Tamaño del ComponenteComponente

A[Li ]A[Li ]

A[Li+1 ]A[Li+1 ]

A[Ls ]A[Ls ]

DirecciónDirección base delbase del vectorvector

Page 49: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-49

Representación de Almacenamiento Representación de Almacenamiento Secuencial de VectoresSecuencial de Vectores

• Representación de almacenamiento secuencial.Representación de almacenamiento secuencial.

– Forma más apropiada.Forma más apropiada.

– Los componentes se guardan en forma Los componentes se guardan en forma secuencial.secuencial.

– Se incluye un descriptor para guardar los Se incluye un descriptor para guardar los atributos necesarios.atributos necesarios.

Page 50: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-50

Fórmula de Acceso a Componentes de Fórmula de Acceso a Componentes de VectoresVectores

• Para acceder a los componentes se utiliza la Para acceder a los componentes se utiliza la siguiente fórmula:siguiente fórmula:

Valor_i ( A [ i ] ) = Valor_i ( A [ i ] ) = + ( i – Li) * E + ( i – Li) * E

= (= ( - Li * E ) + ( i * E ) - Li * E ) + ( i * E )

= k + ( i * E )= k + ( i * E )

Donde:Donde:

A A es el nombre del arreglo.es el nombre del arreglo.

i i es el subíndice del componente aes el subíndice del componente aacceder.acceder.

es la dirección base del arreglo.es la dirección base del arreglo.

E E es el tamaño de cada componente.es el tamaño de cada componente.

LiLi es el límite inferior del intervalo dees el límite inferior del intervalo desubíndices.subíndices.

Page 51: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-51

El Origen Virtual (OV) de los VectoresEl Origen Virtual (OV) de los Vectores

• Es la dirección que ocuparía el componente de la Es la dirección que ocuparía el componente de la posición cero de un arreglo.posición cero de un arreglo.

• Se obtiene al evaluar la formula de acceso para el Se obtiene al evaluar la formula de acceso para el componente con subíndice 0:componente con subíndice 0:

Valor_i ( A [ 0 ] ) = (Valor_i ( A [ 0 ] ) = ( - Li * E ) + ( 0 * E ) - Li * E ) + ( 0 * E )

= k= k

= OV= OV

Nota:Nota: El componente de la posición cero no puede El componente de la posición cero no puede formar parte del arreglo.formar parte del arreglo.

• Si el OV se guarda en el descriptor, entonces el Si el OV se guarda en el descriptor, entonces el arreglo no necesita ser contiguo al descriptor.arreglo no necesita ser contiguo al descriptor.

Page 52: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-52

Representación de Almacenamiento Representación de Almacenamiento Empacado y No EmpacadoEmpacado y No Empacado

• Representación de almacenamiento empacado.Representación de almacenamiento empacado.

– Sus componentes están empacados en el Sus componentes están empacados en el almacenamiento de manera secuencial.almacenamiento de manera secuencial.

– Permite un ahorro significativo de memoria.Permite un ahorro significativo de memoria.

– El acceso a sus componentes es más costoso.El acceso a sus componentes es más costoso.

– No es común este tipo de representación.No es común este tipo de representación.

• Representación de almacenamiento no empacado.Representación de almacenamiento no empacado.

– Cada componente se guarda comenzando en el Cada componente se guarda comenzando en el límite de una unidad direccionable de límite de una unidad direccionable de almacenamiento.almacenamiento.

– Se incrementa el costo de almacenamiento, Se incrementa el costo de almacenamiento, debido a que puede existir “debido a que puede existir “relleno”relleno”..

– El acceso a sus componentes es eficiente.El acceso a sus componentes es eficiente.

Page 53: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-53

Operaciones de Vectores CompletosOperaciones de Vectores Completos

• Se implantan fácilmente usando la representación Se implantan fácilmente usando la representación secuencial de almacenamiento.secuencial de almacenamiento.

• La asignación:La asignación:

– Se implanta copiando el contenido del bloque Se implanta copiando el contenido del bloque de almacenamiento.de almacenamiento.

– No es necesario el descriptor.No es necesario el descriptor.

• Las operaciones aritméticas o especializadas:Las operaciones aritméticas o especializadas:

– Se implementan a manera de iteraciones Se implementan a manera de iteraciones procesando los elementos de los vectores en procesando los elementos de los vectores en serie.serie.

• Se puede requerir de almacenamiento temporal Se puede requerir de almacenamiento temporal incrementándose la complejidad y el costo de la incrementándose la complejidad y el costo de la ejecución.ejecución.

Page 54: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-54

Implantación de Arreglos Implantación de Arreglos MultidimensionalesMultidimensionales

• Una Matriz, se implanta considerándola un vector de Una Matriz, se implanta considerándola un vector de vectores.vectores.

• Un arreglo tridimensional se implanta como un Un arreglo tridimensional se implanta como un vector cuyos componentes son vectores de vector cuyos componentes son vectores de vectores.vectores.

• Un arreglo n_dimensional se implanta en base a Un arreglo n_dimensional se implanta en base a arreglos de dimensiones menores.arreglos de dimensiones menores.

• Para implantar un arreglo n_dimensional se debe Para implantar un arreglo n_dimensional se debe considerar la forma en que se desea hacer: considerar la forma en que se desea hacer:

– Orden por filas, como un arreglo de Orden por filas, como un arreglo de sub_vectores.sub_vectores.

– Orden por columnas, como una fila de Orden por columnas, como una fila de columnas.columnas.

Page 55: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-55

Representación de Almacenamiento Representación de Almacenamiento de un Arreglo Bidimensionalde un Arreglo Bidimensional

A [ IA [ I11:S:S11, I, I22:S:S22 ] ]

MM22 = E = E

MM11 = ( S = ( S22 – I – I22 + 1 ) * M + 1 ) * M22

OV = OV = - - i=1,2i=1,2 ( I ( Iii * M * Mii ) )

Valor ( A [ LValor ( A [ L11, L, L22 ] ) ] )

= OV + = OV + i=1,2i=1,2 ( L ( Lii * *

MMii ) )

OVOV

II11 ( = 1 )( = 1 )SS11 ( = 3 )( = 3 )II22 ( = -1 )( = -1 )SS22 ( = 1 )( = 1 )EE ( = 1 )( = 1 )

DescriptorDescriptor(vector de arreglos)(vector de arreglos)

Valor I de AValor I de A

Representación deRepresentación dealmacenamiento almacenamiento

para componentes.para componentes.

Origen virtualOrigen virtual

Límite Inferior del subínice 1Límite Inferior del subínice 1

Límite Superior del subínice 1Límite Superior del subínice 1

Límite Inferior del subínice 2Límite Inferior del subínice 2

Límite Superior del subínice 2Límite Superior del subínice 2

Tamaño del ComponenteTamaño del Componente

A[1, -1 ] PrimeraA[1, -1 ] Primera

A[1, 0 ] FilaA[1, 0 ] Fila

A[1, 1 ]A[1, 1 ]

A[2, -1 ] SegundaA[2, -1 ] Segunda

A[2, 0 ] FilaA[2, 0 ] Fila

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

A[3, -1 ] TerceraA[3, -1 ] Tercera

A[3, 0 ] FilaA[3, 0 ] Fila

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

Page 56: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-56

Formula de Acceso a Componentes de Formula de Acceso a Componentes de Vectores n_dimensionalesVectores n_dimensionales

• Suponga que se tiene el siguiente arreglo Suponga que se tiene el siguiente arreglo n_dimensional:n_dimensional:

A [ IA [ I11:S:S11, ..., I, ..., Inn:S:Snn ] ]

MMnn = E = E (Tamaño de cada (Tamaño de cada elemento)elemento)

MMii = ( S = ( Si+1i+1 – I – Ii+1i+1 + 1 ) * M + 1 ) * Mi+1i+1 (Tamaño de cada (Tamaño de cada dimensión)dimensión)

OV = OV = - - i =1,ni =1,n ( I ( Iii * M * Mii ) ) (Origen virtual)(Origen virtual)

Valor ( A [ LValor ( A [ L11, ..., L, ..., Lnn ] ) = OV + ] ) = OV + i =1,ni =1,n ( L ( Lii * *

MMii ) )Donde:Donde:

A A es el nombre del arreglo.es el nombre del arreglo.

es la dirección base del arreglo.es la dirección base del arreglo.

E E es el tamaño de cada componente.es el tamaño de cada componente.

IIii son los límites inferiores.son los límites inferiores.

SSii son los límites superiores.son los límites superiores.

Page 57: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-57

RebanadasRebanadas

• Es una subestructura de un arreglo que es ella Es una subestructura de un arreglo que es ella misma un arreglo.misma un arreglo.

• Su implantación es eficiente mediante el manejo de Su implantación es eficiente mediante el manejo de descriptores.descriptores.

• El descriptor también puede incluir los El descriptor también puede incluir los multiplicadores Mmultiplicadores Mii..

15

27

39

18

30

42

21

33

45

24

36

48

11 22 33

44 55 66

77 88 99

1010 1111 1212

11 22 33

44 55 66

77 88 99

1010 1111 1212

A[ 3, * ]A[ 3, * ]

A[ 3, *, * ]A[ 3, *, * ]

Page 58: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-58

Ejemplos de ArreglosEjemplos de Arreglos

• Pascal, Modula y AlgolPascal, Modula y Algolarrarr_nombres_nombres : ARRAY [1..50] OF char; : ARRAY [1..50] OF char;arr_numeros : ARRAY [1..10] OF real;arr_numeros : ARRAY [1..10] OF real;matriz : ARRAY [1..10,1..5] OF integer;matriz : ARRAY [1..10,1..5] OF integer;

matriz[5,2]:= 128;matriz[5,2]:= 128;

• CCfloat arrpag[24];float arrpag[24];char cad[11] = “caracteres”;char cad[11] = “caracteres”;int matriz[5][5];int matriz[5][5];

matriz[][] = 12;matriz[][] = 12;

• FortranFortrandimension i_arr(-5:20)dimension i_arr(-5:20)real arr_num (20,0:4,8)real arr_num (20,0:4,8)

arr_num(1,0,8) := 704.06;arr_num(1,0,8) := 704.06;

Page 59: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-59

Ejemplos de ArreglosEjemplos de Arreglos

• CobolCobol0101 Arreglo.Arreglo.

0202 Elem PIC 999 OCCURS 5.Elem PIC 999 OCCURS 5.0101 Matriz.Matriz.

0202 Columna OCCURS 5.Columna OCCURS 5.03 Elem PIC S99 OCCURS 4.03 Elem PIC S99 OCCURS 4.

Elem(2,4)Elem(2,4)

• PL/IPL/IDCLDCL 11 ARREGLOARREGLO(5) FLOAT DEC(6) (5) FLOAT DEC(6) DCLDCL 11 MATRIZMATRIZ(5,4) FIXED DEC(2,0)(5,4) FIXED DEC(2,0)

MATRIZ(3,1) = 28;MATRIZ(3,1) = 28;

• SnobolSnobolarr = ARRAY (15,5)arr = ARRAY (15,5)matriz = ARRAY (‘5,4’)matriz = ARRAY (‘5,4’)tabla = TABLE (15,5)tabla = TABLE (15,5)

arr<4> = 15 o arr[4] = 15arr<4> = 15 o arr[4] = 15matriz <2,6> = arr[4]matriz <2,6> = arr[4]

Page 60: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-60

Ejemplos de ArreglosEjemplos de Arreglos

• AdaAdaarrarr : ARRAY(1..5) OF integer:=(1,6,2,8,3);: ARRAY(1..5) OF integer:=(1,6,2,8,3);matriz : ARRAY (1..10,1..5) OF float;matriz : ARRAY (1..10,1..5) OF float;mat : ARRAY (0..matriz’length(1),0..5) OF integer;mat : ARRAY (0..matriz’length(1),0..5) OF integer;vector :ARRAY (matriz’range(1)) OF integer;vector :ARRAY (matriz’range(1)) OF integer;

for i in vector’range loopfor i in vector’range loop if i < vector’length/2 thenif i < vector’length/2 then vector(i) = matriz’first(1)+vector(i);vector(i) = matriz’first(1)+vector(i); elseelse vector(i) = matriz’last(2)-vector(i);vector(i) = matriz’last(2)-vector(i); end if;end if;end loop;end loop;

for i in mat’first(1)..mat’last(1) loopfor i in mat’first(1)..mat’last(1) loop for j in mat’range(2) loopfor j in mat’range(2) loop if i=j thenif i=j then mat(i,j) = 1;mat(i,j) = 1; elseelse matriz (i,j) = 0;matriz (i,j) = 0;

end if;end if; end loop;end loop;end loop;end loop;

Page 61: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-61

Arreglos dinámicos en ALGOL68.Arreglos dinámicos en ALGOL68.

begin int begin int count:= 0, item;{1:1000} int stock;while read (item); item <>0

do count +:=1; if count > 1000 then print ((newline, “STOCK LIST TOO LONG.ITEM”,

item,”DISCHARGED”))

else stock {count}:= item fi od;

Page 62: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-62

Arreglos dinámicos en ALGOL68.Arreglos dinámicos en ALGOL68.

66 (datos contados)(datos contados)

49 128 19 77 14 813 (dato actual)49 128 19 77 14 813 (dato actual)

begin int begin int count, item; read (count); {1:count} int stock;

for p to count do read (stock{p} od; ..............

Page 63: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-63

Suma de Arreglos en APLSuma de Arreglos en APL

• Los nombre de variables y operadores, son Los nombre de variables y operadores, son directamente extendibles para la representación de directamente extendibles para la representación de arreglos.arreglos.

• Un arreglo puede tener cualquier número de Un arreglo puede tener cualquier número de dimensiones y cualquier número de elementos en dimensiones y cualquier número de elementos en cada dimensión, por ejemplo:cada dimensión, por ejemplo:

Page 64: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-64

Suma de Arreglos en APLSuma de Arreglos en APL

• Para definirlos e inicializarlos con cero, debemos Para definirlos e inicializarlos con cero, debemos seguir la forma:seguir la forma:

Page 65: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-65

Tipos EstructuradosTipos Estructurados

• Características de los arreglos en APL.Características de los arreglos en APL.

– Los nombre de variables y operadores, son Los nombre de variables y operadores, son directamente extendibles para la representación directamente extendibles para la representación de arreglos.de arreglos.

– Un arreglo puede tener cualquier número de Un arreglo puede tener cualquier número de dimensiones y cualquier número de elementos dimensiones y cualquier número de elementos en cada dimensión, por ejemplo:en cada dimensión, por ejemplo:

Page 66: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-66

Tipos EstructuradosTipos Estructurados

• Asignación de nuevos valores a un arreglo: Asignación de nuevos valores a un arreglo: debemos listar los valores de la siguiente formadebemos listar los valores de la siguiente forma

• Selección de elementos específicos: debemos Selección de elementos específicos: debemos utilizar la siguiente forma: utilizar la siguiente forma:

Page 67: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-67

Tipos EstructuradosTipos Estructurados

• Suma de dos arreglos: 9 7 8 + 5 5 5 Suma de dos arreglos: 9 7 8 + 5 5 5 el el resultado sería: 14 12 13resultado sería: 14 12 13

• Otra forma abreviada sería: 9 7 8 + 5Otra forma abreviada sería: 9 7 8 + 5 el resultado sería: 14 12 13 el resultado sería: 14 12 13

• Estos casos son igualmente aplicables para la resta, Estos casos son igualmente aplicables para la resta, multiplicación y división de arreglos.multiplicación y división de arreglos.

• Debemos tener dos arreglos de la misma dimensión Debemos tener dos arreglos de la misma dimensión para evitar un error de longitud.para evitar un error de longitud.

Page 68: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-68

RegistrosRegistros

• Es una estructura de datos compuesta de un Es una estructura de datos compuesta de un número fijo de de componentes de distintos tipos. número fijo de de componentes de distintos tipos.

• También se conocen como estructuras.También se conocen como estructuras.

• Son estructuras lineales y de longitud fija.Son estructuras lineales y de longitud fija.

• Los componentes de registros:Los componentes de registros:

– Se llaman Campos.Se llaman Campos.

– Pueden ser heterogéneos.Pueden ser heterogéneos.

– Se designan con nombres simbólicos (nombre Se designan con nombres simbólicos (nombre del campo).del campo).

Page 69: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-69

Atributos de, y Operaciones Sobre Atributos de, y Operaciones Sobre RegistrosRegistros

• Atributos de los Registros:Atributos de los Registros:

– El número de componentes.El número de componentes.

– El tipo de dato de cada componente.El tipo de dato de cada componente.

– El selector que se usa para nombrar cada El selector que se usa para nombrar cada componente.componente.

• Operaciones sobre Registros:Operaciones sobre Registros:

– Selección de componentes.Selección de componentes.

– Crear y destruir registros.Crear y destruir registros.

– Asignación de registros. Asignación de registros.

Page 70: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-70

Implantación de RegistrosImplantación de Registros

• Representación de almacenamientoRepresentación de almacenamiento

– Un solo bloque secuencial de memoria.Un solo bloque secuencial de memoria.

– Se guardan los componentes en serie.Se guardan los componentes en serie.

• Los componentes individualesLos componentes individuales

– Pueden requerir descriptores.Pueden requerir descriptores.

– Su selección es fácil.Su selección es fácil.

– Se conocen en tiempo de traducción.Se conocen en tiempo de traducción.

• No se requiere un descriptor en tiempo de ejecución No se requiere un descriptor en tiempo de ejecución para el registro.para el registro.

Page 71: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-71

Implantación de RegistrosImplantación de Registros

• La declaración del registro determina: La declaración del registro determina:

– El tamaño de los componentes.El tamaño de los componentes.

– La posición de los componentes en el bloque La posición de los componentes en el bloque de almacenamiento durante la traducción.de almacenamiento durante la traducción.

• La asignación de un registro completo:La asignación de un registro completo:

– Una simple copia del contenido del bloque de Una simple copia del contenido del bloque de almacenamiento.almacenamiento.

• Operaciones más complejas como MOVE Operaciones más complejas como MOVE CORRESPONDING:CORRESPONDING:

– Una serie de asignaciones de componentes Una serie de asignaciones de componentes individuales.individuales.

Page 72: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-72

Fórmula de Acceso a Componentes de Fórmula de Acceso a Componentes de RegistrosRegistros

• El desplazamiento de un componente se calcula en El desplazamiento de un componente se calcula en tiempo de traducción.tiempo de traducción.

• Para acceder a los componentes se utiliza la Para acceder a los componentes se utiliza la siguiente fórmula:siguiente fórmula:

valor_i ( R.I ) = valor_i ( R.I ) = + + j=i,I-1j=i,I-1 ( T(R.j) ) ( T(R.j) )

valor_i ( R.I ) = valor_i ( R.I ) = + + K_iK_iDonde:Donde:

R R es el nombre del registro.es el nombre del registro.

I I es el nombre del i_ésimo es el nombre del i_ésimo componente.componente.

es la dirección base del bloque dees la dirección base del bloque dealmacenamiento.almacenamiento.

T(R.j)T(R.j) es el tamaño del j_ésimo es el tamaño del j_ésimo componente.componente.

Page 73: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-73

Ejemplos de RegistrosEjemplos de Registros

• CCstruct persona{struct persona{cchar nombre[40];har nombre[40];int edad;int edad;char domicilio[100];char domicilio[100];} x;} x;strcpy(x.nombre,“Ana Laura”);strcpy(x.nombre,“Ana Laura”);x.edad=22; x.edad=22; printf (printf (“%s tiene %d años”, x.nombre, x.edad);“%s tiene %d años”, x.nombre, x.edad);

Salida: Ana Laura tiene 22 añosSalida: Ana Laura tiene 22 años

• CobolCobol0101 pepersonarsona

0202 nombrenombre PIC X(25). PIC X(25).0202 edadedad PIC 999. PIC 999.0202 domiciliodomicilioPIC X(5PIC X(500).).

nombre OF persona.nombre OF persona.edad OF persona.edad OF persona.

Page 74: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-74

Ejemplos de RegistrosEjemplos de Registros

• Pascal, Modula y AlgolPascal, Modula y Algolpersonapersona: RECORD: RECORD

nombrenombre : string : string[40][40];;edadedad : integer: integer;;domiciliodomicilio: string: string[100];[100];

End;End;persona.nombre = “Ana Laura”;persona.nombre = “Ana Laura”;personapersona.edad.edad == 22;22;with persona dowith persona do

write(nombre,‘ write(nombre,‘ tiene’, edad, ‘ años’);tiene’, edad, ‘ años’);

Salida: Ana Laura tiene 22 añosSalida: Ana Laura tiene 22 años

Page 75: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-75

Ejemplos de RegistrosEjemplos de Registros

•AdaAdatype persona istype persona is

recordrecordnombrenombre:string(1..45) := ‘Nuevo”:string(1..45) := ‘Nuevo”;;edad: integer range 1..100 := 18edad: integer range 1..100 := 18;;estado: string (1..50) := “Mexico”estado: string (1..50) := “Mexico”;;

end record;end record;alumno1:persona;alumno1:persona;alumno2:persona:= (“Laura”, 21, “Veracruz”);alumno2:persona:= (“Laura”, 21, “Veracruz”);alumno3:persona(alumno3:persona( nombre => “Laura”, edad => 21,nombre => “Laura”, edad => 21,

estado => “Veracruz”);estado => “Veracruz”);

•PL/IPL/IDCLDCL 11 PERSONA,PERSONA,

22 NOMBRENOMBRE CHAR(25),CHAR(25),22 EDADEDAD PIC 999,PIC 999,22 ESTADOESTADO CHAR (20);CHAR (20);

end record;end record;PERSONA.NOMBRE = ‘Laura’;PERSONA.NOMBRE = ‘Laura’;PERSONA.EDAD = 25PERSONA.EDAD = 25

Page 76: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-76

Registros en ALGOL68.Registros en ALGOL68.

beginbeginstruct struct ((((1:121:12) ) charchar opponents,opponents, int int for, for, againstagainst, bool home) , bool home) game, bestgame;game, bestgame;

intint n, gs, bs; n, gs, bs;read(n);read(n);read((newline, bestgame));read((newline, bestgame));bs:= for bs:= for ofof bestgame-against bestgame-against ofof bestgame; bestgame;forfor j j fromfrom 2 2 toto n ndodo read((newline, game)); read((newline, game)); gs:=for gs:=for ofof game-against game-against ofof game; game;

ifif gs>bs or (gs = bs gs>bs or (gs = bs and notand not home of game) home of game) thenthen bestgame:=game;bs:gs bestgame:=game;bs:gs fifi odod;;Print((newline,”THE BEST GAME OF THE SEASON Print((newline,”THE BEST GAME OF THE SEASON WAS”, bestgame))WAS”, bestgame))

endend..

Page 77: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-77

Registros y Arreglos con Registros y Arreglos con Componentes EstructuradosComponentes Estructurados

• La selección de sus La selección de sus componentes requiere de componentes requiere de una serie de selecciones a una serie de selecciones a partir de la dirección base de partir de la dirección base de la estructura completa y el la estructura completa y el cómputo del desplazamiento cómputo del desplazamiento del componente de primer del componente de primer nivel, seguido del cómputo nivel, seguido del cómputo del desplazamiento del del desplazamiento del componente del siguiente componente del siguiente nivel.nivel.

Ape1Ape1

NombreNombre Ape2Ape2

NombNomb

EdadEdad

CalleCalle NumCNumC

DirecDirec NomCNomC

CdCd

EdoEdo

CpCp

• Su implantación es una Su implantación es una extensión de la representación extensión de la representación de almacenamiento de las de almacenamiento de las estructuras simples.estructuras simples.

Em

plea

doE

mpl

eado

Page 78: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-78

Registros y Arreglos con Registros y Arreglos con Componentes EstructuradosComponentes Estructurados

• PL/IPL/I

11 Empleado,Empleado,22 Nombre,Nombre,

33 Apellido-1 CHARACTER(15);Apellido-1 CHARACTER(15);33 Nombre CHARACTER(20);Nombre CHARACTER(20);33 Apellido-2 CHARACTER(10);Apellido-2 CHARACTER(10);

22 Edad FIXED(2),Edad FIXED(2),22 Direccion,Direccion,

33 Calle,Calle,44 Numero FIXED(5),Numero FIXED(5),44 Nom_calle CHARACTER(20),Nom_calle CHARACTER(20),

33 Ciudad CHARACTER(15),Ciudad CHARACTER(15),33 Estado CHARACTER(10),Estado CHARACTER(10),33 CP FIXED(5);CP FIXED(5);

Page 79: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-79

Registros y Arreglos con Registros y Arreglos con Componentes EstructuradosComponentes Estructurados

•PascalPascalpersonapersona: RECORD: RECORD

nombrenombre: string: string[40][40];;edadedad: integer: integer;;domiciliodomicilio: RECORD : RECORD

calle:stringcalle:string[[220];0];numero: integer;numero: integer;colonia: string[15];colonia: string[15];ciudad: string[15];ciudad: string[15];

End;End;End;End;arrarr__person : ARRAY [1..50] OF persona;person : ARRAY [1..50] OF persona;

•CCstruct persona{struct persona{

cchar nombre[40];har nombre[40];intint edad; edad;charchar domicilio[domicilio[550];0];floatfloat pagos;pagos;

} } arrPerson[25];arrPerson[25];

Page 80: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-80

Registros VariantesRegistros Variantes

• Registros con diversas variantes.Registros con diversas variantes.

• Contienen uno o más componentes que son Contienen uno o más componentes que son comunes a las variantes.comunes a las variantes.

• Contienen un componente llamado marca o Contienen un componente llamado marca o discriminante.discriminante.

– Indica cuál variante existe en un tiempo de Indica cuál variante existe en un tiempo de ejecución dado.ejecución dado.

• Presentan el problema de selección de Presentan el problema de selección de componentes variantes no existentes.componentes variantes no existentes.

• También se conocen como Tipos de Unión:También se conocen como Tipos de Unión:

– Unión Libre: No tiene discriminante.Unión Libre: No tiene discriminante.

– Unión Discriminada: Tiene discriminante.Unión Discriminada: Tiene discriminante.

Page 81: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-81

Selección de Componentes VariantesSelección de Componentes Variantes

• Hay dos formas de evitar la selección de Hay dos formas de evitar la selección de componentes variantes inexistentes:componentes variantes inexistentes:

– Verificación dinámica: Verificar el componente Verificación dinámica: Verificar el componente marca antes de hacer el acceso.marca antes de hacer el acceso.

– Ninguna verificación: El lenguaje permite definir Ninguna verificación: El lenguaje permite definir registros sin el componente marca explícito, registros sin el componente marca explícito, por lo tanto siempre es válida la selección de un por lo tanto siempre es válida la selección de un componente variante.componente variante.

Page 82: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-82

Implantación de Registros VariantesImplantación de Registros Variantes

• En la traducción:En la traducción:

– Se determina la cantidad de memoria requerida Se determina la cantidad de memoria requerida para los componentes de cada variante.para los componentes de cada variante.

– Se asigna almacenamiento en el registro para la Se asigna almacenamiento en el registro para la variante más grande.variante más grande.

– Se determinan las disposiciones, que se usan Se determinan las disposiciones, que se usan para calcular los desplazamientos.para calcular los desplazamientos.

• Durante la ejecución:Durante la ejecución:

– Se calcula el desplazamiento del componente Se calcula el desplazamiento del componente seleccionado dentro del bloque de memoria.seleccionado dentro del bloque de memoria.

– Se suma el desplazamiento a la dirección base Se suma el desplazamiento a la dirección base del bloque para determinar la localidad del del bloque para determinar la localidad del componente.componente.

Page 83: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-83

Ejemplo de Registros Variantes en Ejemplo de Registros Variantes en PascalPascal

TYPETYPETipoPago = (Asalariado, PorHora);TipoPago = (Asalariado, PorHora);

VARVAREmpleado: RECORDEmpleado: RECORD Id: Integer;Id: Integer;

Depto: ARRAY [1..3] OF char;Depto: ARRAY [1..3] OF char;Edad: Integer;Edad: Integer;CASE ClasePago: TipoPago OFCASE ClasePago: TipoPago OF

Asalariado:(TarifaMensual: real;Asalariado:(TarifaMensual: real;FechaInicio: integer);FechaInicio: integer);

PorHora: (TarifaHora: real;PorHora: (TarifaHora: real;NumHoras: integer;NumHoras: integer;HorasExtras: integer)HorasExtras: integer)

END;END;

Page 84: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-84

ListasListas

• Es una estructura de datos compuesta de una serie Es una estructura de datos compuesta de una serie ordenada de estructuras de datos (objetos).ordenada de estructuras de datos (objetos).

• El primer miembro se llama Cabeza.El primer miembro se llama Cabeza.

• Generalmente son de longitud variada.Generalmente son de longitud variada.

• Sus componentes pueden ser heterogéneos.Sus componentes pueden ser heterogéneos.

• Los lenguajes que manejan listas, las declaran Los lenguajes que manejan listas, las declaran implícitamente.implícitamente.

Page 85: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-85

Implantación de ListasImplantación de Listas

• Se requiere de una organización de gestión de Se requiere de una organización de gestión de almacenamiento de lista vinculada.almacenamiento de lista vinculada.

• Un elemento de lista es un elemento primitivo de Un elemento de lista es un elemento primitivo de tamaño fijo.tamaño fijo.

• Campos de información de una lista:Campos de información de una lista:

– Un campo tipo:Un campo tipo:

• Átomo (campos restantes son descriptores)Átomo (campos restantes son descriptores)

• Lista (campos restantes son la cabeza y la Lista (campos restantes son la cabeza y la cola)cola)

– Dos campos apuntadores.Dos campos apuntadores.

• La gestión dinámica necesaria para mantener listas La gestión dinámica necesaria para mantener listas se contrapone a la gestión de almacenamiento se contrapone a la gestión de almacenamiento normal de los lenguajes compilados.normal de los lenguajes compilados.

Page 86: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-86

Variaciones Sobre ListasVariaciones Sobre Listas

• PilasPilas

– La selección, inserción y eliminación de La selección, inserción y eliminación de componentes están restringidas a un extremo.componentes están restringidas a un extremo.

– En tiempo de ejecución es un objeto de datos En tiempo de ejecución es un objeto de datos medular definido por el sistema.medular definido por el sistema.

• ColasColas

– La selección y eliminación de componentes La selección y eliminación de componentes están restringidas a un extremo.están restringidas a un extremo.

– La inserción esta restringida al otro extremo.La inserción esta restringida al otro extremo.

– Se usan en la organización y sincronización de Se usan en la organización y sincronización de subprogramas concurrentes.subprogramas concurrentes.

Page 87: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-87

Variaciones Sobre ListasVariaciones Sobre Listas

• ÁrbolesÁrboles

– Sus componentes pueden ser listas y objetos Sus componentes pueden ser listas y objetos de datos elementales.de datos elementales.

– Se suelen usar para representar tablas de Se suelen usar para representar tablas de símbolos en un compiladorsímbolos en un compilador

• Gráficas dirigidasGráficas dirigidas

– Sus componentes se pueden vincular entre sí Sus componentes se pueden vincular entre sí arbitrariamente.arbitrariamente.

• Listas de Propiedades (lista de valores de atributos,Listas de Propiedades (lista de valores de atributos,

lista de descripción o tablas)lista de descripción o tablas)

– Son un registro con un número variable de Son un registro con un número variable de componentes.componentes.

– Nombre de propiedad.Nombre de propiedad.

– Valor de propiedad.Valor de propiedad.

Page 88: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-88

Representación de Almacenamiento Representación de Almacenamiento de Listas de propiedadesde Listas de propiedades

Estructura de la Lista Estructura de la Lista de Propiedades.de Propiedades.

Lista de propiedades

Nombre de la PropiedadApuntador a valor de la propiedad

Valor de la propiedadApuntador a la próxima propiedad

‘‘ID’ID’

12061206

‘‘EDAD’EDAD’

3131

Page 89: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-89

Gestión de Almacenamiento Asociada Gestión de Almacenamiento Asociada a Listasa Listas

• Existen básicamente dos enfoques:Existen básicamente dos enfoques:

– Se suministra directamente un tipo de datos de Se suministra directamente un tipo de datos de estructura de lista y se proporciona un sistema estructura de lista y se proporciona un sistema oculto de gestión de almacenamiento.oculto de gestión de almacenamiento.

– Se suministra un tipo de dato apuntador y las Se suministra un tipo de dato apuntador y las facilidades de asignación dinámica de facilidades de asignación dinámica de almacenamiento en forma explícita.almacenamiento en forma explícita.

Page 90: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-90

Representación de Almacenamiento Representación de Almacenamiento de Listas en Lispde Listas en Lisp

(cons ‘(a b c) ‘(d e f))(cons ‘(a b c) ‘(d e f))

= ( (a b c) (d e f)) = ( (a b c) (d e f))

lista

átomo a

lista

átomo b

lista

átomo c

lista

átomo d

lista

átomo e

lista

átomo f

lista

Page 91: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-91

Cadenas de CaracteresCadenas de Caracteres

• Son objetos de datos compuestos de una serie de Son objetos de datos compuestos de una serie de caracteres. caracteres.

• Su importancia radica en su uso para la Su importancia radica en su uso para la representación de datos para entada y salida.representación de datos para entada y salida.

• Existen básicamente tres tratamientos:Existen básicamente tres tratamientos:

– Longitud fija declarada.Longitud fija declarada.

– Longitud variable hasta un límite declarado.Longitud variable hasta un límite declarado.

– Longitud ilimitada.Longitud ilimitada.

Page 92: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-92

Operaciones Sobre Cadenas de Operaciones Sobre Cadenas de CaracteresCaracteres

• Las operaciones sobre cadenas de caracteres Las operaciones sobre cadenas de caracteres dependen del lenguaje, las más comunes son:dependen del lenguaje, las más comunes son:

– ConcatenaciónConcatenación

– Operaciones relacionales sobre cadenas.Operaciones relacionales sobre cadenas.

– Selección de subcadenas usando subíndices de Selección de subcadenas usando subíndices de posición.posición.

– Establecer formato de entrada-salida.Establecer formato de entrada-salida.

– Selección de subcadenas usando Selección de subcadenas usando equiparamiento de patrones.equiparamiento de patrones.

Page 93: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-93

Implantación de Cadenas de Implantación de Cadenas de CaracteresCaracteres

• Longitud fija declarada.Longitud fija declarada.

RR EE AA LL

II ZZ AA DD

OO SS

1010 1414 RR EE

AA LL II ZZ

AA DD OO SS

1010 RR EE AA

LL II ZZ AA

DD OO SS

• Longitud variable hasta Longitud variable hasta un límite declarado. un límite declarado.

• Longitud ilimitada con Longitud ilimitada con asignaciones fijas. asignaciones fijas.

• Longitud ilimitada con Longitud ilimitada con asignaciones variables.asignaciones variables.

RR EE AA LL II ZZ AA DD OO SS

Page 94: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-94

Manejo de Cadenas de Caracteres en Manejo de Cadenas de Caracteres en CC

main () {main () {char cchar cad1 ad1 [5][5] == ““HoHola";la";char char cad2 cad2 [[ ]] == ““AdiosAdios MMundo";undo";printf("%c%c%c", cad[0], cad[1], cad[2]);printf("%c%c%c", cad[0], cad[1], cad[2]);printf("%c%c", cad[3], cad[4]);printf("%c%c", cad[3], cad[4]);strcpy (cad2, cad1);strcpy (cad2, cad1);Cad2[4] = ‘_’;Cad2[4] = ‘_’;printf(“, %s",cad2);printf(“, %s",cad2);

}}

Salida: HolaSalida: Hola0, Hola_ Mundo0, Hola_ Mundo

Page 95: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-95

Apuntadores y Objetos de Datos Apuntadores y Objetos de Datos Construidos por el ProgramadorConstruidos por el Programador

• Características de los lenguajes que permiten Características de los lenguajes que permiten construir estructuras usando apuntadores:construir estructuras usando apuntadores:

– Un apuntador de tipo elemental de datos.Un apuntador de tipo elemental de datos.

– Una operación de creación para objetos de Una operación de creación para objetos de datos de tamaño fijo.datos de tamaño fijo.

– Una operación de referencia para valores de Una operación de referencia para valores de apuntador.apuntador.

• Los apuntadores se pueden tratar de dos maneras:Los apuntadores se pueden tratar de dos maneras:

– Referenciar únicamente a objetos de un solo Referenciar únicamente a objetos de un solo tipo.tipo.

– Referenciar a objetos de cualquier tipo.Referenciar a objetos de cualquier tipo.

• Se pueden seleccionar usando el mecanismo Se pueden seleccionar usando el mecanismo ordinario de selección.ordinario de selección.

Page 96: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-96

Implantación de ApuntadoresImplantación de Apuntadores

• Se representa como una localidad de memoria que Se representa como una localidad de memoria que contiene la dirección de otra localidad de memoria.contiene la dirección de otra localidad de memoria.

• Contiene la dirección base de memoria que Contiene la dirección base de memoria que representa el objeto de datos al que apunta.representa el objeto de datos al que apunta.

• Hay dos representaciones de almacenamiento:Hay dos representaciones de almacenamiento:

– Dirección absoluta.Dirección absoluta.

– Dirección relativa.Dirección relativa.

• El problema principal es la asignación de memoria El problema principal es la asignación de memoria asociada a la operación de creación.asociada a la operación de creación.

• Se permite:Se permite:

– La verificación estática de tipos.La verificación estática de tipos.

– La verificación dinámica de tipos.La verificación dinámica de tipos.

Page 97: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-97

Dirección Absoluta Dirección Absoluta vs Dirección Relativa vs Dirección Relativa

• Dirección absoluta.Dirección absoluta.– La selección es eficiente.La selección es eficiente.– El valor del apuntador proporciona un acceso El valor del apuntador proporciona un acceso

directo.directo.– La gestión de almacenamiento es difícil.La gestión de almacenamiento es difícil.– La recuperación de basura es difícil.La recuperación de basura es difícil.

• Dirección relativa.Dirección relativa.– Un área de memoria para cada tipo de objeto o Un área de memoria para cada tipo de objeto o

una sola área para todo los objetos de datos.una sola área para todo los objetos de datos.– Memoria asignada en bloques de tamaño fijo.Memoria asignada en bloques de tamaño fijo.– Se simplifica la gestión de almacenamiento. Se simplifica la gestión de almacenamiento. – La selección es más costosa.La selección es más costosa.– Permite mover el bloque de área como un todo sin Permite mover el bloque de área como un todo sin

invalidar los apuntadores.invalidar los apuntadores.

Page 98: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-98

Manejo de Apuntadores en CManejo de Apuntadores en C

int z = 25, *apunta;int z = 25, *apunta;aapuntapunta == &z;&z;printf("%dprintf("%d %d",z%d",z, , *apunta);*apunta);

Salida: Salida: 25 2525 25

int Arr[5] = (1,2,3,4,5), *apArr;int Arr[5] = (1,2,3,4,5), *apArr;apArr = &Arr[0];apArr = &Arr[0];printf(“%d,%d”, *apArr, *(apArr+2) );printf(“%d,%d”, *apArr, *(apArr+2) );

Salida: 1, 3Salida: 1, 3

struct reg {int a; int b;} *ap;struct reg {int a; int b;} *ap;ap = (struct reg *) malloc(sizeof(struct reg));ap = (struct reg *) malloc(sizeof(struct reg));ap->a = 10;ap->a = 10;printf(“%d”, ap->a);printf(“%d”, ap->a);

Salida 10Salida 10

Page 99: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-99

Manejo de Apuntadores en PascalManejo de Apuntadores en Pascal

type type tipoAp = ^nodo;tipoAp = ^nodo;nodo = recordnodo = record

nombre : string[40];nombre : string[40];tel : string[20];tel : string[20];app : tipoAp;app : tipoAp;

end;end;

varvarpersona : nodo;persona : nodo;cab, act : tipoAp;cab, act : tipoAp;

BEGINBEGINnew(cab);new(cab);cab^.nombre := ‘Ana Laura’;cab^.nombre := ‘Ana Laura’;cab^.tel := ‘56-97-11-42’;cab^.tel := ‘56-97-11-42’;cab^.app := nil;cab^.app := nil;act := cab;act := cab;dispose (act);dispose (act);

END.END.

Page 100: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-100

Manejo de Apuntadores en ADAManejo de Apuntadores en ADA

type Nodo is recordtype Nodo is record

Nombre: STRING(15);Nombre: STRING(15);

Apuntador : PTR;Apuntador : PTR;

end record;end record;

type PTR is access Nodo;type PTR is access Nodo;

cabeza, sig : PTR;cabeza, sig : PTR;

beginbegin

cabeza := new Nodo;cabeza := new Nodo;

sig := null;sig := null;

cabeza=>nombre := “Ana Laura”;cabeza=>nombre := “Ana Laura”;

cabeza => apuntador := sig;cabeza => apuntador := sig;

end;end;

Page 101: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-101

Manejo de Apuntadores en MODULAManejo de Apuntadores en MODULA

MODULE Lista;MODULE Lista;FROM Storage IMPORT ALLOCATE, DEALLOCATE;FROM Storage IMPORT ALLOCATE, DEALLOCATE;

TYPE apuntador = POINTER TO nodo;TYPE apuntador = POINTER TO nodo;nodo = recordnodo = record

nombre: ARRAY[1..50] OF CHAR;nombre: ARRAY[1..50] OF CHAR;sig: apuntador; sig: apuntador;

END;END;VAR cabeza, siguiente: apuntador;VAR cabeza, siguiente: apuntador;BEGINBEGIN

NEW(cabeza);NEW(cabeza);siguiente := NIL;siguiente := NIL;cabeza^.nombre := “Ana Laura”;cabeza^.nombre := “Ana Laura”;cabeza^.sig := siguiente;cabeza^.sig := siguiente;DISPOSE(cabeza);DISPOSE(cabeza);

END Lista;END Lista;

Page 102: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-102

Manejo de ApuntadoresManejo de Apuntadores

•PL/lPL/l

DCL Q PTR, P PTR;DCL Q PTR, P PTR;DCL B FIXED BASED(Q);DCL B FIXED BASED(Q);ALLOCATE B SET(P);ALLOCATE B SET(P);ALLOCATE B SET(Q);ALLOCATE B SET(Q);P->B = 15;P->B = 15;Q->B = 12;Q->B = 12;Q = P;Q = P;P = NIL;P = NIL;

•SNOBOLSNOBOL

DATA (‘PERSONA(NOMBRE, APUNTADOR)’)DATA (‘PERSONA(NOMBRE, APUNTADOR)’)HEAD = ‘’HEAD = ‘’P = PERSONA(TRIM(INPUT),’’)P = PERSONA(TRIM(INPUT),’’) :f(END):f(END)HEAD = PHEAD = PLOOP Q = PLOOP Q = P

P = PERSONA(TRIM(INPUT,’’)P = PERSONA(TRIM(INPUT,’’) :f(END):f(END)APUNTADOR(Q) = PAPUNTADOR(Q) = P

ENDEND

Page 103: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-103

ConjuntosConjuntos

• Un conjunto es un objeto de datos que contiene una Un conjunto es un objeto de datos que contiene una colección no ordenada de valores distintos.colección no ordenada de valores distintos.

• Sus operaciones básicas:Sus operaciones básicas:

– Pertenencia: es X miembro de C?Pertenencia: es X miembro de C?

– Inserción y eliminación.Inserción y eliminación.

– Unión, intersección y diferencia de conjuntos.Unión, intersección y diferencia de conjuntos.

Page 104: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-104

ConjuntosConjuntos

• Implementación:Implementación:

– Un conjunto es una lista pudiendo ser ordenada Un conjunto es una lista pudiendo ser ordenada y sin valores duplicados. y sin valores duplicados.

– No requiere consideraciones especiales.No requiere consideraciones especiales.

Page 105: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-105

ConjuntosConjuntos

• Manejos de cadenas:Manejos de cadenas:

– El apoyo de hardware para operaciones de El apoyo de hardware para operaciones de cadenas de bits, hace eficiente la manipulación cadenas de bits, hace eficiente la manipulación de la representación de conjuntos. de la representación de conjuntos.

– Para cadenas de longitud muy grande, se utiliza Para cadenas de longitud muy grande, se utiliza simulación por software para dividirlas en simulación por software para dividirlas en segmentos pequeños.segmentos pequeños.

Page 106: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-106

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Un archivo es una estructura de datos con dos Un archivo es una estructura de datos con dos propiedades especiales:propiedades especiales:

1. Se representa regularmente en un 1. Se representa regularmente en un dispositivo secundario. dispositivo secundario.

2. Tiempo de vida mayor que el programa que 2. Tiempo de vida mayor que el programa que lo crea. lo crea.

Page 107: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-107

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Los archivos pueden ser de tipo:Los archivos pueden ser de tipo:

1. Secuenciales.1. Secuenciales.

2. Textfiles.2. Textfiles.

3. De acceso directo.3. De acceso directo.

4. Secuenciales indizados.4. Secuenciales indizados.

Page 108: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-108

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Archivos secuenciales:Archivos secuenciales:

Un Un archivo secuencialarchivo secuencial es una estructura de es una estructura de datos formada por una serie lineal de datos formada por una serie lineal de

componentes del mismo tipo.componentes del mismo tipo.

- Sus operaciones principales son:Sus operaciones principales son:

AbrirAbrir

LecturaLectura

EscrituraEscritura

Prueba final de archivoPrueba final de archivo

CerrarCerrar

Page 109: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-109

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Archivos Textfiles:Archivos Textfiles:

– Son archivos de textoSon archivos de texto

– Generalmente son producidos y leídos por el Generalmente son producidos y leídos por el programa o son producidos desde el tecladoprograma o son producidos desde el teclado

– Se les manipula igual que los archivos Se les manipula igual que los archivos secuencialessecuenciales

– Permiten el formateo de la salidaPermiten el formateo de la salida

Page 110: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-110

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Entrada-salida interactiva:Entrada-salida interactiva:

– Son archivos de textoSon archivos de texto

Page 111: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-111

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Archivos de acceso directo:Archivos de acceso directo:

– Son archivos de secuencialesSon archivos de secuenciales

– Cada componente o elemento, posee una llave Cada componente o elemento, posee una llave con índices, los cuales denotan su colocación, con índices, los cuales denotan su colocación, tanto en memoria principal y secundaria.tanto en memoria principal y secundaria.

Page 112: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-112

Archivos y Entrada - SalidaArchivos y Entrada - Salida

• Archivos secuenciales indizados:Archivos secuenciales indizados:

– Similares a los de acceso directoSimilares a los de acceso directo

– Poseen además acceso a los componentes en Poseen además acceso a los componentes en orden a partir de otro seleccionado al azarorden a partir de otro seleccionado al azar

Page 113: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-113

Referencias BibliográficasReferencias Bibliográficas

• Terrence W. Pratt, et al.Terrence W. Pratt, et al.Lenguajes de Programación, 3a edición,Lenguajes de Programación, 3a edición,Prentice HallPrentice Hall

• Tucker, Allen B.Tucker, Allen B.Programming Languages, 2a ediciónProgramming Languages, 2a ediciónMcGraw-HillMcGraw-Hill

• Peter Aitken y Bradley Jones.Peter Aitken y Bradley Jones.Aprendiendo C en 21 dias, edición Bestseller.Aprendiendo C en 21 dias, edición Bestseller.Prentice Hall.Prentice Hall.

• Patrick Naughton y Herbert Schildt.Patrick Naughton y Herbert Schildt.Java. Manual de referencia.Java. Manual de referencia.McGraw Hill.McGraw Hill.

Page 114: 4-1 Tema 4 Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Honorato Saavedra Hernández. Carlos Eugenio Ojeda.

4-114

Referencias BibliográficasReferencias Bibliográficas

• Michael Halvorson.Michael Halvorson.Aprendiendo Visual Basic 5 Ya.Aprendiendo Visual Basic 5 Ya.McGraw Hill. Microsoft Press.McGraw Hill. Microsoft Press.

• Norman H. CohenNorman H. CohenAda as a second language, 1986.Ada as a second language, 1986.McGraw-HillMcGraw-Hill

• Leonard Gilman y Allen J. Rose.Leonard Gilman y Allen J. Rose.APL, enfoque interactivo.APL, enfoque interactivo.Edit LIMUSA.Edit LIMUSA.

• Andrew J. T. ColinAndrew J. T. ColinProgramming and Problem-solving in ALGOL68Programming and Problem-solving in ALGOL68The MacMillan Pres LTD.The MacMillan Pres LTD.