Anda di halaman 1dari 35

TIPO DE DATO

ABSTRACTO (TDA)
Ing. Eduard Antonio Lozano Crdoba

Nota: Toda la informacin fue copiada de:


Libros fsicos e Internet

LOGO
Actividad Extra Clases
#include <stdio.h>
#include <conio.h>
hola, yo no soy el autor de este programa,
int binario(int num); pero lo puedo explicar.
int n;
void main() Bueno pues te pide un numero entero
{ Lo guarda en Variable n
clrscr(); El valor n lo asigna a la funcion binario
printf("Dame un numero:"); entonces
scanf("%d",&n); con n en la mano va a la funcion y dice
binario(n); es n igual a cero ?
getch(); si es afirmativo regresa el numero "1"
} sino
int binario(int num) ese numero vuelve a asignarlo a la
{ funcion binario
if (num == 0) y comprueba si es cero o no (sino es ya
return 1;
else { binario(num/2);
sabes que hacer)
}
escribe siempre que pases n con la
printf("%d",num%2); funcion binario el residuo de n entre 2
}

LOGO
www.themegallery.com
LOGO
Un tipo de dato se define como:
(1) Un conjunto de valores, aquellos que puede tomar
cualquier dato de dicho tipo.
(2) Un conjunto de operaciones, definidas sobre dichos
valores, que permiten operar adecuadamente con
ellos.

En la mayora de los lenguajes de programacin es


necesario realizar la declaracin de tipos, esto es,
asignar un tipo de dato a cada una de las variables (a
veces tambin las constantes) del programa.
Clasificacin del conjunto de datos
Datos elementales.
Datos Estructurados o Estructuras de Datos.
LOGO
www.themegallery.com
INTRODUCCIN

En general conocemos los tipos de datos


bsicos de los lenguajes, a saber:
Entero : int
Real : real
Boolean : boolean
Carcter : char
Estos varan de un lenguaje a otro.

LOGO
DEFINICIN:
Un tipo de dato abstracto (TDA) es un modelo matemtico,
junto con varias operaciones definidas sobre ese modelo.
Los TDA se representan en funcin de los tipos de datos y los
operadores manejados por ese lenguaje.
Para representar los TDA se usan estructuras de datos que
estn constituidas por conjuntos de variables (a veces de
diferente tipo).

1. Memoria
2. Variable
3. Nombre
4. Valor
5. Tipo

LOGO
VALOR

Es un elemento de algn conjunto con un tipo.


3 es un valor del conjunto Z asociado con el tipo
integer.
TRUE es un valor de conjunto {T, F} asociado
con el tipo boolean.

LOGO
VARIABLE
Es un componente de una memoria que tiene un
nombre y un tipo asociado. Una variable contiene
valores de este tipo.

Reglas para definicin de variables


Pueden tener hasta 40 caracteres.
Debe empezar obligatoriamente con una letra (a-z /
A-Z), el resto de los dgitos pueden ser nmeros.
No pueden contener espacios en blanco, se pueden
incluir caracteres especiales como el guin o el punto.

LOGO
MEMORIA
Es a menudo descrita como una coleccin de cajas con datos
variables que contienen valores.
Una forma intuitiva puede ser el mapeo memoria: nombre valor
int x, y;
{
x = 3;
y = x + 2;
}
Decimos que int es un tipo del lenguaje y que x e y son de tipo int.
Es decir que contienen valores de tipo int.
El nmero 3 es almacenado.
La expresin x + 2 evala un valor entero.
Dado que x e y contienen valores enteros matemticos, entonces
ciertas operaciones matemticas son permitidas: + y -. Para otros
tipos como reales, void, boolean aplica lo mismo.

LOGO
DATOS DE TIPO ENTERO

Este tipo representa el conjunto de los nmeros


enteros. Dentro del ordenador los enteros se van
a representar como nmeros en binario o en
base dos (utilizando slo ceros y unos). Para su
almacenamiento se utilizarn un nmero fijo de
bits, que dependiendo de su nmero nos darn
distintos tipos de dato entero. Por ejemplo el
nmero 35)10 = 100011)2 Para pasar de un
nmero en decimal a cualquier

LOGO
DATOS DE TIPO REAL
Este tipo es una representacin del conjunto de nmeros
reales. La transformacin que se realiza consiste,
bsicamente, en expresar el nmero de la forma N = m * Be,
donde N es el nmero real a representar, B es la base
utilizada (prefijada para cada computadora), e es el exponente
del nmero y m es la "mantisa". Dentro de la computadora, el
nmero se almacena uniendo el signo, el exponente y la
mantisa, cada uno con un nmero de bits prefijado. Aspectos
a tener en cuenta:

- el nmero de bits utilizado para almacenar la mantisa va a


determinar la precisin de la representacin. La representacin
de los reales no es unvoca, ya que lo que verdaderamente se
representan son intervalos de la recta real. Por ejemplo, si
tenemos 3 decimales de precisin, tanto el nmero 15.3244
como el 15.3243 se representarn como 15.324.

LOGO
DATOS DE TIPO LGICO
Este tipo de datos representan valores de tipo lgico
o booleano. Estos datos pueden tomar los valores
verdadero (uno) o falso (cero). Sobre los valores
lgicos actan los operadores lgicos: AND, OR,
NOT, NAND, NOR y XOR. En la siguiente tabla
podemos ver todos los posibles resultados de los
distintos operadores lgicos. (V = verdad, F = falso).
ejemplos: - 5 < 6, con resultado V(erdadero).
- 10.5 = 10.58, con resultado F(also).
- "B" "F", con resultado F.
- (5 + 7) (2 - 6), con resultado V.

LOGO
LOGO
www.themegallery.com
TIPO DE DATOS CARCTER

Los datos de tipo carcter representan


elementos individuales de conjuntos finitos y
ordenados de caracteres. Cada computadora
puede representar un conjunto de caracteres
distintos, siendo el ms extendido el ASCII.
La nica operacin interna que tiene este tipo es
la asignacin de un carcter a una variable.

LOGO
TIPO DE DATOS ENUMERADO
Los datos de este tipo se definen explcitamente
dando un conjunto finito de valores. La ventaja del
uso de estos tipos de datos est en poder enumerar
de forma ms real los posibles valores que pueda
tomar una variable. El siguiente ejemplo define el
tipo de dato DiasSemana que toma todos los das
de la semana. De esta forma evitamos tener que
pensar en otra representacin menos intuitiva como
sera identificar el lunes con un cero, el martes con
un uno, etc.
DiasSemana = (lunes, martes, mircoles, jueves,
viernes, sbado, domingo)

LOGO
TIPO DE DATOS SUBRANGO

Este tipo se define a partir del tipo entero,


carcter. Un dato de tipo subrango puede tomar
determinados valores del tipo original, a partir
del cual se ha definido el subrango (entre un
mnimo y un mximo). Con los datos del tipo
subrango se pueden realizar las mismas
operaciones definidas para el tipo original.
ejemplo: - 0..9
- teniendo en cuenta el ejemplo anterior
podemos definir el subrango lunes...Viernes
- "a".."z".

LOGO
Tipos de datos estndar de C y C++
Todos los programas gestionan algunos tipos de informacin que normalmente se pueden representar utilizando
uno de los ocho (8) tipos de datos bsicos de C y C++: texto o char, valores enteros o int, valores de coma flotante o
flota, valores en como flotante de doble precisin o double (long double), enumerados o enum, sin valor o void,
punteros y booleanos.
1. Texto (tipo de dato char) est constituido por caracteres simples, como a, Z, , 3 y cadenas, como Esto es una
prueba (normalmente, de 8 bits o un byte por carcter, con un rango de 0 a 255).
2. Los valores enteros (tipo de dato int) son aquellos nmeros que se aprendieron a contar (1, 4, -2, 1354);
normalmente, tienen un tamao de 16 bits, 2 bytes o una palabra, con rango de -32768 a 32767. En Windows 98 y
Windows NT, los valores enteros tienen un tamao de 32 bits con un rango de -2147483648 a 2147483647.
3. Los valores en coma flotante (tipo de dato float) son nmeros que tienen una parte fraccional, como por ejemplo pi
(3,14159), y exponentes (7,5631021). Tambin se conocen como nmeros reales (normalmente, son de 32 bits, 4 bytes
o 2 palabras, con un rango de +/-3,4E-38 a 3,4E+38).
4. Los valores en coma flotante de doble precisin (tipo de dato double) tienen un rango superior (normalmente de 64
bits, 8 bytes 4 palabras, con un rango de 1, 7E-308 a 1, 7E+308). Los valores en coma flotante long double
(doble precisin largos) son incluso ms precisos (normalmente, tamao de 80 bits 5 palabras, con un rango de
+/-1,18E-4932 a 1,18E-4932).
5. los tipos de datos enumerados (tipo de dato enum) permiten al usuario definir tipos de datos.
6. El tipo void se utiliza para especificar valores que ocupan cero bits y no tienen valor (este tipo tambin se puede
utilizar para la creacin de punteros genricos.
7. El tipo de dato puntero no contiene informacin en el mismo sentido que el resto de los tipos de datos; en su lugar,
cada puntero contiene la direccin de la posicin de memoria que almacena el dato actual.
8. El tipo de dato bool, al que se le puede asignar las constantes true (verdadero) y false (falso).

LOGO
www.themegallery.com
LAS ESTRUCTURAS DE DATOS
Llamamos estructura de datos o tipo de dato
estructurado a los tipos de datos construidos a partir
de otros tipos de datos.
ejemplos:
- tipo de datos complejo formado por una pareja de
datos reales.
- tipo de datos fecha compuesto por tres enteros.
- tipo de datos direccin formado por cadenas de
caracteres
(calle, poblacin,...), y por enteros y caracteres
(portal, piso y letra, ...).

LOGO
CLASIFICACIN.

Pueden realizarse diferentes clasificaciones.


Atendiendo al tipo de los datos que la componen
podemos distinguir entre estructuras de datos:
homogneas, cuando todos los datos
elementales que la forman son del mismo tipo.
heterogneas, en caso contrario.

LOGO
www.themegallery.com
Si en lo que nos fijamos es en la forma en que se almacenan y
se gestionan en memoria las estructuras de datos, podemos
distinguir entre las:

estticas si poseen un nmero fijo de elementos. Los ejemplos


ms tpicos son los arrays y registros. Su mayor desventaja es la
necesidad de tener que definir el nmero mximo de elementos
que podr tener la estructura. Su mayor ventaja es la rapidez de
acceso a cada elemento individual de la estructura.
dinmicas si el nmero de elementos que contienen puede
variar durante la ejecucin del programa. Su principal
inconveniente es la lentitud en el acceso, ya que normalmente se
realiza de forma secuencial. La ventaja es sin embargo
importante, la posibilidad de aumentar o disminuir en tiempo de
ejecucin el nmero de elementos que componen la estructura.

LOGO
www.themegallery.com
Por la forma de acceder a la estructura de datos
encontramos:
acceso por nombre, es decir, para acceder a cada
elemento de la estructura de datos es necesario conocer el
nombre (p. e. los registros).
acceso por posicin, donde para acceder a un elemento
de la E. D. o bien se conoce su posicin, o bien el acceso
se reduce a ciertos elementos (el primero, el ltimo, etc.).
Ejemplos pueden ser las estructuras matriciales (matrices,
vectores, etc.), las Pilas y las Colas.
acceso por clave, en la que para acceder a un
determinado elemento es preciso conocer nicamente el
contenido de uno de sus campos, normalmente llamado
clave. Ejemplos son todas las estructuras ordenadas por su
contenido, como es el caso de los rboles.

LOGO
www.themegallery.com
TIPOS DE ESTRUCTURAS DE
DATOS.
ARRAYS: Un array es una estructura de datos
formada por una cantidad fija de datos de un
mismo tipo, cada uno de los cuales tiene
asociado uno o ms ndices que determinan de
forma unvoca la posicin del dato en el array.

LOGO
www.themegallery.com
CADENAS DE CARACTERES
Una cadena de caracteres, tambin conocida como
"string", es una estructura de datos formada por una
secuencia de caracteres. En una variable de tipo string
se puede almacenar una frase, un nombre, una
matricula de un coche, etc.
Algunas de las operaciones ms usuales que se
pueden realizar sobre datos de tipo cadena
son:
- concatenacin (+): forma una nueva cadena a partir
de la unin de otras dos puestas una a
continuacin de la otra.
Por ejemplo: Hola + Colega = HolaColega

LOGO
www.themegallery.com
- extraccin de subcadena: permite formar una nueva cadena a
partir de otra ya existente.
Si FRASE es una variable de tipo string que contiene la cadena
"Hola Colega", entonces FRASE(6:11) es la cadena "Colega" (se
supone en este caso que las cadenas comienzan por la posicin
nmero uno).

- comparacin de cadenas: esta operacin permite determinar si


una cadena es menor, igual o mayor que otra dada. El criterio
para determinar si una cadena es mayor o menor que otra es el
orden alfabtico, por ejemplo,
"Moto" es mayor que "Mota".

- obtencin de longitud: la longitud de una cadena es un


dato de tipo entero, cuyo valor es el nmero de caracteres
que contiene dicha cadena.

LOGO
www.themegallery.com
REGISTRO
Un registro es una estructura de datos que engloba
varios elementos (simples o estructurados) y que
contiene informacin relativa a un mismo ente.
Cada unin informativa sobre un objeto particular
se denomina registro. A cada uno de los
elementos del registro se le denomina campo.
Cada uno de los campos de un registro puede ser
de diferente naturaleza (tipo) por lo que son un
ejemplo claro de estructura de datos heterognea.
Para definir un registro es necesario especificar el
nombre y el tipo de cada campo.

LOGO
www.themegallery.com
EJEMPLO:

la ficha de un empleado en una empresa puede ver como un


registro con los siguientes
campos:
- NIF (string)
- Nombre (string)
- Apellido1 (string)
- Apellido2 (string)
- N_Hijos (entero)
- NSS (string)
- Fecha_Nacimiento (fecha)
donde tipo_fecha es otro registro con los campos:
- da (subrango 1..31)
- mes (subrango 1..12)
- ao (entero)

LOGO
www.themegallery.com
LISTAS

Una lista est formada por un nmero variable de


datos (elementos) de un mismo tipo (homognea), que
forman una secuencia lineal. Cada elemento, salvo el
primero, tiene un predecesor y todos los elementos
menos el ltimo tienen un sucesor. La lista es una
estructuradinmica.
Se puede construir una lista usando una estructura de
datos formada por registros de al menos dos campos,
en que uno de ellos contiene informacin que permite
localizar al siguiente

LOGO
www.themegallery.com
LOGO
www.themegallery.com
Las operaciones ms habituales son las
siguientes:
- aadir un elemento a la lista en cualquier
posicin de sta.
- eliminar un elemento de la lista de cualquier
posicin.
- acceso al primer elemento de la lista.
- acceso al siguiente elemento de la lista.
- comprobar si la lista est o no vaca.

LOGO
www.themegallery.com
Si en una lista slo se permite aadir (push) y
eliminar (pop) elementos por uno de los
extremos (la cima), hablamos de PILA o LIFO (
Last In, First Out). En este tipo de estructura, el
ltimo elemento introducido, es el primero que
sale.

LOGO
www.themegallery.com
Si la operacin de aadir (push) se realiza
siempre por un extremos de la lista y la de
eliminar por el extremo opuesto, hablamos de
una COLA o FIFO (First In, First Out). En una
COLA, el primer elemento que entra es el primer
elemento que sale. El siguiente esquema
representa una Cola:

LOGO
www.themegallery.com
Las diferencias bsicas entre las listas y los
arrays:
- la lista es una estructura de datos dinmica y,
por tanto, ocupa en memoria el espacio necesario
para albergar los elementos que contiene en cada
instante.
- las listas no son direccionables, para acceder a
un elemento hay que recorrer los anteriores, es
decir, en un instante dado slo hay un elemento
accesible de forma directa.

LOGO
www.themegallery.com
RBOLES

Un rbol es una estructura de datos formada por elementos


del mismo tipo, llamados nodos, relacionados de tal modo
que el rbol puede descomponerse en:
1. un nodo llamado raz.
2. un conjunto finito de objetos de tipo rbol llamados
subrboles del nodo raz.

Un nodo puede ser de diferentes tipos:


Nodo hijo: aquel que depende directamente de otro
superior en la jerarqua.
Nodo padre: aquel que posee al menos un hijo.
Nodo raz: el nico nodo en la jerarqua que no tiene padre.
Nodo hoja: aquel nodo sin hijos.

LOGO
www.themegallery.com
LOGO
www.themegallery.com
LOGO

Utch2009.wordpress.com

Anda mungkin juga menyukai