Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN ESTRUCTURADA
Índice
Introducción...................................................................................................................................3
¿Qué es la programación estructurada?.................................................................................4
Tipos y características de programación estructurada.......................................................4
Ventajas y Desventajas................................................................................................................4
Método de ordenamiento............................................................................................................5
Algoritmos de ordenamiento......................................................................................................6
Algoritmos de intercambio directo...........................................................................................6
Algoritmos de intercambio Logarítmicos................................................................................9
Algoritmos de Búsqueda...........................................................................................................12
Conclusión....................................................................................................................................13
2
Introducción
Las computadoras destacan su funcionamiento precisamente por la
capacidad que tienen de efectuar una gran cantidad de procesos matemáticos y
lógicos que un ser humano no es capaz de hacer en corto tiempo. Estos gracias a
una organización que se de la al manejo de datos y operaciones en el cual la
computadora generara un proceso secuencial en base a la estructuración armada,
todo esto incluyendo la composición y los procesos llevados a cabo por el software
del sistema.
Los avances en la tecnología siempre van parejos con progresos en los
lenguajes de programación y con nuevas ayudas para simplificar el uso
del computador, con lo cual un número mayor de usuarios se beneficia del. Pero la
necesidad de hacer programas para resolver problemas específicos quizás nunca
desaparecerá.
3
¿Qué es la programación estructurada?
La programación estructurada se define como una técnica metodológica
que se utilizada para el desarrollo de programas que está enfocada a la
optimización del proceso de desarrollo de un proyecto de software como lo puede
ser la creación de alguna aplicación u otro proyecto enfocado al área de
programación. Esta optimiza específicamente las áreas de lo que son la calidad de
producción y desarrollo, así como la claridad y la fácil comprensión de un software
y su estructuración haciéndolo así más fácil de comprender al igual que optimizar
el tiempo de desarrollo.
La principal característica que cubre la técnica de la programación
estructurada es que esta contiene la composición fundamental de estar constituida
por segmentos de comandos los que están constituidos desde una instrucción
hasta varias paginas con instrucciones y cada una esta ordenada secuencialmente
para ser leídas de principio a fin sin que se pierda el orden de continuidad en la
que se encuentran constituidas.
Ventajas y Desventajas
Entre las ventajas mas destacables de la programación estructurada se
tienen las siguientes virtudes y defectos en su composición.
Ventajas:
Códigos más fáciles de comprender, esto porque se pueden leer de forma
ordenada, igual que como el mismo computador los lee para ejecutarlos.
Contamos con mayor optimización en los procesos de desarrollo, como ya
se había mencionado, este tipo de organización esta orientada a mejorar el
rendimiento a la hora de analizar, desarrollar y estructurar un lenguaje de
código siendo que su misma definición expresa una ventaja clara.
Programas mas simples de estructurar y construir.
4
Mayor eficiencia en el área de testing, y en la fase de depuración,
corrección de errores, solución a problemas como bugs, o fallas en el
programa.
Programadores rinden más.
Desventajas:
Como condición natural de todo elemento que posee ventajas, posee
características negativas, entre estas al existir programas de codificación
extensa, se hace difícil su visualización.
No permite reutilizar el código.
Al no aplicar la lógica misma de la P.O.O, esta no puede ser manipulada de
la misma manera o cambiarse a dicha metodología de programación.
Método de ordenamiento
Los métodos de ordenamiento son, como lo indica su nombre, métodos o
herramientas de las que disponemos para ordenar datos, clasificándolos en
conjuntos o estructuras con algún orden relacionado al campo al que pertenezcan
estos datos. Para manejar bien este tema dejemos en claro dos conceptos
citándolos de la RAE teniendo en cuenta el contexto del tema.
Orden: “Relación o respecto de una cosa a otra.”, podemos decir que el orden
define la relación de los datos.
Clave:
“Conjunto de reglas y correspondencias que explican un código de signos.”, para
entenderlo mejor en el contexto, diremos que la clave será el conjunto en donde
ubicamos los datos.
Pero ¿Cómo funciona esto? Podemos dar un ejemplo simple, decimos que una
lista de datos esta ordenada por la clave K, si la lista está en orden con respecto a
la clave anterior. Este Orden puede ser:
− Ascendente: (i <= k[j])
− Descendente: (i > j) entonces (k[i] >= k[j])
Dicho esto, podemos clasificar todo esto en dos tipos de ordenamiento:
Ordenamiento externo: Se caracteriza por que al momento de trabajar los datos
este requerirá de la memoria primaria y secundaria, este proceso trabaja los datos
moviéndolos o transfiriéndolos en bloques de información a la memoria principal,
dentro de la memoria principal estos bloques son ordenados y entonces regresan
a la memoria secundaria.
Ordenamiento interno: Es algo mas simple que el anterior ya que todo el proceso
se lleva a cabo solamente en la memoria principal, permitiéndonos ordenar toda la
información desde esta.
5
Ahora bien, teniendo esta información como base, pasemos a explicarlo en el
funcionamiento interno con los algoritmos de ordenamiento.
Algoritmos de ordenamiento.
6
a[6]>a[7] (12>35) no hay intercambio
a[5]>a[6] (27>12) si hay intercambio
a[4]>a[5] (44>12) si hay intercambio
a[3]>a[4] (16>12) si hay intercambio
a[2]>a[3] (08>12) no hay intercambio
a[1]>a[2] (67>08) si hay intercambio
a[0]>a[1] (15>08) si hay intercambio
A: 08 15 67 12 16 44 27 35
Obsérvese que el elemento 08 fue situado en la parte izquierda del arreglo.
SEGUNDA PASADA:
a[6]>a[7] (27>35) no hay intercambio
a[5]>a[6] (44>27) si hay intercambio
a[4]>a[5] (16>27) no hay intercambio
a[3]>a[4] (12>16) no hay intercambio
a[2]>a[3] (67>12) si hay intercambio
a[1]>a[2] (15>12) si hay intercambio
A: 08 12 15 67 16 27 44 35 y el segundo elemento más pequeño del
arreglo, en este caso 12, fue situado en la segunda posición. A continuación,
se muestra el resultado de las siguientes pasadas:
3era. Pasada: 08 12 15 16 67 27 35 44
4ta. Pasada: 08 12 15 16 27 67 35 44
5ta. pasada: 08 12 15 16 27 35 67 44
6ta. Pasada: 08 12 15 16 27 35 44 67
7ma. Pasada: 08 12 15 16 27 35 44 67
7
Arreglo: 15 67 08 16 44 27 12 35
PRIMERA PASADA
menor=A[0] (15) (A[1]
(A[1]<menor) (67<15) no se cumple
(A[2]<menor) (08<15) Si menor=A[2] (08)
(A[3]<menor) (16<08) no se cumple
(A[4]<menor) (44<08) no se cumple
(A[5]<menor) (27<08) no se cumple
(A[6]<menor) (12<08) no se cumple
(A[7]<menor) (35<08) no se cumple
Se intercambia A[2] (08) con A[0] (15)
Arreglo: 08 67 15 16 44 27 12 35
2da: 08 12 15 16 44 27 67 35
3ra: 08 12 15 16 44 27 67 35
4ta: 08 12 15 16 44 27 67 35
5ta: 08 12 15 16 27 44 67 35
6ta: 08 12 15 16 27 35 67 44
7ma: 08 12 15 16 27 35 44 67
Método de inserción directa: Este método es cuanto menos, curioso, ya
que es llamado también como “el método de las cartas” o “el método de la
baraja” ya que se dice que es generalmente usado por los jugadores de
estas. El método consiste en ir ordenando los datos partiendo del lado
izquierdo que se presume esta ordenado, desplazando al resto de
elementos que no lleven el orden y repetir la acción hasta que el conjunto
este ordenado.
Ejemplo.
Arreglo: 15 67 08 16 44 27 12 35
PRIMERA PASADA
A[1]<A[0] (67<15) no hay intercambio
A: 15 67 08 16 44 27 12 35
8
SEGUNDA PASADA
A[2]<A[1] (08<67) sí hay intercambio A[1]<A[0] (08<15) sí hay intercambio
A: 08 15 67 16 44 27 12 35
TERCERA PASADA
A[3]<A[2] (16<67) sí hay intercambio
A[2]<A[1] (16<15) no hay intercambio
A: 08 15 16 67 44 27 12 35
Una vez que se determina la posición correcta del elemento se interrumpen
las comparaciones.
4ta: 08 15 16 44 67 27 12 35
5ta: 08 15 16 27 44 67 12 35
6ta: 08 12 15 16 27 44 67 35
7ma: 08 12 15 16 27 35 44 67
9
Método Quicksort: Este método asegura ser una mejora del método de
intercambio directo, pero su proceso va de la siguiente manera.
1. Se selecciona un elemento al azar de la estructura, llamémoslo X.
2. Se busca por la izquierda de la estructura un elemento mayor que X
y se busca por la derecha un elemento menor o igual a X.
3. Si las posiciones de los elementos izquierda derecha no se han
cruzado, entonces intercambia la posición del elemento mayor.
4. Se repetirá el proceso partiendo del paso 2, siempre que no se
crucen las posiciones de los elementos izquierda derecha.
5. Se supone que, al realizar dichos movimientos, el elemento X tendría
que dividir la estructura en dos subestructuras que por un lado serán
menores o iguales a X y por el otro serán mayores, si esto ocurre, se
dice que X esta ordenado.
10
6. Repetir el Quicksort con la subestructura izquierdo y luego con la
subestructura derecha o viceversa.
Lo sé, esto puede llegar a ser muy confuso, pero se entiende mejor en el
ejemplo.
Arreglo: 15 67 08 16 44 27 12 35
Se selecciona A[0], por lo tanto X=15
PRIMERA PASADA
Recorrido de derecha a izquierda:
A[7]>=X (35>=15) no hay intercambio
A[6]>=X (12>=15) sí hay intercambio
A: 12 67 08 16 44 27 15 35
Recorrido de izquierda a derecha:
A[2]<=X (67<=15) sí hay intercambio
A: 12 15 08 16 44 27 67 35
SEGUNDA PASADA
Recorrido de derecha a izquierda
A[5]>=X (27>=15) no hay intercambio
A[4]>=X (44>=15) no hay intercambio
A[3]>=X (16>=15) no hay intercambio
A[2]>=X (08>=15) sí hay intercambio
A: 12 08 15 16 44 27 67 35
Como el recorrido de izquierda y derecha debería iniciarse en la misma
posición donde se encuentra el elemento X, el proceso termina, ya que el
elemento X se encuentra en la posición correcta. Es lo que se explicaba en el
paso 5, ahora tenemos dos subestructuras.
A: 12 08 15 16 44 27 67 35
1er. Conjunto 2do. Conjunto
A: 12 08 15 16 44 27 67 35
A: 12 08 15 16 35 27 44 67
A: 12 08 15 16 27 35 44 67
11
A: 08 12 15 16 27 35 44 67
Estos son algunos de los métodos que emplean logaritmos de
ordenamiento, pero esto claramente nos produce una duda posterior. ¿Y si
queremos encontrar un dato en específico? Pasemos al siguiente tema.
Algoritmos de Búsqueda.
Los algoritmos de búsqueda, como su nombre lo indica, se encargan de
cumplir una búsqueda determinada para una acción o tarea. Su uso más básico es
el de comprobar la existencia de un dato especifico buscado por el programador.
Existen diversos métodos, pero seamos puntuales y describamos el
funcionamiento de 3, el binario, el secuencial y el hash.
Búsqueda Binaria: proporciona una técnica de búsqueda rápida siempre
que la estructura esta ordenada. Un ejemplo muy usado es la comparación con la
búsqueda en un diccionario, para encontrar una palabra que inicie por la M se
procede a moverse por las paginas en dirección a la M, el proceso es continuo
hasta que se encuentre la página donde está la palabra o hasta que se determine
que la palabra no está en dicho diccionario.
Este tipo de búsqueda tiene dos características.
1. La estructura debe estar ordenada.
2. La búsqueda es de acceso aleatorio.
Búsqueda Secuencial: Como su nombre lo indica, este algoritmo busca
secuencialmente, es decir, buscara partiendo desde el primer elemento pasando
por cada casilla de la estructura hasta dar con el dato solicitado o hasta completar
la estructura y determinar que el dato no existe.
Este tipo de búsqueda puede ser útil en estructuras pequeñas usadas para
practicar, pero no es aconsejable en otros casos, ya que su tiempo de respuesta
será proporcional al tamaño de la estructura.
Búsqueda Hash: Este tipo de búsqueda comparte la definición de las
funciones hash, se trata de una manera de generar llaves o Keys casi inequívoca,
que guardan la posición de los diversos elementos, de manera que al solicitar un
dato este se pueda identificar a través de la probabilidad.
Esto produce una seria de ventajas mayores a sus desventajas, pero
siempre hay que tomar en cuenta que para acceder a cada dato solo será posible
por una key.
12
Conclusión
La programación estructurada, en términos generales es una filosofía en la
cual un grupo de programadores puede manejar para mejorar la forma en la que
interactúan entre sí, generan mayor eficiencia, entendimiento y optimizan mejor el
trabajo en equipo que es fundamental para el desarrollo de un programa o como
empresa. Es importante tener en cuenta que, para un programador, es muy
importante conocer el orden con el que trabaja y no optar por un simple método de
brújula donde construye sin saber a dónde ni con conocimientos de lo que quiere
ni lo que tiene.
13
Bibliografía
http://biolab.uspceu.com/aotero/recursos/docencia/TEMA%208.pdf
https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento
http://mapaches.itz.edu.mx/~mbarajas/edinf/Ordenamiento.pdf
https://www.youtube.com/watch?v=4a5jKXTo22M
https://www.monografias.com/trabajos/progestructu/progestructu.shtml
https://www.ecured.cu/Programacion_estructurada
14