Você está na página 1de 18

UNIVERSIDAD POPULAR DEL CESAR

ESTRUCTURA DE DATOS

Unidad 1:
TIPOS DE DATOS
Docente
JAIRO FRANCISCO SEOANES LEON
Ing. Sistemas – Universidad Popular del Cesar
Magister en Ingeniería de Sistemas y Computación
Universidad nacional de Colombia – Universidad Popular del Cesar
Agenda
Unidad 1. – Tipos de datos

INTRODUCCION

1.1 DATOS ESTATICOS

1.1.1 Datos simples


1.1.1.1 Ordinales: integer, boolean, char, enumerado, subrango.
1.1.1.2 No ordinales: reales.
1.1.2 Datos compuestos o estructurados (arreglos o arrays, registro)

1.2 DATOS DINAMICOS

1.2.1 Variables dinámicas (uso de punteros: apuntadores)


1.2.2 Ejercicios

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

INTRODUCCION
La representación de la información es fundamental en ciencias de la computación y en
informática. El propósito principal de la mayoría de los programas de computadoras es
almacenar y recuperar información, además de realizar cálculos. De modo práctico, los
requisitos de almacenamiento y tiempo de ejecución exigen que tales programas deban
organizar su información de un modo que soporte procesamiento eficiente.

Joyanes Aguilar y Zahonero Martínez


Estructuras de datos en java

“el estudio de estructuras de datos y de los algoritmos


que las manipulan constituye el núcleo central de la
informática y de la computación.”

Se pretende dar a conocer a los estudiantes las distintas formas de


organización de la información en Memoria Principal como herramienta
fundamental en la construcción de aplicaciones eficientes.

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

INTRODUCCION

¿Que es una
estructura de datos ?

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS
En los lenguajes de programación, el tipo de datos de una variable se refiere al conjunto
de valores que dicha variable puede tomar, y al conjunto de operaciones que se pueden
realizar con variables del mismo tipo

Por ejemplo los tipos de variable boolean solo pueden almacenar los valores {true,
false}, y la operaciones asociadas son negación (NOT), conjunción(AND) y disyunción
(OR)

Estándar
Simple
Estáticos No estándar
Compuestos
Tipo de dato
Lineales

Clasificación de los tipos de Dinámicos


datos No lineales

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS


Son aquellos tipos cuyo tamaño ocupado en memoria se define antes de que el programa
se ejecute (en tiempo de compilación) y no puede modificarse dicho tamaño durante la
ejecución del programa.

SIMPLES COMPUESTOS / ESTRUCTURADOS


ocupan solo un espacio de requieren mas de una casilla de
memoria memoria.

 Contienen un solo valor Se componen de otros tipos de datos


No están compuestos por otros tipos
Son atómicos: indivisibles (simples o compuestos) a su vez.

ESTANDAR Se pueden romper en subcampos que


Son la base para la programación(primitivos) tengan significado
Dependen del lenguaje empleado
En algunos lenguajes pueden utilizarse sin definirse
Arreglos (vectores y matrices)
Enteros, Reales, Caracteres , Boléanos Registros
Cadenas
NO ESTANDAR
Son tipos simples definidos por el usuario

Enumerados, subrango

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS - Simples

Dominio de valores
definido por el
usuario

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS - Compuestos


Arrays: Es un conjunto finito y ordenado de elementos homogéneos.

El numero de posiciones del array (tamaño) se define cuando este se crea. Puede ser de diferentes
dimensiones (numero de índices): unidimensional, bidimensionales, multidimensionales (n
dimensiones).

EDADES = 30 50 15 18 20
EDADES [0] EDADES [1] EDADES [2] EDADES [3] EDADES [4]

Tamaño del vector: numero de elementos (n)

Los vectores se almacenan en direcciones de adyacentes, contiguas, o consecutivas.


Dir. Contenido
EDADES

[0] 30
X 30
[1] 50 X+1 50
Memoria del
[2] 15 X+2 15
computador
X+3 18
[3] 18 X+4 20
[4] 20 …..

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS – Compuestos - arrays


Cada elemento del vector puede referenciarse como
una variable simple que ocupa una dirección de
memoria.
EDADES[3] = 5;

Arrays bidimensionales (Matrices): se considera un vector de vectores. Es un conjunto finito de


elementos del mismo tipo, en el que se necesita especificar dos índices para poder identificar cada
elemento.

El medio mas natural en el que se almacenan las matrices en memoria es el ORDEN DE FILA MAYOR.
algunos lenguajes utilizan EL ORDEN DE COLUMNA MAYOR

EDADES Dir. Contenido Dir. Contenido


… …
Fila 1-> 10 30 70
X 10 ( EDADES [1,1]) X 10 ( EDADES [1,1])

Fila 2-> 12 50 60 X+1 30 ( EDADES [1,2]) Fila 1 X+1 12 ( EDADES [2,1]) Columna 1
X+2 70 ( EDADES [1,3]) X+2 40 ( EDADES [3,1])
Fila 3-> 40 15 90 X+3 12 ( EDADES [2,1]) X+3 30 ( EDADES [1,2])
Fila 2 Columna 2
X+4 50 ( EDADES [2,2]) X+4 50 ( EDADES [2,2])
X+5 60 ( EDADES [2,3]) X+5 15 ( EDADES [3,2])
Col 1 Col 2 Col 3

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS – Compuestos - arrays


El numero de elementos (n) de una matriz esta dado por el numero
de filas X numero de columnas. n (f , c)= (3,3) = 9

Para referenciar un elemento de la matriz deben utilizarse dos índices,


el de filas y de la columna. EDADES[f , c] = m;

EJEMPLO: E = EDADES[3,2]

1 2 3 4 C
1
2 M[2,2]
Elemento M[F,C] del array bidimensional M
3
4
F M[F,C]

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS – Compuestos - registros


Los registros: son estructuras que permiten almacenar diferentes tipos de datos bajo una
misma variable.
Los arrays solo permiten almacenar elementos de un mismo tipo, en algunas ocasiones, se
requieren puede ser necesario almacenar información de diferentes tipos en una única estructura.
De aquí la importancia de los registros.

En POO el almacenamiento de diferentes tipos de información en un único nombre se realiza


mediante CLASES. Una clase es de tipo por referencia, es decir, los objetos se acceden mediante
una referencia, mientras que las estructuras o registro se acceden mediante valor.

 A las variables contenidas en un registro se las llama Persona


campos.
Campo Valor
 Los registros pueden contener como campos variables de Nombre
cualquier tipo, incluyendo vectores, otros registros, etc.
Edad
 Los nombres de campos no pueden duplicarse dentro de un nId
mismo registro.

 Una definición de registro debe especificar al menos un


campo.
PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR
Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS – Compuestos - registros

Fecha
Campo Valor Declaración del tipo
anio struct fecha y de la
variable varFecha.
mes
dia

Declaración de las variables


fechaNacimiento y fechaCasamiento
de tipo struct fecha.

Para acceder a los campos de una


variable tipo struct, se utiliza el “.”
cout << varFecha.anio;

Cada declaración de variables del


tipo de la estructura reserva
memoria
PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR
Unidad 1. Tipos de datos

TIPO DE DATOS – ESTÁTICOS – Compuestos - registros


La potencia real de las estructuras o registros se manifiesta
en su máxima expresión, cuando es utilizada para
almacenar lista de elementos.

Empleado
Campo Valor
struct empleado empleados[3];
Empleados[0] nombre[31]

Empleados[1] CI[10]

Empleados[2] num_dependiente

sueldo

nombre CI num_depen sueldo

Jairo Sistemas 12345 3000


Luis Electronica 65765 4000
Sergio Derecho 32432 5000

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

TIPO DE DATOS – DINAMICOS y PUNTEROS (APUNTADOR)


Las estructuras dinámicas, son colecciones de elementos (nodos), pueden aumentar o
disminuir su tamaño durante la ejecución de un programa (dinámica).

Son extremadamente flexibles, en éstas es fácil añadir nueva información, creando un


nuevo nodo e insertándolo entre los existentes, o eliminar información suprimiendo uno
de sus nodos.

Se pueden clasificar en dos tipos: Lineales y No Lineales

Lineales : Pilas , Colas, Listas Enlazadas

No Lineales: Arboles, Grafos

Las estructuras de datos dinámicas se representan con un nuevo tipo de dato llamado
Puntero, el cual, a diferencia de las variables tradicionales, sus valores no son datos, si
no, direcciones de memoria de otras variables.

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

Que es una estructura de datos?


En sentido general, una estructura de datos es cualquier representación de datos y sus
operaciones asociadas.

Cualquier representación de datos, desde un número entero o un número de coma


flotante, hasta una colección de elementos homogéneos y/o heterogéneos, almacenados
en la computadora, puede ser considerado como un estructura de datos.

La eficiencia de los programas sigue siendo una de


las características más importantes a considerar.

Los problemas complejos que procesan las


computadoras cada vez más obligan, sobre todo, a
pensar en su eficiencia dado el elevado tamaño que
suelen alcanzar.

Por tanto, los profesionales deben formarse en


técnicas de construcción de programas eficientes,
dentro de las cuales se encuentran las estructuras
de datos.

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

Punteros y apuntadores – variables dinámicas


Una variable de tipo puntero es una variable que contiene como valor direcciones o
posiciones de memoria de otras variables.

int n = 75;
Representación de almacenamiento en
memoria de una variable tradicional

cout << n ; // 75 cout << &n ; // 0x4fffd34

int *p = &n;
La variable p apunta a la dirección de n

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR


Unidad 1. Tipos de datos

Punteros y apuntadores – variables dinámicas


int n = 75; Memoria alta
int *p = &n;
p contiene el valor de
p 100 100, que es la posición
de memoria de n

*p es el valor del
elemento al que punta
p, es decir, 75;

n 75
cout << n; // 75
cout << &n; // 100
Memoria baja
cout << *p; // 75
cout << p ; // 100
cout << &p ; // 1000
PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR
Unidad 1. Tipos de datos

Punteros y apuntadores – variables dinámicas


char c;
char *p;
p=&c;

for(c=‘a’; c<=‘z’; c++){


cout << *p;
}

int i=10;
int j = 5; i=?
int *p = &i; j=?
*p = j; *p=?
p=&j;
j = 20;

PROGRAMA DE INGENIERIA DE SISTEMAS - UNIVERSIDAD POPULAR DEL CESAR

Você também pode gostar