TIPOS DE DATOS ELEMENTALES, DE ESTRUCTURAS Y ABSTRACTOS. Una variable

Anuncio
TIPOS DE DATOS ELEMENTALES, DE ESTRUCTURAS Y ABSTRACTOS.
• Datos objetos, variables y constantes.
Un dato objeto que se define y se nombra explicitamente por el programador en un programa es llamado en
forma habital, variable. Una variable simple es un dato objeto elemental con un nombre. Una constante, es un
dato objeto con un nombre, el cual se liga a un valor (o valores) en forma permanente durante su tiempo de
vida. Una literal (o constante literal) es una constante cuyo nombre es solo la representacion escrita de su
valor. Una constante definida por el programador, es una constante cuyo nombre escoge el programador en
una definicion del dato objeto. El dato objeto es mas general que el de variable o de constante, ya que los
datos objeto no necesitan tener nombres ni ser creados explicitamente por el programador.
• Especificaciones de datos elementales.
Un dato objeto elemental contiene un valor simple.
• Declaraciones.
Una declaracion es una instruccion en un programa que sirve para comunicarse con la informacion del
traductor del lenguaje a cerca del numero y tipo de los datos objeto que se necesitan durante la ejecucion de
un programa.
• Datos numericos.
Algunas formas de datos numericos se encuentran en casi todos los lenguajes de programacion, pero los
detalles de la especificacion e implementacion de tales tipos varia mucho, los tipos de numeros enteros y
reales son mas comunes, porque estan directamente soportados en el hardware de la computadora. Las
diferentes clases de datos numericos son:
• Enteros. Un dato objeto de tipo entero no tiene otros atributos ademas de su tipo. La serie de valores
enteros definidos por el tipo forman un subconjunto ordenado, dentro de los limites finitos del
conjunto infirnito de enteros.
• Reales de punto flotante. Un tipo de datos de numeros reales de punto flotante se especifica con el
simple atributo del tipo de dato REAL. En forma alternativa, debe especificar el programador la
precision requerida en los numeros de punto flotante, en terminos del numero de digitos utilizados en
la represetacion decimal, como en Ada y en PL/I.
• Otros tipos de datos numericos.
• Numeros reales de punto fijo. Un numero de punto fijo se representa como una secuencia de digitos
de longitud fija, con el punto decimal posicionado en un punto entre dos digitos.
• Numero complejos. Un numero complejo consta de un par de numeros reales, que representan las
partes reales e imaginarias de un numero. Un tipo de dato de numeros complejos puede ser
proporcionado con facilidad, representando cada dato objeto como un bloque de dos locaciones de
almacenamiento que contienen un par de valores reales.
• Numeros racionales. Un numero racional es el cociente de dos enteros. La razon usual para incluir un
tipo de dato de numeros racional en un lenguaje es evitar los problemas de redondeo y truncamiento
que se encuentran en las representaciones de reales de punto fijo y punto flotante. Como resultado, se
desea representar numeros racionales como pares de enteros de longitud ilimitada.
• Caracteres.
La mayoria de los datos entran y salen en forma de caracteres. Por lo regular se proporciona la
1
conversion a otros tipos de datos durante la entrada y salida, pero el proceso de algunos datos
directamente en forma de caracteres tambien es importante. Las secuencias de caracteres (cadenas de
caracteres) se presenta como una unidad. Las provisiones para datos en cadenas de caracteres pueden
ser proporcionadas ya sea directamente a traves de un tipo de dato de cadena de caracteres (como en
SNOBOL4 y PL/I) o a traves de un tipo de datos caracter, con una cadena de caracteres considerada
como un arreglo lineal de caracteres (como en APL, Pascal, Ada, o C).
• Enumeracion.
Es comun en programacion tener una variable que puede tomar solo uno de un numero pequño de
valores. Muchos lenguajes recientes como Pascal, Ada o C, incluye un tipo de datos de enumeracion
que permite al programador definir y manipular esas variables en forma mas directa.
• Boleanos.
Un tipo de dato Booleano o logico es comun en la mayoria de los lenguajes. El tipo de dato booleano
consiste en objetos de datos que tienen uno de los dos valores falso o verdadero. En pascal y en Ada,
el tipo de dato booleano se considera simplemente una enumeracion definida por el lenguaje.
• Implementacion de datos elementales.
• Enumeracion.
La representacion de almacenamiento para un dato objeto de un tipo de enumeracion es directa: cada
valor en la secuencia de enumeraciones se representa en el tiempo de ejecucion por uno de los enteros
0,1,2,... Sin embargo como solo se incluyen una pequeña serie de valores y los valores nunca son
negativos, la representacion habitual de valores se acorta para omitir el bit del signo y solo usa bits
suficientes para el rango de valores requerido, como un valor de subrango.
• Booleanos.
La representacion de almacenamiento para un dato objeto booleano es simplemente un bit sencillo de
almacenamiento, no se proporciona ningun descriptor que designe el tipo de dato necesario. Como los
bits simles no pueden estar direccionados separadamente en la memoria, algunas veces se extiende
esta representacion de almacenaje para que sea una unidad simple, direccionada tal como un byte o
una palabra. Entonces los valores verdaderos y falsos pueden representarse en dos formas (0 = falso y
1 = verdadero).
• Caracteres.
Los valores de los datos caracter, son casi siempre soportados directamente por el hardware
subyacente y el sistema operativo por su uso en la entrada−salida. Por lo regular la implementacion de
un lenguaje emplea la misma representacion de almacenamiento para caracteres.
• Especificacion e implementacion de tipos de estructuras de datos.
• Declaraciones.
Las declaraciones para las estructuras de datos son mas complejas que aquellas para datos objetos
elementales, porque hay mas atributos que deben especificarse. El tiempo en el cual una declaracion
aparece en un programa, determina con frecuencia el tiempo de vida del dato objeto declarado
tambien.
• Arreglos.
2
Los arreglos y vectores son los tipos mas comunes de estructuras de datos en los lenguajes de
programacion. Un vector es una estructura de datos compuestas de un numero fijo de componentes
del mismo tipo, organizado como una simple secuencia lienal. Un componente de un vector se
selecciona dado su subindice, un entero (o valor de enumeracion) que indica la posicion del
componente en la secuencia. Un vector tambien es llamado "Arreglo Unidimensioinal" o "Arreglo
lineal". Un arreglo de dos dimensiones o matriz, tiene sus componentes organizados en una rejilla
rectangular de renglones y columnas. Se necesita ambos, el subindice del renglon y el subindice de la
columna, para seleccionar un componente de una matriz.
• Registros.
Una estructura de datos, compuesta de un numero fijo de componentes de diferentes tipos se llaman
por lo regular registros. Ambos, registros y vectores, son formas de estructuras de datos lineales de
longitud fija, pero los registros diferentes en dos formas:
♦ Los componentes de los registros pueden ser heterogeneos; por ejemplo, tipos de datos
mixtos, mas que homogeneos.
♦ Los componentes de los registros se nombran con nombres simbolicos (identificadores), mas
que con subindices enteros.
♦ Cadenas de caracteres.
Una cadena de caracteres es un dato objeto de una secuencia de caracteres. Un tipo de cadena
de caracteres es importante en la mayoria de lenguajes, debido en parte al uso de las
representaciones de caracteres de datos para entrada y salida.
♦ Datos objetos y apuntadores dinamicos.
Un tipo de dato elemental indicador (tambien llamado referencia, tipo de acceso o apuntador).
Un dato objeto indicador contiene la localidad de otro dato objeto o el indicador nulo, nada
(Null). Los indicadores son datos objeto que pueden ser simples variables o componentes de
arreglos y registros.
♦ Conjuntos.
Logicamente un conjunto puede considerarse como en matematicas: un conjunto es un dato
objeto que tiene una coleccion desordenada de distintos valores. En cambio, una lista es una
coleccion ordenada de valores, algunos de los cuales pueden repetirse. Las operaciones
basicas sobre conjunto son:
◊ Prueba de pertenencia membresia. Es el valor del dato X un miembro del conjunto S?
◊ Insercion y supresion de valores simples. Inserte el valor del dato X en la serie S, a
condicion de que no sea ya un miembro de S. Suprima al valor del dato X de S si es
miembro.
◊ Union, interseccion y diferencia de conjuntos. Dados dos conjuntos, S1 y S2 cree el
conjunto S3 que contiene a todos los miembros de ambos, S1 y S2 con supresiones
duplicadas (operacion de union), cree S3 para que contenga solo los valores que son
miembros de ambos S1 y S2 (operacion de interseccion) o
◊ cree S3 para que contenga solo los valores que hay en S1 pero no en S2 (operacion de
diferiencia).
◊ Archivos.
Un archivo es una estructura de datos con dos propiedades especiales:
3
⋅ Se representa principalmente sobre un dispositivo de almacenamiento
secundario.
⋅ Su tiempo de vida puede comprender un mayor alcance de tiempo que el del
programa que lo creo.
Los archivos secuenciales son los mas comunes, pero muchos lenguajes tambien
proporcionan archivos de acceso directo y archivos secuenciales indirectos. Se ven
dos usos generales para los archivos: para entrada y salida de datos de un ambiente
operativo externo y como un almacenamiento para borrar temporal para datos cuando
no se dispone de suficiente memoria de alta velocidad.
◊ Tipos de datos abstractos (definidos por el programador).
Un tipo de datos abstracto es un tipo de dato nuevo definido por el programador que
incluye:
⋅ La definicion de un conjunto de datos objeto, que por lo regular usan una o
mas definiciones de tipo.
⋅ La definicion de un conjunto de operaciones abstractas sobre aquellos datos
objeto, que usan una o mas definiciones de subprogramas para definir cada
operacion abstracta.
⋅ La encapsulacion de todo en tal forma que el usuario del tipo nuevo no puede
manipular los datos objeto del tipo, excepto por el uso de la operacion
definida.
Abstracion de datos (esto es, el diseño de los datos objeto abstractos y de las
operaciones sobre esos objetos) es una parte fundamental de la programacion.
Los tipos de datos abstractos genéricos.
Los tipos de datos primarios integrados en un lenguaje con frecuencia permiten al
programador declarar el tipo basico de una nueva clase de datos objeto y despues
especificar varios atributos de los datos objeto.
4
Descargar