SlideShare una empresa de Scribd logo
Estructuras y Tipos de Datos
Definiciones Básicas
TEMA I - Definiciones Básicas
CONTENIDO
- Nociones Preliminares
- Ciclo De Desarrollo De Programas
- Datos
- Tipo Abstracto De Datos
- Tipos de Datos
- Estructura de Datos
Nociones Preliminares
Hecho, acción, punto, referencia que por si sólo no reviste ninguna
relevancia, a menos que se interrelacione con otros datos o
hechos que procesados producen información.
DATO
Ejemplo:
12  ???
12 + mes  información (diciembre)
Conjunto de datos relacionados entre sí y procesados
INFORMACION
Obtendremos información después que los datos son procesados
Nociones Preliminares
= DATOS +
PROGRAMA
Es la definición de un espacio físico en la memoria del computador, con
capacidad de almacenar datos; de acuerdo al tipo de dato de la
variable, ésta tendrá diferente estructura y tamaño, ya que su
representación será diferente
VARIABLE
INSTRUCCIONES
acciones
Variables
(Estructuras de datos)
Nociones Preliminares
PROGRAMA
Es una secuencia finita de pasos, cada una de los cuales tiene un
significado preciso y puede “ejecutarse” en un tiempo finito. Además un
algoritmo es independiente de los valores de entrada y debe tener fin.
ALGORITMO
Para escribirlo
ALGORITMOS
Escrito en Leng.
Natural
INFORMAL
PSEUDO-CODIGO
Mezcla leng. Natural con formalidad y reglas
sintácticas de leng. de prog.
Escrito en Leng. de
Prog.
PROGRAMA
Nociones Preliminares
PROCESO DE ABSTRACCION
Lógica que seguimos al tratar de dar solución a los problemas del
mundo real, utilizando la ciencia de la computación
Nociones Preliminares
MODELO
Es una representación simplificada de la realidad. Es una abstracción y
simplificación de un problema real, que de manera ideal incorpora los
elementos y relaciones esenciales del problema real (BIERMAN,
BONINI, HAUSMAN: 1994)
CLASIFICACION DE ACUERDO A SU REPRESENTACION
Icónicos
Analógicos
Simbólicos
Nociones Preliminares
Modelos Icónicos
Son aquellos que representan algunas aspectos de un Sistema, en forma
visual o gráfica (maqueta)
Modelos Analógicos
Utilizan un conjunto de características para representar otro conjunto
de características que posee el objeto de interés.
Modelos Simbólicos
Emplean símbolos para representar las propiedades de la entidad
estudiada
Símbolos matemáticos Símbolos no matemáticos
Modelos Matemáticos Modelos Gráficos
Ciclo de Desarrollo de Programas
MODELO EN CASCADA
Formulación y especificación
del problema
Diseño de la Solución
(Modelo-Algoritmo)
Codificación del programa
Pruebas
Documentación
Ciclo de Desarrollo de Programas
1.- Formulación y especificación del problema
- Análisis del Sistema
2.- Diseño de la Solución
- Se concentra en el COMO
- Análisis de los requisitos del programa (QUE)
-Se enfoca básicamente en
la estructura de los datos
la arquitectura del programa el detalle procedimental (algoritmos)
la caracterización de la interfaz
(diseño de pantallas, reportes, etc.)
Lista de Requerimientos
Ciclo de Desarrollo de Programas
3.- Implementación (Codificación)
Se toma el diseño y se traduce a un lenguaje de
programación
4.- Pruebas
- Se concentra en la lógica interna del software
- Procura asegurar que el
software
Externa
Interna
programa de computación o
software
* Cubra los requisitos
* Produzca los resultados esperados
5.- Documentación
Se realiza durante todo
el desarrollo del
programa
Diseño de la Solución
… Mas del Diseño
Se debe prestar toda la atención posible al diseño de la solución, en
esta etapa se define la forma en que se representará la solución
UN MODELO SENCILLO PARA EL DISEÑO DE ESTRUCTURAS DE DATOS
Se analizan, entre otras cosas:
- Los datos, su definición e interrelación
-- La forma como estarán organizados
Modelo Matemático
Algoritmo Informal
ADT
Pseudo-código
Estructura de Datos
Programa
Datos
Algoritmos
Los programas, son formulaciones concretas de algoritmos abstractos basados en ciertas
representaciones y "estructuras de datos". Están constituidos básicamente de
instrucciones y datos
clasificar las variable
Leng. de Prog.
Programa
Necesitamos
Tipos de Datos
Datos
Los Datos, teóricamente ante todo, son abstracciones de fenómenos reales y se formulan
de preferencia como estructuras abstractas que no necesariamente se elaboran en
lenguajes comunes de programación
De Entrada
De Salida
De Proceso
Identificados los datos del problema, deben ser representados en el prog. como variables de memoria
Tipo Abstracto de Datos
Introducción
Los tipos básicos de datos que ofrecen los lenguajes de
programación no son suficientes para representar la gran variedad
de soluciones de los problemas planteados
Tipo Abstracto de Datos
El Programador define
sus propios T.D.
Concepto parecido al de un procedimiento, está formado por datos e
instrucciones los cuales están interrelacionados y encapsulados.
Tipo Abstracto de Datos
Definición
Un Tipo Abstracto de Datos (TAD) como un modelo matemático con
varias operaciones definidas sobre el modelo
Ejemplo
Conjunto de enteros.
Operaciones:
Unión(A,B): tomamos los elementos comunes y no comunes de A y de B
Intersección(A,B): Tomamos los elementos comunes de A y B.
Diferencia(A,B): Tomamos los elementos que están en A y no están en B.
Modelo: Podemos modelar un conjunto por extensión o por compresión
El programador define en el T.A.D. solo aquellas operaciones que necesita en el
programa.
Tipo Abstracto de Datos
Características
• Encapsulamiento de subtareas en un lugar del TAD: los procedimientos y
funciones así como los datos se ubican físicamente en un lugar específico del
programa y el acceso a los datos se realiza solo por las operaciones definidas
en el TAD, es decir, los datos no pueden ser tocados por procedimientos o
funciones que estén fuera del TAD
• Generalización de tipos primitivos: el programador define sus propias
operaciones.
Definido el Tipo Abstracto de Datos, se requiere que se implemente o codifique
Tipo Abstracto de Datos
Implementación
Codificación
T.A.D. MODELO DE DATOS OPERACIONES
= +
OBJETO
ESTRUCTURAS DE
DATOS
METODOS
= +
Tipos de Datos
Definición
El tipo de dato de una variable de un programa es el conjunto de
posibles valores que una variable de ese tipo puede tomar
Ejemplo
B: sólo puede tomar valores TRUE y FALSE.
C: sólo puede tomar valores carácter del juego de caracteres
definidos en la tabla de símbolos o caracteres manejados
por el lenguaje de programación.
Var B: boolen;
C: char;
Los tipos de las variables B y C son lógicos y caracteres respectivamenteque
Tipos de Datos
… Cont
El T.D. no define físicamente la variable ni le asigna valor alguno, lo que define
son los valores que esta puede tomar
El número de valores que pertenecen a un tipo T se conoce como la
cardinalidad del tipo, esta sirve de base para determinar la cantidad de espacio
físico que se necesita para almacenar una variable de ese tipo.
Tipos de Datos
Clasificación (Base Pascal)
Los tipos básicos de datos dependen de los lenguajes de programación y
varían de uno a otro
Tipos
de
Datos
Elementales
Estructurados
Escalares (enumerados)
Sub-rango
Arreglos
Registros
Archivos
Conjuntos
Definidos por el programador (TAD)
Enteros (integer)
Lógicos (boolean)
Carácter (char)
Real (real)
Standard
Tipos de Datos
Clasificación (Base Java)
Tipos
de
Datos
Primitivos
Compuestos
Lógicos (boolean)
Carácter (char)
Vectores (multidimensionales)
Cadenas de caracteres (String)
byte (1 byte)
short (2 bytes)
int (4 bytes)
long (8 bytes)
Enteros
float (4 bytes)
double (8 bytes)
Real
Conjuntos
Referenciados
Definidos por el programador (Clases y Objetos)
Textos
Binarios
Archivos (File)
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Carácter (Char)
CONST blanco = " ";
por = "*";
VAR letra: char;
- Surge de la necesidad de manejar constantes y variables cuyos valores
sean caracteres aislados.
- Variable declarada tipo char solo puede tomar valores que son caracteres
de nuestro juego de caracteres
- Los dos conjuntos de caracteres más usados son:
ASCII (o ISO) compuesto por 128 caracteres
ASCII extendido compuesto por 256 caracteres
EBCDIC con 256 fue diseñado por IBM.
- La Representación Interna es binaria.
- La memoria ocupada por una variable tipo char es de 1 byte (8 bits)
Ejemplo
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Lógico (Boolean)
VAR varlogica: boolean
- Surgen de la necesidad de manejar variables que puedan asumir solo 2
estados
- La Representación Interna es binaria.
- La memoria ocupada es de 1 byte, aunque de ser posible podría
representarse en 1 bit.
Ejemplo
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Entero (Integer)
VAR varentera: integer
- Surgen de la necesidad de manejar variables cuyos valores posibles
sean enteros
- La Representación Interna es binaria.
- La memoria ocupada es de es de 2 bytes
Ejemplo
- Computador tiene memoria finita, entonces se representa un
subconjuntodel conjunto Z. Por lo general se utilizan 2 bytes para su
representación lo que nos permite definir los enteros entre -32.765 y
32767 aproximadamente
- Algunos lenguajes de programación ofrecen representación en 1, 2, 4 y 8
bytes
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Real (real)
- Se utilizan para representar variables que almacenan valores reales
- La representación interna es punto flotante
- La memoria ocupada varía dependiendo del compilador y de la
arquitectura de la máquina
Ejemplo
- La representación punto flotante utiliza tres elementos para definir un
número: base, exponente y mantisa (es similar a la notación científica),
N = mantisa * (Base)(exponente)
2832 = 2832*100
0,2832 = 2832*10-4
2832000 = 2832*103
-28,32 = -2832*10-2
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Real (real) … Cont
- Internamente para su representación se disponen unos bits para la
mantisa, otros para el exponente, además de 1 bit para el signo de la
mantisa y 1 bit para el signo del exponente.
Vamos a almacenar 1,76 y se utilizan 16 bits para representar números
reales, entonces
Número real: 1,76 = 176 * 10-2
Ejemplo
Representación interna
mantisa
R
exponente
Signo de la
mantisa
Signo del
exponente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0
1,76
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Real (real) … Cont
Características:
Magnitud: está referida a cuan grande es el número que podemos
representar (por ejemplo 1075)
Precisión: consiste en la cantidad de dígitos que podemos representar
del número
Dos tipos de Errores:
Error representacional: se produce cuando no podemos representar
todos los dígitos de un número real en la variable
Error computacional: ocurre cuando se opera con números de
magnitudes muy disímiles originando que se pierdan algunos datos
intermedios al no poseer el computador capacidad de memoria suficiente
para manejarlos simultáneamente
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Real (real) … Cont
Error representacional:
Supongamos la siguiente representación interna de los números reales
Queremos almacenar el 15,56
Punto flotante( 15,56 ) = 1556 * 10-2
Ejemplos
La mantisa tiene 8 bits
por lo tanto podemos representar el 15 y el 16 pero no el 15,56
porque 1556 no se puede escribir con 8 bits
mantisa exponente
Signo de la mantisa Signo del exponente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Tipos de Datos
Tipos de Datos Elementales – Tipos Standard
Tipo Real (real) … Cont
Error computacional:
Supongamos la siguiente representación interna de los números reales
Queremos realizar la siguiente operación: 2 + 0,76 = 2,76
Punto flotante( 2 ) = 2 * 100
Punto flotante( 0,76 ) = 76 * 10-2
Ejemplos
mantisa
A
exponente
Signo de la mantisa Signo del exponente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
La mantisa tiene 8 bits,
por lo tanto podemos representar el 2 y el 76 pero no el 2,76
porque Punto flotante( 2,76 ) = 276 * 10-2
y 276 no se puede escribir con 8 bits
Tipos de Datos
Tipos de Datos Elementales – Tipos Escalares
TYPE moneda = (lira, bolívar, peso, peseta, dollar)
dia = (Lunes, artes,Miercoles,Jueves,Viernes,Sabado,Domingo)
VAR a : moneda; d : dia;
a := bolívar;
- Un tipo escalar es un identificador de tipo al cual se le define un conjunto de
identificadores que indican los valores que pueden tomar una variable de ese tipo
- Los únicos valores que se le pueden asignar a una variable de este tipo son los
especificados en la lista de identificadores
- El conjunto de identificadores se puede utilizar como constantes en el programa
Ejemplo
- La representación interna del tipo escalar es binaria, similar a los enteros
- Son tipos enumerados, se comportan como los enteros
Tipos de Datos
Tipos de Datos Elementales – Tipos Subrango
CONST lim_inf = 1000
lim_sup = 2000;
TYPE V = lim_inf .. lim_sup
Var Mes: 1 .. 12;
Año: V;
- Nos permiten definir variables cuyos valores están dentro de ciertos límites.
Ejemplo
- Los límites inferior y superior del subrango deben ser constantes
- Se comportan igual a los enteros. Su representación interna es binaria
Los tipos enteros, carácter, escalares, subrango y lógicos se consideran
también tipos ordinales, porque cada valor de un tipo ordinal tiene un único
predecesor y un único sucesor.
Tipos de Datos
Tipos de Datos Estructurados
Es la conglomeración o yuxtaposición de tipos elementales
El almacenamiento en la memoria de la computadora es, en una primera
aproximación, arreglos de celdas individuales de almacenamiento llamadas
"palabras". Los índices de las palabras se denominan direcciones.
El tamaño de la palabra varía de un computador a otro, por lo general es de 2 bytes
Memoria
1
2
:
:
:
*
*
*
*
.
.
I0
:
:
:
:
*
*
*
*
*
:
N
Dirección
de inicio
Arreglo en memoria
(utiliza un conjunto
de palabras)
Palabra
Tipos de Datos
Tipos de Datos Estructurados - Arreglo
Es un tipo estructurado conformado por un conjunto de componentes todas del mismo tipo,
llamado tipo base T.
Representación Interna: Mapeo del arreglo (abstracto) con componentes de tipo T en el
almacenamiento, que es un arreglo con componentes de tipo palabra.
Memoria
1
2
:
:
:
*
*
*
*
.
.
I0
:
:
:
:
*
*
*
*
*
:
N
Dirección
de inicio
Arreglo en memoria
(utiliza un conjunto
de palabras)
Palabra
Organización secuencial y contigua en memoria.
Acceso aleatorio a través de un índice que indica el componente que se desea acceder en el
arreglo
Tipos de Datos
Tipos de Datos Estructurados - Arreglo
El tamaño del arreglo depende del tamaño del tipo base
Memoria ocupada = n*s
n: número de componentes
s: número de palabras que ocupa un
componente (tamaño del tipo base)
donde
Dirección i del j-ésimo componente
i = i0 + j*s
i0: dirección de inicio del arreglo
j: componente que se desea acceder.
s: número de palabras que ocupa un
componente
donde
Tipos de Datos
Tipos de Datos Estructurados - Registro
Es un tipo estructurado conformado por el producto cartesiano de varios tipos. Los componentes
suelen llamarse campos del registro.
Representación Interna: se mapean en memoria por la simple yuxtaposición de sus
componentes.
Organización de las componentes del registro es contigua en memoria
Acceso se realiza enunciando la variable tipo registro mas el campo que se desea acceder.
Tipos de Datos
Tipos de Datos Estructurados - Registro
El espacio ocupado en memoria se obtendría sumando el tamaño de todos los
componentes que tiene el registro.
Memoria ocupada = s1+s2+ ... +sn
n: número de componentes
s: número de palabras que ocupa un
componente (tamaño del tipo base)
donde
La dirección ki del componente o campo si
ki = s1+s2+ ... +si-1
sj: tamaño del j-ésimo componente 1  j  i-1
i: componente que se desea acceder.
ki: dirección relativa al origen o inicio del
registro.
donde
Tipos de Datos
Tipos de Datos Estructurados - Conjunto
Es una colección de elementos todas del mismo tipo T, constituyendo T el tipo base del conjunto.
Se representan por medio de una función característica C(S).
Acceso mediante la inspección de sus elementos a través de la relación de pertenencia.
El tipo base de un conjunto debe ser elemental.
Arreglo de valores lógicos, cuyo i-ésimo componente especifica
la presencia o ausencia del valor i en el conjunto, es decir,
significa "i pertenece o no al conjunto S".
C(si)  (i está en S)
i in S (in es el operador de pertenencia de Pascal)
El tamaño del arreglo está determinado por la cardinalidad del tipo base
Tipos de Datos
Tipos de Datos Estructurados - Conjunto
Sea 0..9 el universo de un conjunto S, (los valores posibles están entre 0 y 9)
Si S = {3, 4, 7}, la función característica C(S) de S sería
Si realizamos C(1) = 1 está en S = F
C(4) = 4 está en S = V
Esto lo representaremos como un arreglo lógico, con un tipo base 0..9, de la siguiente manera
Ejemplo
C(S) = ( F F F T T F F T F F)
0 1 2 3 4 5 6 7 8 9
C(S). =
En memoria la secuencia de valores lógicos se representa como una cadena de bits. Esto
permite realizar operaciones básicas mediante prueba de bits muy eficientemente.
Se recomienda usar un tipo conjunto sólo en caso de tipos base pequeños
0 1 2 3 4 5 6 7 8 9
F F F T T F F T F F
Estructuras de Datos
Estructura
Definición 1: Distribución y orden de las partes.
Estructura de Datos
Definición 2: Armadura que sustenta alguna cosa.
Definición Previa: representación física de una variable.
Definición: la representación física de un modelo matemático
mediante el uso de variables que pueden ser de diferentes tipos.
Estructuras de Datos
Clasificación
Tomando como base el lenguaje de programación PASCAL
Estructura
de Datos
Fundamentales
Dinámicas o
Avanzadas
Arreglos o vectores
Registros
Conjuntos
Secuencia
Listas
Arboles
Grafos
Hashing
Colas
Definidos por el programador
Elementales
Enteros (integer)
Lógicos (boolean)
Carácter (char)
Real (real)
Escalares
Subrango
Estructuras de Datos
Estructura de Datos Fundamentales
Son aquellas de tamaño fijo y no se modifican durante la ejecución del
programa.
Estructura de Datos Fundamentales - Elementales
Las estructuras fundamentales son la base para construir
estructuras más complejas en un lenguaje de programación,
conocidas como estructuras avanzadas.
Estudiadas basado en la representación de los tipos de datos
Nos enfocaremos en el resto de las estructuras de datos
Estructuras de Datos
Estructuras de Datos Fundamentales - Arreglo
Es una estructura fundamental formada por un número fijo de componentes (definido cuando se
edita el programa) todas del mismo tipo.
Permite crear un conjunto de variables que van a estar relacionadas bajo un mismo nombre y
que son todas del mismo tipo, por eso se dice que es una estructura homogénea.
Ejemplo usando PASCAL
VAR a: array[ lim_inf ... lim_sup ] of T (T es el tipo base del arreglo)
lim_inf y lim_sup definen el número de componentes del arreglo, estos deben ser constantes y
pertenecer a un tipo ordinal.
Estructuras de Datos
Estructuras de Datos Fundamentales - Arreglo
Acceso al arreglo es aleatorio,
Arreglo A
1
2
:
:
:
*
*
*
*
.
.
i
:
:
:
*
*
*
*
*
:
N
índices del
arreglo
Celda o componente i
del arreglo
Acceso
A[ i ]
índice que selecciona la posición de una celda i
del arreglo
Nombre del
arreglo
i debe ser de tipo ordinal
Estructuras de Datos
Estructuras de Datos Fundamentales - Arreglo
Ejemplo
VAR a: array[1 .. 6] of integer;
a[ 1 ] := 10; a[ 2 ] := 15; a[ 3 ] := 20
a[ 4 ] := 300; a[ 5 ] := 4; a[ 6 ] := 33
Arreglo a
1 10
2 15
3 20
4 300
5 4
6 33
Estructuras de Datos
Estructuras de Datos Fundamentales - Arreglo
Arreglo Multidimensional
El Tipo Base T puede ser un arreglo Formamos arreglo de Arreglos
Ejemplo: Var M: array[a .. b] of array [c .. d] of T1;
Acceso: M[ i ][ j ] j-ésimo componente del i-ésimo componente de M
Se puede abreviar definiendo una matriz
Var M: array[a .. b,c .. d] of T1;
Acceso: M[ i, j ]: i-ésimo componente en la j-ésima columna de M
Matriz M
C ........................ j ............................... d
a
......................
......................
i ...................... i,j
......................
b
M[ i, j ] = fila i
columna j
Estructuras de Datos
Estructuras de Datos Fundamentales - Registro
Es la estructura de datos más flexible ya que permite yuxtaponer elementos de cualquier tipo,
incluso estructurados
Es una estructura fundamental formada por componentes que pueden ser de diferentes tipos.
Consiste en un número fijo de componentes llamados campos, los componentes no están
limitados a ser del mismo tipo y no se pueden acceder directamente.
Ejemplo usando PASCAL
VAR R : RECORD
Campo1 : T1;
Campo2 : T2;
Campo3 : T3;
Campo4 : T4;
:
:
CampoN : Tn;
END;
Campo1 Campo2
Campo3 Campo4
...............
CampoN
Representación
Estructuras de Datos
Estructuras de Datos Fundamentales - Registro
Ejemplo
TYPE Fecha = RECORD
Dia : 1..31;
Mes: 1..12;
Año : 1900 .. 2100
END;
Persona = RECORD
Nombre: string[80];
Fecha_nac: Fecha;
Sexo : (M, F);
Edo_civil : (S,C,V,D)
END;
VAR P: Persona;
Para hacer Fecha = 24/02/95
P.Fecha_nac.dia := 24;
P.Fecha_nac.mes := 02;
P.Fecha_nac.año := 1995;
Estructuras de Datos
Estructuras de Datos Fundamentales - Conjunto
PASCAL permite definir estructuras de datos tipo conjunto, como una estructura fundamental.
TYPE Conjunto = Set of T;
VAR C: Conjunto;
Los posibles valores de la variable C es el conjunto de elementos del tipo T.
El acceso a una estructura tipo conjunto se hace en PASCAL con el operador in
Ejemplo:
TYPE Primario = (amarillo, azul, rojo);
Color = Set of Primario
VAR H1, H2: Color;
H1 := [rojo];
H2 := [ ]; /* vacío */
H2 := H2 + [ succ(amarillo) ];
Estructuras de Datos
Estructuras de Datos Fundamentales - Conjunto
Operaciones:
+ : Unión
* : Intersección
- : Diferencia de conjuntos
Operadores relacionales:
=, >, < : de igualdad y desigualdad
<=, >= : de inclusión de conjuntos
in : de pertenencia
Ejemplos:
1) If A in B A  B
2) If op in [ 'a', 'b', 'c', 'd' ]
en vez de op='a' or op='b' or op='c' or op='d'
3) VAR op: Set of 0..7;
Suma : boolean;
op := [ 3 ];
Suma:= [ 2, 3 ] <= op (* op está incluido en [ 2, 3 ] *)
Estructuras de Datos
Estructura de Datos Dinámicas
Conocidas también como estructuras avanzadas, son aquellas que su
tamaño se modifica durante la ejecución del programa.
Los componentes de las estructuras dinámicas se definen bajo un
tipo base T, pero el número de componentes de la estructura puede
variar durante la ejecución del programa.
Entre las más conocidas tenemos: listas, colas, grafos, árboles y
hashing.

Más contenido relacionado

PDF
Tipos abstractos de datos
PPSX
PPTX
Programacion
PPSX
PPTX
Computacion asignacion 3
PPTX
1.- Introducción a la estructura de datos.pptx
PPTX
02.1 - Estructura_General_De_Programa.pptx
PPTX
Algoritsmos unefa
Tipos abstractos de datos
Programacion
Computacion asignacion 3
1.- Introducción a la estructura de datos.pptx
02.1 - Estructura_General_De_Programa.pptx
Algoritsmos unefa

Similar a 02-Def Basicas Estructuras PRESENTACION de Datos.pdf (20)

PPT
Sesión1 Algoritmia Básica.ppt
PPTX
Unidad 3
DOCX
Fase 4_Grupo xx.docx
PPT
Lenguajes De Bajo Nivel
PPT
Conceptos basicos
PPT
Tipos de datos, identificadores, variables y constantes 97 2003
PPT
1 eda teo
PPT
1100947.ppt
PDF
Tipos de Datos Abstractos.
PPT
Pasos para resolver un problema en lenguaje de programación
DOCX
Guia examen diagnostico_pseint
PDF
Tema1 (2)
PDF
Programacion emily leal sistemas
PDF
3 diseño de-bd
PDF
3 diseño de-bd
PDF
3 diseño de-bd
PDF
3 diseño de-bd
PDF
3 diseño de-bd23
PDF
3 diseño de-bd (1)
PDF
3 diseño de-bd
Sesión1 Algoritmia Básica.ppt
Unidad 3
Fase 4_Grupo xx.docx
Lenguajes De Bajo Nivel
Conceptos basicos
Tipos de datos, identificadores, variables y constantes 97 2003
1 eda teo
1100947.ppt
Tipos de Datos Abstractos.
Pasos para resolver un problema en lenguaje de programación
Guia examen diagnostico_pseint
Tema1 (2)
Programacion emily leal sistemas
3 diseño de-bd
3 diseño de-bd
3 diseño de-bd
3 diseño de-bd
3 diseño de-bd23
3 diseño de-bd (1)
3 diseño de-bd
Publicidad

Último (20)

PPTX
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
PDF
SEMANA 13.pdf MICROBIOLOGÍA Y PARÁSITISMO
PDF
docsity-diapositivas-de-la-salud-mental.pdf
PPTX
Características de jean Piaget y su fase cognitivo
PDF
Mapa mental.pdf esquema de realización en general
PDF
EJERCICIOS RESUELTOS CON SOLVER EXCEL.pdf
PPTX
Precio optimo de venta para un emprendimiento familiar
PPTX
EXPOSICIÓN 2021.pptxhgdfshdghsdgshdghsds
PPTX
CANALES DE DISTRIBUCION en comercio internacional
PDF
RADIOGRAFIA DEL PARQUE AUTOMOTOR EN BOLIVA Y PROYECCIONES 2025-2030.pdf
PDF
Rendición_Pública_de_Cuentas_Inicial_2019.pdf
PPTX
Introducción al analisis de datos con Power bi
PPTX
DOROTHEA E OREM EXPO.pptx de una teoridta importante
PDF
Pobreza porcentual en el mundo y sistemas socioeconómicos (1945-2030).pdf
PDF
Actualización en el uso de uterotónico.pdf
DOCX
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
PDF
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
PDF
Presentación para empoderar a un equipo a factirar
PDF
Unidad Nº 1 Introduccion a Estadísticas
PDF
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
SEMANA 13.pdf MICROBIOLOGÍA Y PARÁSITISMO
docsity-diapositivas-de-la-salud-mental.pdf
Características de jean Piaget y su fase cognitivo
Mapa mental.pdf esquema de realización en general
EJERCICIOS RESUELTOS CON SOLVER EXCEL.pdf
Precio optimo de venta para un emprendimiento familiar
EXPOSICIÓN 2021.pptxhgdfshdghsdgshdghsds
CANALES DE DISTRIBUCION en comercio internacional
RADIOGRAFIA DEL PARQUE AUTOMOTOR EN BOLIVA Y PROYECCIONES 2025-2030.pdf
Rendición_Pública_de_Cuentas_Inicial_2019.pdf
Introducción al analisis de datos con Power bi
DOROTHEA E OREM EXPO.pptx de una teoridta importante
Pobreza porcentual en el mundo y sistemas socioeconómicos (1945-2030).pdf
Actualización en el uso de uterotónico.pdf
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
Presentación para empoderar a un equipo a factirar
Unidad Nº 1 Introduccion a Estadísticas
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
Publicidad

02-Def Basicas Estructuras PRESENTACION de Datos.pdf

  • 1. Estructuras y Tipos de Datos Definiciones Básicas
  • 2. TEMA I - Definiciones Básicas CONTENIDO - Nociones Preliminares - Ciclo De Desarrollo De Programas - Datos - Tipo Abstracto De Datos - Tipos de Datos - Estructura de Datos
  • 3. Nociones Preliminares Hecho, acción, punto, referencia que por si sólo no reviste ninguna relevancia, a menos que se interrelacione con otros datos o hechos que procesados producen información. DATO Ejemplo: 12  ??? 12 + mes  información (diciembre) Conjunto de datos relacionados entre sí y procesados INFORMACION Obtendremos información después que los datos son procesados
  • 4. Nociones Preliminares = DATOS + PROGRAMA Es la definición de un espacio físico en la memoria del computador, con capacidad de almacenar datos; de acuerdo al tipo de dato de la variable, ésta tendrá diferente estructura y tamaño, ya que su representación será diferente VARIABLE INSTRUCCIONES acciones Variables (Estructuras de datos)
  • 5. Nociones Preliminares PROGRAMA Es una secuencia finita de pasos, cada una de los cuales tiene un significado preciso y puede “ejecutarse” en un tiempo finito. Además un algoritmo es independiente de los valores de entrada y debe tener fin. ALGORITMO Para escribirlo ALGORITMOS Escrito en Leng. Natural INFORMAL PSEUDO-CODIGO Mezcla leng. Natural con formalidad y reglas sintácticas de leng. de prog. Escrito en Leng. de Prog. PROGRAMA
  • 6. Nociones Preliminares PROCESO DE ABSTRACCION Lógica que seguimos al tratar de dar solución a los problemas del mundo real, utilizando la ciencia de la computación
  • 7. Nociones Preliminares MODELO Es una representación simplificada de la realidad. Es una abstracción y simplificación de un problema real, que de manera ideal incorpora los elementos y relaciones esenciales del problema real (BIERMAN, BONINI, HAUSMAN: 1994) CLASIFICACION DE ACUERDO A SU REPRESENTACION Icónicos Analógicos Simbólicos
  • 8. Nociones Preliminares Modelos Icónicos Son aquellos que representan algunas aspectos de un Sistema, en forma visual o gráfica (maqueta) Modelos Analógicos Utilizan un conjunto de características para representar otro conjunto de características que posee el objeto de interés. Modelos Simbólicos Emplean símbolos para representar las propiedades de la entidad estudiada Símbolos matemáticos Símbolos no matemáticos Modelos Matemáticos Modelos Gráficos
  • 9. Ciclo de Desarrollo de Programas MODELO EN CASCADA Formulación y especificación del problema Diseño de la Solución (Modelo-Algoritmo) Codificación del programa Pruebas Documentación
  • 10. Ciclo de Desarrollo de Programas 1.- Formulación y especificación del problema - Análisis del Sistema 2.- Diseño de la Solución - Se concentra en el COMO - Análisis de los requisitos del programa (QUE) -Se enfoca básicamente en la estructura de los datos la arquitectura del programa el detalle procedimental (algoritmos) la caracterización de la interfaz (diseño de pantallas, reportes, etc.) Lista de Requerimientos
  • 11. Ciclo de Desarrollo de Programas 3.- Implementación (Codificación) Se toma el diseño y se traduce a un lenguaje de programación 4.- Pruebas - Se concentra en la lógica interna del software - Procura asegurar que el software Externa Interna programa de computación o software * Cubra los requisitos * Produzca los resultados esperados 5.- Documentación Se realiza durante todo el desarrollo del programa
  • 12. Diseño de la Solución … Mas del Diseño Se debe prestar toda la atención posible al diseño de la solución, en esta etapa se define la forma en que se representará la solución UN MODELO SENCILLO PARA EL DISEÑO DE ESTRUCTURAS DE DATOS Se analizan, entre otras cosas: - Los datos, su definición e interrelación -- La forma como estarán organizados Modelo Matemático Algoritmo Informal ADT Pseudo-código Estructura de Datos Programa
  • 13. Datos Algoritmos Los programas, son formulaciones concretas de algoritmos abstractos basados en ciertas representaciones y "estructuras de datos". Están constituidos básicamente de instrucciones y datos clasificar las variable Leng. de Prog. Programa Necesitamos Tipos de Datos Datos Los Datos, teóricamente ante todo, son abstracciones de fenómenos reales y se formulan de preferencia como estructuras abstractas que no necesariamente se elaboran en lenguajes comunes de programación De Entrada De Salida De Proceso Identificados los datos del problema, deben ser representados en el prog. como variables de memoria
  • 14. Tipo Abstracto de Datos Introducción Los tipos básicos de datos que ofrecen los lenguajes de programación no son suficientes para representar la gran variedad de soluciones de los problemas planteados Tipo Abstracto de Datos El Programador define sus propios T.D. Concepto parecido al de un procedimiento, está formado por datos e instrucciones los cuales están interrelacionados y encapsulados.
  • 15. Tipo Abstracto de Datos Definición Un Tipo Abstracto de Datos (TAD) como un modelo matemático con varias operaciones definidas sobre el modelo Ejemplo Conjunto de enteros. Operaciones: Unión(A,B): tomamos los elementos comunes y no comunes de A y de B Intersección(A,B): Tomamos los elementos comunes de A y B. Diferencia(A,B): Tomamos los elementos que están en A y no están en B. Modelo: Podemos modelar un conjunto por extensión o por compresión El programador define en el T.A.D. solo aquellas operaciones que necesita en el programa.
  • 16. Tipo Abstracto de Datos Características • Encapsulamiento de subtareas en un lugar del TAD: los procedimientos y funciones así como los datos se ubican físicamente en un lugar específico del programa y el acceso a los datos se realiza solo por las operaciones definidas en el TAD, es decir, los datos no pueden ser tocados por procedimientos o funciones que estén fuera del TAD • Generalización de tipos primitivos: el programador define sus propias operaciones. Definido el Tipo Abstracto de Datos, se requiere que se implemente o codifique
  • 17. Tipo Abstracto de Datos Implementación Codificación T.A.D. MODELO DE DATOS OPERACIONES = + OBJETO ESTRUCTURAS DE DATOS METODOS = +
  • 18. Tipos de Datos Definición El tipo de dato de una variable de un programa es el conjunto de posibles valores que una variable de ese tipo puede tomar Ejemplo B: sólo puede tomar valores TRUE y FALSE. C: sólo puede tomar valores carácter del juego de caracteres definidos en la tabla de símbolos o caracteres manejados por el lenguaje de programación. Var B: boolen; C: char; Los tipos de las variables B y C son lógicos y caracteres respectivamenteque
  • 19. Tipos de Datos … Cont El T.D. no define físicamente la variable ni le asigna valor alguno, lo que define son los valores que esta puede tomar El número de valores que pertenecen a un tipo T se conoce como la cardinalidad del tipo, esta sirve de base para determinar la cantidad de espacio físico que se necesita para almacenar una variable de ese tipo.
  • 20. Tipos de Datos Clasificación (Base Pascal) Los tipos básicos de datos dependen de los lenguajes de programación y varían de uno a otro Tipos de Datos Elementales Estructurados Escalares (enumerados) Sub-rango Arreglos Registros Archivos Conjuntos Definidos por el programador (TAD) Enteros (integer) Lógicos (boolean) Carácter (char) Real (real) Standard
  • 21. Tipos de Datos Clasificación (Base Java) Tipos de Datos Primitivos Compuestos Lógicos (boolean) Carácter (char) Vectores (multidimensionales) Cadenas de caracteres (String) byte (1 byte) short (2 bytes) int (4 bytes) long (8 bytes) Enteros float (4 bytes) double (8 bytes) Real Conjuntos Referenciados Definidos por el programador (Clases y Objetos) Textos Binarios Archivos (File)
  • 22. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Carácter (Char) CONST blanco = " "; por = "*"; VAR letra: char; - Surge de la necesidad de manejar constantes y variables cuyos valores sean caracteres aislados. - Variable declarada tipo char solo puede tomar valores que son caracteres de nuestro juego de caracteres - Los dos conjuntos de caracteres más usados son: ASCII (o ISO) compuesto por 128 caracteres ASCII extendido compuesto por 256 caracteres EBCDIC con 256 fue diseñado por IBM. - La Representación Interna es binaria. - La memoria ocupada por una variable tipo char es de 1 byte (8 bits) Ejemplo
  • 23. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Lógico (Boolean) VAR varlogica: boolean - Surgen de la necesidad de manejar variables que puedan asumir solo 2 estados - La Representación Interna es binaria. - La memoria ocupada es de 1 byte, aunque de ser posible podría representarse en 1 bit. Ejemplo
  • 24. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Entero (Integer) VAR varentera: integer - Surgen de la necesidad de manejar variables cuyos valores posibles sean enteros - La Representación Interna es binaria. - La memoria ocupada es de es de 2 bytes Ejemplo - Computador tiene memoria finita, entonces se representa un subconjuntodel conjunto Z. Por lo general se utilizan 2 bytes para su representación lo que nos permite definir los enteros entre -32.765 y 32767 aproximadamente - Algunos lenguajes de programación ofrecen representación en 1, 2, 4 y 8 bytes
  • 25. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Real (real) - Se utilizan para representar variables que almacenan valores reales - La representación interna es punto flotante - La memoria ocupada varía dependiendo del compilador y de la arquitectura de la máquina Ejemplo - La representación punto flotante utiliza tres elementos para definir un número: base, exponente y mantisa (es similar a la notación científica), N = mantisa * (Base)(exponente) 2832 = 2832*100 0,2832 = 2832*10-4 2832000 = 2832*103 -28,32 = -2832*10-2
  • 26. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Real (real) … Cont - Internamente para su representación se disponen unos bits para la mantisa, otros para el exponente, además de 1 bit para el signo de la mantisa y 1 bit para el signo del exponente. Vamos a almacenar 1,76 y se utilizan 16 bits para representar números reales, entonces Número real: 1,76 = 176 * 10-2 Ejemplo Representación interna mantisa R exponente Signo de la mantisa Signo del exponente 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1,76
  • 27. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Real (real) … Cont Características: Magnitud: está referida a cuan grande es el número que podemos representar (por ejemplo 1075) Precisión: consiste en la cantidad de dígitos que podemos representar del número Dos tipos de Errores: Error representacional: se produce cuando no podemos representar todos los dígitos de un número real en la variable Error computacional: ocurre cuando se opera con números de magnitudes muy disímiles originando que se pierdan algunos datos intermedios al no poseer el computador capacidad de memoria suficiente para manejarlos simultáneamente
  • 28. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Real (real) … Cont Error representacional: Supongamos la siguiente representación interna de los números reales Queremos almacenar el 15,56 Punto flotante( 15,56 ) = 1556 * 10-2 Ejemplos La mantisa tiene 8 bits por lo tanto podemos representar el 15 y el 16 pero no el 15,56 porque 1556 no se puede escribir con 8 bits mantisa exponente Signo de la mantisa Signo del exponente 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 29. Tipos de Datos Tipos de Datos Elementales – Tipos Standard Tipo Real (real) … Cont Error computacional: Supongamos la siguiente representación interna de los números reales Queremos realizar la siguiente operación: 2 + 0,76 = 2,76 Punto flotante( 2 ) = 2 * 100 Punto flotante( 0,76 ) = 76 * 10-2 Ejemplos mantisa A exponente Signo de la mantisa Signo del exponente 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 La mantisa tiene 8 bits, por lo tanto podemos representar el 2 y el 76 pero no el 2,76 porque Punto flotante( 2,76 ) = 276 * 10-2 y 276 no se puede escribir con 8 bits
  • 30. Tipos de Datos Tipos de Datos Elementales – Tipos Escalares TYPE moneda = (lira, bolívar, peso, peseta, dollar) dia = (Lunes, artes,Miercoles,Jueves,Viernes,Sabado,Domingo) VAR a : moneda; d : dia; a := bolívar; - Un tipo escalar es un identificador de tipo al cual se le define un conjunto de identificadores que indican los valores que pueden tomar una variable de ese tipo - Los únicos valores que se le pueden asignar a una variable de este tipo son los especificados en la lista de identificadores - El conjunto de identificadores se puede utilizar como constantes en el programa Ejemplo - La representación interna del tipo escalar es binaria, similar a los enteros - Son tipos enumerados, se comportan como los enteros
  • 31. Tipos de Datos Tipos de Datos Elementales – Tipos Subrango CONST lim_inf = 1000 lim_sup = 2000; TYPE V = lim_inf .. lim_sup Var Mes: 1 .. 12; Año: V; - Nos permiten definir variables cuyos valores están dentro de ciertos límites. Ejemplo - Los límites inferior y superior del subrango deben ser constantes - Se comportan igual a los enteros. Su representación interna es binaria Los tipos enteros, carácter, escalares, subrango y lógicos se consideran también tipos ordinales, porque cada valor de un tipo ordinal tiene un único predecesor y un único sucesor.
  • 32. Tipos de Datos Tipos de Datos Estructurados Es la conglomeración o yuxtaposición de tipos elementales El almacenamiento en la memoria de la computadora es, en una primera aproximación, arreglos de celdas individuales de almacenamiento llamadas "palabras". Los índices de las palabras se denominan direcciones. El tamaño de la palabra varía de un computador a otro, por lo general es de 2 bytes Memoria 1 2 : : : * * * * . . I0 : : : : * * * * * : N Dirección de inicio Arreglo en memoria (utiliza un conjunto de palabras) Palabra
  • 33. Tipos de Datos Tipos de Datos Estructurados - Arreglo Es un tipo estructurado conformado por un conjunto de componentes todas del mismo tipo, llamado tipo base T. Representación Interna: Mapeo del arreglo (abstracto) con componentes de tipo T en el almacenamiento, que es un arreglo con componentes de tipo palabra. Memoria 1 2 : : : * * * * . . I0 : : : : * * * * * : N Dirección de inicio Arreglo en memoria (utiliza un conjunto de palabras) Palabra Organización secuencial y contigua en memoria. Acceso aleatorio a través de un índice que indica el componente que se desea acceder en el arreglo
  • 34. Tipos de Datos Tipos de Datos Estructurados - Arreglo El tamaño del arreglo depende del tamaño del tipo base Memoria ocupada = n*s n: número de componentes s: número de palabras que ocupa un componente (tamaño del tipo base) donde Dirección i del j-ésimo componente i = i0 + j*s i0: dirección de inicio del arreglo j: componente que se desea acceder. s: número de palabras que ocupa un componente donde
  • 35. Tipos de Datos Tipos de Datos Estructurados - Registro Es un tipo estructurado conformado por el producto cartesiano de varios tipos. Los componentes suelen llamarse campos del registro. Representación Interna: se mapean en memoria por la simple yuxtaposición de sus componentes. Organización de las componentes del registro es contigua en memoria Acceso se realiza enunciando la variable tipo registro mas el campo que se desea acceder.
  • 36. Tipos de Datos Tipos de Datos Estructurados - Registro El espacio ocupado en memoria se obtendría sumando el tamaño de todos los componentes que tiene el registro. Memoria ocupada = s1+s2+ ... +sn n: número de componentes s: número de palabras que ocupa un componente (tamaño del tipo base) donde La dirección ki del componente o campo si ki = s1+s2+ ... +si-1 sj: tamaño del j-ésimo componente 1  j  i-1 i: componente que se desea acceder. ki: dirección relativa al origen o inicio del registro. donde
  • 37. Tipos de Datos Tipos de Datos Estructurados - Conjunto Es una colección de elementos todas del mismo tipo T, constituyendo T el tipo base del conjunto. Se representan por medio de una función característica C(S). Acceso mediante la inspección de sus elementos a través de la relación de pertenencia. El tipo base de un conjunto debe ser elemental. Arreglo de valores lógicos, cuyo i-ésimo componente especifica la presencia o ausencia del valor i en el conjunto, es decir, significa "i pertenece o no al conjunto S". C(si)  (i está en S) i in S (in es el operador de pertenencia de Pascal) El tamaño del arreglo está determinado por la cardinalidad del tipo base
  • 38. Tipos de Datos Tipos de Datos Estructurados - Conjunto Sea 0..9 el universo de un conjunto S, (los valores posibles están entre 0 y 9) Si S = {3, 4, 7}, la función característica C(S) de S sería Si realizamos C(1) = 1 está en S = F C(4) = 4 está en S = V Esto lo representaremos como un arreglo lógico, con un tipo base 0..9, de la siguiente manera Ejemplo C(S) = ( F F F T T F F T F F) 0 1 2 3 4 5 6 7 8 9 C(S). = En memoria la secuencia de valores lógicos se representa como una cadena de bits. Esto permite realizar operaciones básicas mediante prueba de bits muy eficientemente. Se recomienda usar un tipo conjunto sólo en caso de tipos base pequeños 0 1 2 3 4 5 6 7 8 9 F F F T T F F T F F
  • 39. Estructuras de Datos Estructura Definición 1: Distribución y orden de las partes. Estructura de Datos Definición 2: Armadura que sustenta alguna cosa. Definición Previa: representación física de una variable. Definición: la representación física de un modelo matemático mediante el uso de variables que pueden ser de diferentes tipos.
  • 40. Estructuras de Datos Clasificación Tomando como base el lenguaje de programación PASCAL Estructura de Datos Fundamentales Dinámicas o Avanzadas Arreglos o vectores Registros Conjuntos Secuencia Listas Arboles Grafos Hashing Colas Definidos por el programador Elementales Enteros (integer) Lógicos (boolean) Carácter (char) Real (real) Escalares Subrango
  • 41. Estructuras de Datos Estructura de Datos Fundamentales Son aquellas de tamaño fijo y no se modifican durante la ejecución del programa. Estructura de Datos Fundamentales - Elementales Las estructuras fundamentales son la base para construir estructuras más complejas en un lenguaje de programación, conocidas como estructuras avanzadas. Estudiadas basado en la representación de los tipos de datos Nos enfocaremos en el resto de las estructuras de datos
  • 42. Estructuras de Datos Estructuras de Datos Fundamentales - Arreglo Es una estructura fundamental formada por un número fijo de componentes (definido cuando se edita el programa) todas del mismo tipo. Permite crear un conjunto de variables que van a estar relacionadas bajo un mismo nombre y que son todas del mismo tipo, por eso se dice que es una estructura homogénea. Ejemplo usando PASCAL VAR a: array[ lim_inf ... lim_sup ] of T (T es el tipo base del arreglo) lim_inf y lim_sup definen el número de componentes del arreglo, estos deben ser constantes y pertenecer a un tipo ordinal.
  • 43. Estructuras de Datos Estructuras de Datos Fundamentales - Arreglo Acceso al arreglo es aleatorio, Arreglo A 1 2 : : : * * * * . . i : : : * * * * * : N índices del arreglo Celda o componente i del arreglo Acceso A[ i ] índice que selecciona la posición de una celda i del arreglo Nombre del arreglo i debe ser de tipo ordinal
  • 44. Estructuras de Datos Estructuras de Datos Fundamentales - Arreglo Ejemplo VAR a: array[1 .. 6] of integer; a[ 1 ] := 10; a[ 2 ] := 15; a[ 3 ] := 20 a[ 4 ] := 300; a[ 5 ] := 4; a[ 6 ] := 33 Arreglo a 1 10 2 15 3 20 4 300 5 4 6 33
  • 45. Estructuras de Datos Estructuras de Datos Fundamentales - Arreglo Arreglo Multidimensional El Tipo Base T puede ser un arreglo Formamos arreglo de Arreglos Ejemplo: Var M: array[a .. b] of array [c .. d] of T1; Acceso: M[ i ][ j ] j-ésimo componente del i-ésimo componente de M Se puede abreviar definiendo una matriz Var M: array[a .. b,c .. d] of T1; Acceso: M[ i, j ]: i-ésimo componente en la j-ésima columna de M Matriz M C ........................ j ............................... d a ...................... ...................... i ...................... i,j ...................... b M[ i, j ] = fila i columna j
  • 46. Estructuras de Datos Estructuras de Datos Fundamentales - Registro Es la estructura de datos más flexible ya que permite yuxtaponer elementos de cualquier tipo, incluso estructurados Es una estructura fundamental formada por componentes que pueden ser de diferentes tipos. Consiste en un número fijo de componentes llamados campos, los componentes no están limitados a ser del mismo tipo y no se pueden acceder directamente. Ejemplo usando PASCAL VAR R : RECORD Campo1 : T1; Campo2 : T2; Campo3 : T3; Campo4 : T4; : : CampoN : Tn; END; Campo1 Campo2 Campo3 Campo4 ............... CampoN Representación
  • 47. Estructuras de Datos Estructuras de Datos Fundamentales - Registro Ejemplo TYPE Fecha = RECORD Dia : 1..31; Mes: 1..12; Año : 1900 .. 2100 END; Persona = RECORD Nombre: string[80]; Fecha_nac: Fecha; Sexo : (M, F); Edo_civil : (S,C,V,D) END; VAR P: Persona; Para hacer Fecha = 24/02/95 P.Fecha_nac.dia := 24; P.Fecha_nac.mes := 02; P.Fecha_nac.año := 1995;
  • 48. Estructuras de Datos Estructuras de Datos Fundamentales - Conjunto PASCAL permite definir estructuras de datos tipo conjunto, como una estructura fundamental. TYPE Conjunto = Set of T; VAR C: Conjunto; Los posibles valores de la variable C es el conjunto de elementos del tipo T. El acceso a una estructura tipo conjunto se hace en PASCAL con el operador in Ejemplo: TYPE Primario = (amarillo, azul, rojo); Color = Set of Primario VAR H1, H2: Color; H1 := [rojo]; H2 := [ ]; /* vacío */ H2 := H2 + [ succ(amarillo) ];
  • 49. Estructuras de Datos Estructuras de Datos Fundamentales - Conjunto Operaciones: + : Unión * : Intersección - : Diferencia de conjuntos Operadores relacionales: =, >, < : de igualdad y desigualdad <=, >= : de inclusión de conjuntos in : de pertenencia Ejemplos: 1) If A in B A  B 2) If op in [ 'a', 'b', 'c', 'd' ] en vez de op='a' or op='b' or op='c' or op='d' 3) VAR op: Set of 0..7; Suma : boolean; op := [ 3 ]; Suma:= [ 2, 3 ] <= op (* op está incluido en [ 2, 3 ] *)
  • 50. Estructuras de Datos Estructura de Datos Dinámicas Conocidas también como estructuras avanzadas, son aquellas que su tamaño se modifica durante la ejecución del programa. Los componentes de las estructuras dinámicas se definen bajo un tipo base T, pero el número de componentes de la estructura puede variar durante la ejecución del programa. Entre las más conocidas tenemos: listas, colas, grafos, árboles y hashing.