Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion A La Programacion Semana 6
Introduccion A La Programacion Semana 6
INTRODUCCIÓN A LA PROGRAMACIÓN
SEMANA 6
Principios de estructuras de datos
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase.
IACC
1
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
RESULTADO DE APRENDIZAJE
Reconocer las estructuras de datos en la construcción de
algoritmos.
IACC
2
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
3
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN
Los datos representan toda la entrada que se denominas TDA o tipos de datos
un algoritmo, un programa o un sistema abstractos.
requieren para generar resultados por medio
de operaciones de diferentes tipos. Sin Estos tipos de datos permitirán organizar los
embargo, los datos en muchas ocasiones valores de acuerdo con las necesidades del
requieren estructuras más complejas para usuario y del programador para realizar el
poderlos comprender y lograr transmitir procesamiento electrónico respectivo.
realmente el mensaje que se espera.
Dos elementos son necesarios para formar una verdad: un hecho y una abstracción.
Remy de Gourmont
IACC
4
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
Ecured (s.f.a) también señala que todos los datos que componen el arreglo son denominados
elementos; al número de elementos de un arreglo se denomina tamaño o rango del vector,
también de acuerdo a su estructura se pueden clasificar en:
IACC
5
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
En la figura 1 se puede observar un arreglo de tamaño 6 con seis espacios para almacenar
elementos. Si sobre el arreglo de la figura se colocan los siguientes datos por ejemplo:
Es posible diseñar algoritmos o programas que permitan trabajar con todo el arreglo, en este caso
como todo array utiliza un tamaño finito de posiciones se recomienda utilizar un ciclo FOR aunque
cualquier estructura repetitiva permite recorrer y trabajar con las posiciones del array.
IACC
6
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 1
Inicio
Fin
IACC
7
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 2
Inicio
Leer (Cantidad_De_Datos)
i:=0
mientras (i <= Cantidad_De_Datos) hacer
Inicio
Escribir (Ingrese el número a ser almacenado en la posición, i)
Leer (Arreglo[i])
i=i+1
Fin
Fin
De esta manera se leen todos los datos del arreglo con el tamaño que definió el usuario.
De acuerdo con la Ecured (s.f.a), en general las características de este tipo de datos se resumen
en:
Para acceder a las posiciones del arreglo se debe definir el índice, este índice es una
variable positiva que indica la posición dentro del vector o array.
Los datos dentro del arreglo son todos del mismo tipo.
IACC
8
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 3
Algoritmo arreglos
leer(totalDatos)
i:=0
leer (colección[i]
i := i + 1
Fin
El algoritmo anterior permitirá almacenar datos en un arreglo del tamaño que indique el usuario al
escribir su variable TotalDatos.
IACC
9
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 4
Inicio:
Suma = 0
promedio = suma/40
Fin
IACC
10
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.1.2. PILAS
De acuerdo con Quevedo, López y Asencio A. (2004), estas estructuras de datos tienen un
comportamiento “LIFO”: Last In First Out, último en entrar, primero en salir, por tanto las pilas
manejan dos operaciones básicas:
Su característica fundamental es que al extraer se obtiene siempre el último elemento que acaba
de insertarse.
IACC
11
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
https://goo.gl/Ca53rE
Es importante destacar que las pilas tienen un tope o capacidad máxima tal como los arreglos. Por
tanto cuando se almacenan datos hasta el tope o cima de la pila ya no se pueden seguir agregando
datos a la misma.
IACC
12
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 5
Fuente: https://goo.gl/K3hgdS
IACC
13
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.1.3. COLAS
A diferencia de las pilas, las colas tienen un comportamiento FIFO, First In First Out, primero en
entrar es el primero en salir. Por ejemplo en la cola de un supermercado, los clientes que van
llegando deben ponerse detrás de las personas que también esperar por pagar. La cajera, en este
caso, atenderá en primer lugar a la persona que primero llegó a la cola.
Otro ejemplo de acuerdo con lo que expone Blancarte (2014) sobre las colas corresponde a la
dinámica que se presenta en un banco: un cliente toma un número para esperar su turno,
inmediatamente se puede conocer cuántas personas o números hay por delante, por lo que
automáticamente se deduce que estas personas serán atendidas antes. Si se ve el
comportamiento se puede notar en este escenario que el primer cliente que llegó y solicitó un
turno será atendido primero y quien llegó al último será atendido hasta el final.
IACC
14
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
15
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
La siguiente figura muestra los valores de inicio tanto de una cola como de una pila con la finalidad
de comparar las dos estructuras de datos implementadas en un programa con interfaz gráfica:
EJEMPLO 6
Pilas y Colas
Fuente: https://www.academia.edu/22313790/Pilas_y_Colas
IACC
16
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.1.5. LISTAS
De acuerdo con Ecured (s.f.b), una lista representa una estructura de datos lineal que enlaza
diferentes nodos entre sí, modelando situaciones reales como: datos de los alumnos de un
colegio, datos del personal de una empresa o programas informativos almacenados en un disco
magnético.
Se puede notar que la referencia contenida en el nodo de una lista se denomina “siguiente”, e
indica en dónde se encuentra el siguiente elemento de la lista. El último elemento de la lista no
tiene nodo siguiente, por lo que se dice que la referencia siguiente del último elemento es null
(nulo).
IACC
17
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.1.6. SECUENCIA
La secuencia constituye un tipo de dato abstracto formado por elementos de un mismo tipo, por
ejemplo, al definir una secuencia denominada “e”, esta tendrá un conjunto de elementos del
mismo tipo denominada elementos de secuencia, entonces, será tratada como una secuencia de
“e”, donde los elementos de esta secuencia pueden ser enteros, caracteres o datos lógicos.
Se deben definir qué operaciones se deben programar para la secuencia definida, por ejemplo:
EJEMPLO 7
Fin
IACC
18
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 8
Fin
Fin
IACC
19
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
EJEMPLO 9
Tipo:
Secuencia =Array{1--n} de tipo Carácter //Esto define una estructura de tipo carácter de
n posiciones
Var:
S: Secuencia;
Algunas de las ventajas de usar los datos TDA, según Bustos (s.f.), son:
1) Organizan el código del programa y agrupan los datos complejos de una forma más
comprensible.
2) Robustecen el sistema.
3) Reducen los tiempos de compilación.
4) Facilitan la extensibilidad y escalabilidad del código.
IACC
20
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
Figura 9: Secuencias.
Fuente: https://goo.gl/F9E6CT
La especificación algebraica o ecuacional define las propiedades de un tipo de dato abstracto con
ecuaciones que tienen variables cuantificadas universales para cualquier valor que tomen las
variables. De acuerdo con Martí, Ortega y Verdejo (2003) se siguen los siguientes pasos:
a) Identificación de los objetos del TAD y sus operaciones (declaración del TAD, módulos que
usa, parámetros).
b) Definición de la signatura (sintaxis) de un TAD (nombre del TAD y perfil de las
operaciones).
c) Definición de la semántica (significado de las operaciones).
La operación de un TAD representa una función que toma como parámetros (entrada) cero o más
valores de diversos tipos, y produce como resultado un solo valor de otro tipo. El caso de cero
parámetros representa una constante del tipo de resultado.
De acuerdo con Martí, Ortega y Verdejo (2003), se presentan las siguientes consideraciones
relacionadas con los datos abstractos:
IACC
21
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
Estas estructuras de dato no tienen un tamaño determinado en memoria ocupada, por tanto
pueden crecer a medida que sea requerido por el programa. Esta es su gran diferencia con los
datos estáticos cuyo tamaño en bit está definido. El tipo de datos dinámico suelen denominarse
punteros, y se caracterizan por el hecho de que con un nombre se hace referencia a un conjunto
de espacios de memoria.
De acuerdo con Pérez (s.f.) un puntero es una variable cuya finalidad es que almacena una
dirección en memoria de otra variable.
IACC
22
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
COMENTARIO FINAL
Al identificar y conocer los tipos de datos abstractos, el programador o analista informático tendrá
más herramientas para elaborar programas bajo lenguajes de programación comerciales o de
software libre. El conocer estructuras como las pilas, las colas, los arreglos entre otras, permitirá
realizar un modelado más complejo en la forma en que los datos se pueden procesar en un
computador.
IACC
23
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
REFERENCIAS
Blancarte, O. (2014), Estructura de datos – Queue (Cola). Recuperado de: https://goo.gl/pmHiw8
https://www.ecured.cu/Arreglos_(Inform%C3%A1tica)
https://www.ecured.cu/Listas_(Inform%C3%A1tica)
Quevedo E., López R. y Asencio A. (2004). Pilas y colas. Recuperado de: https://goo.gl/Av9NWd
Semana 6.
IACC
24
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
25
SEMANA 6 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
26