ABSTRACTO (TDA)
Ing. Eduard Antonio Lozano Crdoba
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.
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
LOGO
VARIABLE
Es un componente de una memoria que tiene un
nombre y un tipo asociado. Una variable contiene
valores de este tipo.
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
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:
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
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
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.
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:
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).
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:
LOGO
www.themegallery.com
LISTAS
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
LOGO
www.themegallery.com
LOGO
www.themegallery.com
LOGO
Utch2009.wordpress.com