1 / 114

Tema 4

Tema 4. Tipos de Datos y Objetos Alumnos: Mónica Patricia Padilla Ibarra. Honorato Saavedra Hernández. Carlos Eugenio Ojeda Nava. Objetivos. Propiedades Tipos de datos elementales Tipos de datos estructurados. Tipos y Objetos: Propiedades. Propiedades:

mahala
Download Presentation

Tema 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Objetivos • Propiedades • Tipos de datos elementales • Tipos de datos estructurados

  3. Tipos y Objetos: Propiedades • Propiedades: • Almacenamiento de datos en la computadora actual: • Memoria, registros y almacenamientos externos, tienen una estructura sencilla agrupados en palabras o bytes. • Almacenamiento en una computadora virtual: • Organización más compleja, con arreglos, stacks, números, caracteres, cadenas, y otras estructuras de datos que existen durante la ejecución del programa. • Por tal razón es necesario emplear el término objeto de datos para referirnos a la corrida en tiempo de ejecucíon de un grupo o más estructuras de datos en una computadora virtual.

  4. Tipos y Objetos: Propiedades • Un objeto de datos representa a un contenedor de valores de datos. Uno objeto de datos se caracteriza por un set (o conjunto) de atributos. El más importante de ellos es el tipo de dato. • El tipo de datos es una clase de objeto de datos, junto con un set de operaciones para su creación y manipulación. Los elementos básicos para especificar de un tipo de dato son: 1.- Los atributos que distingue al tipo del objeto de datos 2.- El valor que puede tener el objeto de datos, y 3.- Las operaciones que define la posible manipulación del objeto de datos.

  5. Tipos y Objetos: Propiedades Un objeto de datos de variable simple con el valor de 17.

  6. Tipos y Objetos: Propiedades • En los siguientes subtemas se analizarán con más detalles estos aspectos. A continuación mostramos un par de ejemplos para mostrar lo antes expuesto: #include <stdio.h> int radio, area; main() { printf(“Teclea el radio :”); scan(“%d”,&radio); area=3.1416*radio*radio; printf(“\n\nArea = %d, area); return 0; } End Sub

  7. Tipos y Objetos: Propiedades • Cabe señalar que Java, por ser descendiente de las premisas de C y C++ en lo referente a estos temas de exposición. Decidimos mostrar un ejemplo pequeño en Visual Basic: Private Sub Command1_Click() Dim Primero, Segundo ´Declaración de variables Primero=Text1.Text Segundo=Text2.Text EndSub

  8. Tipos Elementales De Datos • Tipos de datos numéricos • Enumeraciones • Booleanos • Caracteres • Internacionalización

  9. Tipos De Datos Numéricos • Enteros • Subintervalo • Números reales de punto flotante • Números reales de punto fijo • Otros tipos de datos numéricos

  10. Enteros • Especificación • Operaciones aritméticas BinOp : entero x entero —> entero UnaryOp : entero —> entero • Operaciones relacionales RelOp : entero x entero —> booleano • Asignación entero x entero —> vacío entero x entero —> entero

  11. Enteros • Implementación

  12. Ejemplos • Ada Next : Integer; One, Two : Integer :=1; Two := One + 1; • ALGOL integer x,y,z; x := 1; • FORTRAN INTEGER H, I, J H = 1

  13. Ejemplos • COBOL 77 X PIC 99999. 77 Y PIC S999. ADD 1 TO X. ADD 1,X GIVING Y. SUBTRACT 1 FROM Y. MULTIPLY 3 BY H GIVING Y. • PL/1 DECLARE X FIXED BINARY;

  14. Ejemplos • C int x,y; X = 0; y = -1;

  15. Subintervalo • Especificación • Serie de valores enteros dentro de cierto intervalo restringido • Se puede designar como un subtipo del tipo base entero • Implementación • Requerimientos de almacenamiento más reducidos • Mejor verificación de tipos

  16. Ejemplos • Ada Amount : Integer RANGE 0 .. 100; Type Year_type IS RANGE 1901 .. 2099; Current_Year, Year_Of_Birth : Year_Type;

  17. Números Reales de Punto Flotante • Especificación • Misma aritmética relacional y operadores de asignación que los enteros • Algunas veces las operaciones booleanas están restringidas

  18. Números Reales de Punto Flotante • Implementación

  19. Números Reales de Punto Flotante • Ejemplo de formato de IEEE • La norma 754 de IEEE especifica tanto una norma de 32 bits como una de 64 bits para números de punto flotante. • Los números se componen de tres campos • S : un campo de signo de un bit. 0 es positivo • E : un exponente en notación exceso 127 • M : una mantisa de 23 bits

  20. Números Reales de Punto Flotante +1 = 2^0 x 1 = 2^(127-127) x (1).0 (binario) 0 01111111 000000 ... +1.5 = 2^0 x 1.5 = 2^(127-127) x (1).1 (binario) 0 01111111 100000 ... -5 = -2^2 x 1.25 = 2^(129-127) x (1).01 (binario) 1 10000001 010000 ...

  21. Ejemplos • Ada TYPE Distance_Type IS DIGITS 6 RANGE 0.0 .. 10.0; x,y : Distance_Type; • ALGOL real x,y,z; x := 0.5; y := -1; z := -0.255510-2

  22. Ejemplos • FORTRAN REAL H, I, J DOUBLE PRECISION K, L, M H = -.551E-2 L = 22.33D4 • PL/1 DECLARE X REAL FLOAT DECIMAL (6); • C float x,y; x = 5.43; y = -435435e34;

  23. Números Reales de Punto Fijo • Especificación • Implementación

  24. Ejemplos • Ada TYPE Average_Type IS DELTA 0.001 RANGE 0.0 .. 1.0; Category : Average_Type DELTA 0.100; • COBOL 77 X PIC 9999V99. 77 Y PIC S999V9. • PL/1 DECLARE X REAL FIXED DECIMAL (7,2);

  25. Otros Tipos De Datos Numéricos • Números Complejos Un número complejo se compone de un par de números que representan las partes real e imaginaria del número • Números Racionales Un número racional es el cociente de dos enteros

  26. Otros Tipos De Datos Numéricos

  27. Ejemplos • FORTRAN COMPLEX H, I, J H = (3.2,1.5E3) • PL/1 DECLARE X COMPLEX;

  28. Enumeraciones • Especificación Una enumeración es una lista de valores distintos • Implementación

  29. Ejemplos • Ada TYPE Suit_Type IS (Clubs,Diamonds,Hearts,Spades); Longest_Suit : Suit_Type := Diamonds; TYPE Animales IS (Perro,Gato,Raton); TYPE Herramientas IS (Llave,Gato,Martillo); Variable1 : Animales; Variable1 := Animales’(Gato); type Day is (Mon, Tue, Wed, Thu, Fri, Sat, Sun); type Gender is (M, F); type Level is (Low, Medium, Urgent); type Color is (White, Red, Yellow, Green, Blue, Brown, Black); type Light is (Red, Amber, Green); -- Red and Green are overloaded

  30. Ejemplos type Hexa is ('A', 'B', 'C', 'D', 'E', 'F'); type Mixed is ('A', 'B', '*', B, None, '?', '%'); subtype Weekday is Day range Mon .. Fri; subtype Rainbow is Color range Red .. Blue; -- the Color Red, not the Light • C enum Color {rojo, verde, azul, negro}; enum Poligono {triangulo = 3, cuadrado = 4, pentagono =5}; Color c=verde;

  31. Booleanos • Especificación El tipo booleano de datos consiste en objetos de datos que tienen uno de dos valores, cierto o falso • Operaciones y : booleano x booleano —> booleano o : booleano x booleano —> booleano no : booleano —> booleano • Implementación

  32. Ejemplos • Fortran LOGICAL K, L, M M = .TRUE. PAGEND = .FALSE. PRNTOK = LINE .LE. 132 .AND. .NOT. PAGEND ABIG = A.GT.B .AND. A.GT.C .AND. A.GT.D • Ada TYPE Boolean IS (False, True); --predefinida x : Boolean; • ALGOL Boolean x,y; x := true; y := false;

  33. Ejemplos • C #define TRUE 0 int x; x = TRUE; • Scheme (not #t) => #f (not 3) => #f (not (list 3)) => #f (not #f) => #t

  34. Caracteres • Especificación Un tipo de datos de caracter proporciona objetos de datos que tienen un solo caracter como su valor • Implementación

  35. Ejemplos • Ada TYPE Character_Type IS (‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’); micaracter : Character_Type; type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M'); • COBOL 77 X PIC AAAAAAAAAA. 77 Y PIC A(15). 77 Z PIC XXXXXXXX. • PL/1 DECLARE X CHARACTER; • C char x,y[20];

  36. Internacionalización • Órdenes de clasificación • Formatos de fecha específicos del país • Formatos de hora específicos del país • Husos horarios • Sistemas ideográficos • Moneda

  37. Otros Ejemplos • Complejos en C++ class Complejo{ intreal; int imaginaria; public: void set(int x, int y){ real = x; imaginaria = y; } Complejo operator+(Complejo a); }; Complejo operator+(Complejo a){ Complejo temp; temp.real = real + a.real; temp.imaginaria = imaginaria + a.imaginaria; return temp; }

  38. Otros Ejemplos main(){ Complejoi,j,k; i.set(2, 4, 5); j.set(5, 6, 8); k = i + j; }

  39. Tipos Estructurados • Son objetos de datos construido como un agregado de otros objetos de datos, llamados Componentes. • Sus componentes pueden ser: • Elementales. • Estructuras de datos.

  40. Implicaciones de Tipos de Estructuras de Datos • Especificación de tipos. • Implantación de tipos. • Declaración y verificación de tipos. • Especificación e implantación de información estructural. • Gestiones de almacenamiento.

  41. Atributos para la Especificación de Tipos de Estructuras de Datos Los atributos principales son: • Número de componentes. • Estructuras de tamaño fijo. • Estructuras de tamaño variable. • Tipo de cada componente. • Estructuras homogéneas. • Estructuras heterogéneas. • Nombres que se deben usar para seleccionar componentes. • Número máximo de componentes. • Organización de los componentes.

  42. Operaciones sobre Estructuras de Datos • Operaciones de selección de componentes. • Selección directa. • Selección secuencial. • Operaciones con estructuras de datos completas. • Inserción y eliminación de componentes. • Creación y destrucción de estructuras de datos. Nota: La operación de selección de (o el acceso a) un componente requiere de dos operaciones: • Refinamiento. • Selección.

  43. Implantación de Tipos de Estructuras de Datos • Consideraciones de los tipos elementales. • Representación de almacenamiento: • Secuencial. • Vinculada. • Implantación de operaciones sobre estructuras de datos: • Representación secuencial. • Representación vinculada. • Gestiones de almacenamiento: • Basura. • Referencias desactivadas.

  44. Declaración y Verificación de Tipos de Estructuras de Datos • Tomar en cuenta las consideraciones de los tipos elementales. • Para la verificación de tipos se deben considerar las operaciones de selección de componentes. • Existen dos problemas principales: • Existencia de un componente seleccionado. • Tipo de un componente seleccionado.

  45. Vectores y Arreglos • Vector • Es una estructura de datos integrada por un número fijo de componentes del mismo tipo organizados como una serie lineal simple. • Es un arreglo unidimensional o arreglo lineal. • Arreglo • Un arreglo bidimensional es una matriz compuesta de filas y columnas. • Un arreglo tridimensional se compone de planos de filas y columnas. • Un arreglo multidimensional, se construye a partir de arreglos de dimensiones menores.

  46. Atributos de un Vector • Número de componentes. • Implícito en un rango de intervalos de subíndices. • Se determina para cada dimensión. • Tipo de datos de cada componente. • Un solo tipo de dato para todos los componentes. • Subíndice de selección de cada componente. • Generalmente se especifica como un intervalo de enteros, o una enumeración. • Identifican la posición de cada componente.

  47. Operaciones Sobre Vectores • Operaciones permitidas: • Seleccionar un componente. • Crear y destruir vectores. • Asignación de componentes a un vector. • Operaciones aritméticas sobre parejas de vectores. • Suma y Resta de vectores. • Operaciones no permitidas: • Inserción y eliminación de componentes.

  48. Implantación de Vectores • Representación de almacenamiento secuencial. • Representación de almacenamiento empacado. • Representación de almacenamiento no empacado. • Operaciones con vectores completos. Dirección base del vector Descriptor (vector de arreglos) Representación de almacenamiento para componentes.

  49. Representación de Almacenamiento Secuencial de Vectores • Representación de almacenamiento secuencial. • Forma más apropiada. • Los componentes se guardan en forma secuencial. • Se incluye un descriptor para guardar los atributos necesarios.

  50. Fórmula de Acceso a Componentes de Vectores • Para acceder a los componentes se utiliza la siguiente fórmula: Valor_i ( A [ i ] ) =  + ( i – Li) * E = ( - Li * E ) + ( i * E ) = k + ( i * E ) Donde: A es el nombre del arreglo. i es el subíndice del componente a acceder.  es la dirección base del arreglo. E es el tamaño de cada componente. Li es el límite inferior del intervalo de subíndices.

More Related