SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Técnicas de Programación Estructurada Página 1 de 8
TECNICAS DE PROGRAMACION ESTRUCTURADA
Introducción
Las técnicas de desarrollo y diseño de programas que se utilizan en la programación convencional tienen
inconvenientes, sobre todo la hora de verificar y modificar algún programa. En la actualidad están
adquiriendo gran importancia las técnicas de programación, cuyo objetivo principal es el de facilitar la
comprensión del programa, y además permiten, de forma rápida, las ampliaciones y modificaciones que
surjan en la fase de explotación del ciclo de vida de un programa o una ampliación informática.
Una forma de simplificar los programas, haciendo más sencilla su lectura y mantenimiento, es utilizar la
técnica del diseño descendente de programas (TOP – DOWN).
En los últimos años la técnica mas utilizada que siguen las directrices TOP – DOWN es la programación
estructurada.
La programación estructurada fue desarrollada en sus principios por Edsgar W. Dijkstra en sus Notes on
Structures Programming y se basa en el denominado Teorema de la Estructura desarrollado en 1966
por Bohm y Jacopini, que se ratificó con los trabajos de Harlan D. Mills.
En la programación convencional se suele hacer un uso indiscriminado y sin control de las instrucciones
de salto condicional e incondicional, lo cual produce cierta complejidad en la lectura y en las
modificaciones del programa. Eliminar estas dificultades es uno de los propósitos de la programación
estructurada y, por ello, en ocasiones, se ha definido como la técnica de la programación sin saltos
condicionales e incondicionales. Esto no es rigurosamente cierto, y por lo tanto no lo tomaremos como
definición, sino como una norma general.
Como consecuencia del párrafo anterior podemos indicar que todo programa estructurado puede ser
leído de principio a fin sin interrupciones en la secuencia normal de lectura.
Al mismo tiempo que se obtiene una mayor clarificación del programa por medio de estas técnicas, la
puesta a punto del mismo es mucho más rápida, así como la confección de su documentación.
Los programadores en la fase de diseño realizan cada tarea en módulos o bloques, los cuales pueden
estandizar y así formar su propia biblioteca de programas para su utilización en sucesivas aplicaciones.
En los distintos departamentos de informática existentes no siempre se dispone de los mismos
programadores con respecto al tiempo que se pretende que dure una aplicación, por lo cual es de suma
importancia que un programa realizado por una persona sea fácil de modificar y mantener por otra. En
este sentido, la programación estructurada ofrece muchas ventajas para lograr estos objetivos.
Un programa estructurado es:
- Fácil de leer y comprender
- Fácil de codificar en una amplia gama de lenguajes y en diferentes sistemas.
- Fácil de mantener.
- Eficiente, aprovechando al máximo los recursos de la computadora.
- Modularizable.
TEOREMA DE LA ESTRUCTURA
En la actualidad existen diversas definiciones de la programación estructurada, pero todas ellas giran en
torno al teorema de la estructura que, como ya hemos dicho, se debe a Bohm y Jacopini.
Para un buen entendimiento del mismo realizamos la definición previa de diagrama propio, programa
propio y equivalencia de programas que intervienen en su enunciado directa e indirectamente.
- Diagrama propio:
Es aquel que posee un solo punto de entrada y uno solo de salida.
1
A
C1
B
O
- Programa propio:
Es aquel programa que cumple las siguientes condiciones:
- Posee un solo inicio y un solo fin.
- Todo elemento del programa es accesible, es decir, existe al menos un camino desde el inicio al fin
que pasa a través de él.
- No posee bucles infinitos.
Técnicas de Programación Estructurada Página 2 de 8
2
O
INICIO
A
C1
B
C
FIN
- Equivalencia de programas:
Dos programas son equivalentes si realizan, ante cualquier situación de datos, el mismo trabajo pero de
distinta forma.
O
O
N
N S
INICIO
A
no C1
A
B
FIN
Es equivalente a
S
INICIO
A
C1
B
FIN
- Teorema de la estructura:
- La secuencia
- La selección
- La repetición
Todo programa propio, realice el trabajo que realice, tiene siempre al menos un programa propio
equivalente que solo utiliza las estructuras básicas de la programación, que son:
En definitiva, el teorema nos viene a decir que, diseñando programas con sentencias primitivas (lectura,
escritura y asignación) y estructuras básicas, no sólo podremos hacer cualquier trabajo sino que además
conseguiremos mejorar la creación, lectura, comprensión y mantenimiento de los programas.
Ejemplo: Aplicación del teorema de la estructura a un algoritmo.
El siguiente programa propio no utiliza sólo estructuras básicas, como puede verse.
Técnicas de Programación Estructurada Página 3 de 8
Encontrar un programa propio equivalente que sólo utilice dichas estructuras.
3
O
N S
N S
O
INICIO
A
C1
C2 C
B
D
E
FIN
El equivalente estructurado, entre otros, puede ser:
O
N S
N S
O
O
N
S
INICIO
A
C1
C2
C
SW =FALSOSW = CIERTO
BD
SW = CIERTO
SW
E
FIN
HERRAMIENTAS DE LA PROGRAMACION ESTRUCTURADA
Además de elementos comunes en otros métodos de programación (objetos, variables auxiliares,
operadores, etc.), la programación estructurada utiliza:
- Diseño descendente (TOP – DOWN)
- Recursos abstractos
Técnicas de Programación Estructurada Página 4 de 8
- Estructuras básicas
♦ Diseño TOP – DOWN
Los programas se diseñan de lo general a lo particular por medio de sucesivos refinamientos o
descomposiciones que nos van acercando a las instrucciones finales del programa.
DISEÑO
PROBLEMA INICIAL
TOP
4
DOWN
♦ Utilización de recursos abstractos
Es el complemento perfecto para el diseño TOP – DOWN donde se utiliza el concepto de abstracción: es
decir, en cada descomposición se supone que todas las partes resultantes están resueltas, dejando su
realización para el siguiente refinamiento y considerando que todas ellas pueden llegar a estar definidas
en instrucciones y estructuras disponibles en los lenguajes de programación.
♦ Estructuras básicas
Como se indico anteriormente, el teorema de la estructura dice que toda acción se puede realizar
utilizando tres estructuras básicas de control, la estructura secuencial, alternativa y repetitiva. Esta
afirmación es cierta y demostrable.
Para la representación gráfica de las estructuras utilizaremos el concepto de acción cuyo significado es
totalmente general.
Una acción puede representar:
- Ninguna operación.
- Una operación sencilla; por ejemplo, el movimiento de un valor de un campo a otro, una operación
de salida, etc.
- Un proceso de cualquier tipo; por ejemplo, una ordenación de datos.
Con ello interpretaremos que una determinada acción representada en una de las tres estructuras puede
estar compuesta por una o más estructuras en su interior.
La notación utilizada para representar dicha acciones constara de rectángulos horizontales en cuyo
interior pondremos letras mayúsculas.
Acción A
Acción B
Acción C
♦ Estructura secuencial
Es una estructura con una entrada y una salida en la cual figuran una serie de acciones cuya ejecución
es lineal y en el orden en que aparecen. A su vez, todas las acciones atienen una única entrada y una
única salida.
SUBPROBLEMA 1 SUBPROBLEMA 2 SUBPROBLEMA 3
PRIMER
REFINAMIENTO
SEGUNDO
REFINAMIENTO
1. 1 1. 2 1. 3 2. 1 2. 2 2. 3 3. 1 3. 2
. . . . . . . . .
A
B
C
Técnicas de Programación Estructurada Página 5 de 8
A
B
C
A B C
♦ Estructura alternativa
Es una estructura con una sola entrada y una sola salida en la cual realiza una acción de entre varias,
según una condición, o se realiza una acción según el cumplimiento o no de una determinada condición.
Esta condición puede ser simple o compuesta.
Las estructuras alternativas pueden ser:
- De dos salidas, en la que una de ellas puede ser la acción nula.
- De tres o más salidas, que también se llama múltiple.
5
O
O
Condición
A
Condición
AB
Alternativa Simple Alternativa doble
V1 V2 V3 V4 Otros
O O O
Expresión
A B C D E
Alternativa Múltiple
♦ Estructura repetitiva
Es una estructura con una entrada y una salida en la cual se repite una acción un numero determinado o
indeterminado de veces, dependiendo en este caso del cumplimiento de una condición.
Las estructuras repetitivas pueden ser:
Técnicas de Programación Estructurada Página 6 de 8
- Estructura para (FOR)
- Estructura mientras (WHILE)
- Estructura hasta (UNTIL)
- Estructura iterar (LOOP)
♦ Estructura PARA (FOR)
En esta estructura se repite una acción un numero fijo de veces representado normalmente por N. Es
necesario para el control de la repetición utilizar una variable de control Vc y los valores que
asignaremos a la misma inicialmente Vi y su correspondiente valor final Vf. El incremento de la variable
de control Vc es normalmente 1, pero puede tomar otros valores positivos y negativos, en cuyos casos
es necesario indicarlo por medio de In.
El numero de repeticiones N esta dado por la formula
N=parte entera Vf – Vi + 1
In
Si N = O se obtiene un valor negativo, se dice que el bucle es inactivo y no se repite ninguna vez.
6
O
S
S
N
Vc = Vi
N
En este tipo de estructuras existen una serie de normas de obligado cumplimiento, como son:
- El In no puede ser 0 (bucle infinito).
- Vc no puede modificarse en el rango del bucle (acción A).
♦ Estructura MIENTRAS (WHILE)
En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle. La
característica principal de esta estructura es la de que la condición es evaluada siempre antes de cada
repetición.
El numero de repeticiones oscila entre 0 e infinito, dependiendo de la evaluación de la condición, cuyos
argumentos en los casos de repetición, al menos una vez, deberían modificarse dentro del bucle, pues
de no ser así el numero de repeticiones seria infinito y nos encontraremos en un bucle sin salida.
O
N
S
Vc > Vf
A
Vc = Vc + In
Vc < Vf
Vc < Vf
A
Técnicas de Programación Estructurada Página 7 de 8
♦ Estructura HASTA (UNTIL)
En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se
evalúa después de cada ejecución del mismo.
El numero de repeticiones oscila entre 1 e infinito, dependiendo de la evaluación de la condición, cuyos
argumentos en los casos de repetición, al menos dos veces, deberán modificarse dentro del bucle, pues
de no ser así el numero de repeticiones será infinito y nos encontraremos en un bucle sin salida.
7
O
N
S
A
Condición
♦ Estructura ITERAR (LOOP)
En esta estructura se repiten alternativamente dos acciones, evaluando la condición de salida entre
ambas.
El numero de repeticiones oscila, por la acción A, entre 1 e infinito, y para la acción B, entre 0 e infinito,
cumpliéndose que siempre se repite A una vez más que B.
Los bucles anteriores son casos particulares de éste.
O
S
N
A
Condición
B
Técnicas de Programación Estructurada Página 8 de 8
Ejemplo de ordinograma estructurado:
8
O
N S
INICIO
A
Condición 1
O
O
N
S
N
S
B C
Condición 2
D
E
Condición 3
FIN

Mais conteúdo relacionado

Mais procurados

Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado FinitoMaquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Rosangela Perez
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
CCCRiis
 
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
naniily
 

Mais procurados (20)

Linea del tiempo POO
Linea del tiempo POOLinea del tiempo POO
Linea del tiempo POO
 
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado FinitoMaquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
ESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICASESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICAS
 
Psp (personal software process)
Psp (personal software process)Psp (personal software process)
Psp (personal software process)
 
Ova Numeros Reales
Ova Numeros RealesOva Numeros Reales
Ova Numeros Reales
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Modelo Slim
Modelo SlimModelo Slim
Modelo Slim
 
Modelos de proceso evolutivo
Modelos de proceso evolutivoModelos de proceso evolutivo
Modelos de proceso evolutivo
 
Modelos basados en prototipos
Modelos basados en prototiposModelos basados en prototipos
Modelos basados en prototipos
 
Theory of Computation Grammar Concepts and Problems
Theory of Computation Grammar Concepts and ProblemsTheory of Computation Grammar Concepts and Problems
Theory of Computation Grammar Concepts and Problems
 
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Programacion informatica 2
Programacion informatica 2Programacion informatica 2
Programacion informatica 2
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 

Semelhante a Técnicas de programación estructurada

Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
guestefc95b
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Henry Centeno
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Luis Miguel
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
Joseph Bros
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Joao Chans
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Joao Chans
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
Kareen's Maldonado
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
Kareen's Maldonado
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
Domitho Ibarra
 
Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01
Maryfer' Ortega
 

Semelhante a Técnicas de programación estructurada (20)

Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Estructura de control
Estructura de controlEstructura de control
Estructura de control
 
Algoritmo diagrama de_flujo
Algoritmo diagrama de_flujoAlgoritmo diagrama de_flujo
Algoritmo diagrama de_flujo
 
Secuencial
SecuencialSecuencial
Secuencial
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estruturada
Programacion estruturadaProgramacion estruturada
Programacion estruturada
 
Concepto
ConceptoConcepto
Concepto
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
 
Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02Unidaddos 130504121908-phpapp02
Unidaddos 130504121908-phpapp02
 
Unidad dos
Unidad dosUnidad dos
Unidad dos
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
 
Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)Estructuras complejas de datos (Programación estructurada)
Estructuras complejas de datos (Programación estructurada)
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01Segundaunidad3 130504164926-phpapp01
Segundaunidad3 130504164926-phpapp01
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 

Mais de Gabriel Mondragón

Mais de Gabriel Mondragón (20)

Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptxPrincipios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
 
Aplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptxAplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptx
 
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptxVentajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
 
Presentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia ArtificialPresentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia Artificial
 
Convocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturoConvocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturo
 
Presentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_plantelesPresentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_planteles
 
Material didactico
Material didacticoMaterial didactico
Material didactico
 
Elaboracion material didactico
Elaboracion material didacticoElaboracion material didactico
Elaboracion material didactico
 
Segunda jornada academica y de gestion
Segunda jornada academica y de gestionSegunda jornada academica y de gestion
Segunda jornada academica y de gestion
 
Anexos comunicacion afectiva
Anexos comunicacion afectivaAnexos comunicacion afectiva
Anexos comunicacion afectiva
 
Primera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 bPrimera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 b
 
Infografia problematicas
Infografia problematicasInfografia problematicas
Infografia problematicas
 
Tercera jornada academica y de gestion
Tercera jornada academica y de gestionTercera jornada academica y de gestion
Tercera jornada academica y de gestion
 
Productos segunda jornada 2019 a
Productos segunda jornada 2019 aProductos segunda jornada 2019 a
Productos segunda jornada 2019 a
 
Aspectos positivos y negativos
Aspectos positivos y negativosAspectos positivos y negativos
Aspectos positivos y negativos
 
Abandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolaresAbandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolares
 
Primera jornada 18 b
Primera jornada 18 bPrimera jornada 18 b
Primera jornada 18 b
 
Segunda jornada 18 b
Segunda jornada 18 bSegunda jornada 18 b
Segunda jornada 18 b
 
Tecnicas modelo
Tecnicas modeloTecnicas modelo
Tecnicas modelo
 
Proyectos
ProyectosProyectos
Proyectos
 

Último

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 

Técnicas de programación estructurada

  • 1. Técnicas de Programación Estructurada Página 1 de 8 TECNICAS DE PROGRAMACION ESTRUCTURADA Introducción Las técnicas de desarrollo y diseño de programas que se utilizan en la programación convencional tienen inconvenientes, sobre todo la hora de verificar y modificar algún programa. En la actualidad están adquiriendo gran importancia las técnicas de programación, cuyo objetivo principal es el de facilitar la comprensión del programa, y además permiten, de forma rápida, las ampliaciones y modificaciones que surjan en la fase de explotación del ciclo de vida de un programa o una ampliación informática. Una forma de simplificar los programas, haciendo más sencilla su lectura y mantenimiento, es utilizar la técnica del diseño descendente de programas (TOP – DOWN). En los últimos años la técnica mas utilizada que siguen las directrices TOP – DOWN es la programación estructurada. La programación estructurada fue desarrollada en sus principios por Edsgar W. Dijkstra en sus Notes on Structures Programming y se basa en el denominado Teorema de la Estructura desarrollado en 1966 por Bohm y Jacopini, que se ratificó con los trabajos de Harlan D. Mills. En la programación convencional se suele hacer un uso indiscriminado y sin control de las instrucciones de salto condicional e incondicional, lo cual produce cierta complejidad en la lectura y en las modificaciones del programa. Eliminar estas dificultades es uno de los propósitos de la programación estructurada y, por ello, en ocasiones, se ha definido como la técnica de la programación sin saltos condicionales e incondicionales. Esto no es rigurosamente cierto, y por lo tanto no lo tomaremos como definición, sino como una norma general. Como consecuencia del párrafo anterior podemos indicar que todo programa estructurado puede ser leído de principio a fin sin interrupciones en la secuencia normal de lectura. Al mismo tiempo que se obtiene una mayor clarificación del programa por medio de estas técnicas, la puesta a punto del mismo es mucho más rápida, así como la confección de su documentación. Los programadores en la fase de diseño realizan cada tarea en módulos o bloques, los cuales pueden estandizar y así formar su propia biblioteca de programas para su utilización en sucesivas aplicaciones. En los distintos departamentos de informática existentes no siempre se dispone de los mismos programadores con respecto al tiempo que se pretende que dure una aplicación, por lo cual es de suma importancia que un programa realizado por una persona sea fácil de modificar y mantener por otra. En este sentido, la programación estructurada ofrece muchas ventajas para lograr estos objetivos. Un programa estructurado es: - Fácil de leer y comprender - Fácil de codificar en una amplia gama de lenguajes y en diferentes sistemas. - Fácil de mantener. - Eficiente, aprovechando al máximo los recursos de la computadora. - Modularizable. TEOREMA DE LA ESTRUCTURA En la actualidad existen diversas definiciones de la programación estructurada, pero todas ellas giran en torno al teorema de la estructura que, como ya hemos dicho, se debe a Bohm y Jacopini. Para un buen entendimiento del mismo realizamos la definición previa de diagrama propio, programa propio y equivalencia de programas que intervienen en su enunciado directa e indirectamente. - Diagrama propio: Es aquel que posee un solo punto de entrada y uno solo de salida. 1 A C1 B O - Programa propio: Es aquel programa que cumple las siguientes condiciones: - Posee un solo inicio y un solo fin. - Todo elemento del programa es accesible, es decir, existe al menos un camino desde el inicio al fin que pasa a través de él. - No posee bucles infinitos.
  • 2. Técnicas de Programación Estructurada Página 2 de 8 2 O INICIO A C1 B C FIN - Equivalencia de programas: Dos programas son equivalentes si realizan, ante cualquier situación de datos, el mismo trabajo pero de distinta forma. O O N N S INICIO A no C1 A B FIN Es equivalente a S INICIO A C1 B FIN - Teorema de la estructura: - La secuencia - La selección - La repetición Todo programa propio, realice el trabajo que realice, tiene siempre al menos un programa propio equivalente que solo utiliza las estructuras básicas de la programación, que son: En definitiva, el teorema nos viene a decir que, diseñando programas con sentencias primitivas (lectura, escritura y asignación) y estructuras básicas, no sólo podremos hacer cualquier trabajo sino que además conseguiremos mejorar la creación, lectura, comprensión y mantenimiento de los programas. Ejemplo: Aplicación del teorema de la estructura a un algoritmo. El siguiente programa propio no utiliza sólo estructuras básicas, como puede verse.
  • 3. Técnicas de Programación Estructurada Página 3 de 8 Encontrar un programa propio equivalente que sólo utilice dichas estructuras. 3 O N S N S O INICIO A C1 C2 C B D E FIN El equivalente estructurado, entre otros, puede ser: O N S N S O O N S INICIO A C1 C2 C SW =FALSOSW = CIERTO BD SW = CIERTO SW E FIN HERRAMIENTAS DE LA PROGRAMACION ESTRUCTURADA Además de elementos comunes en otros métodos de programación (objetos, variables auxiliares, operadores, etc.), la programación estructurada utiliza: - Diseño descendente (TOP – DOWN) - Recursos abstractos
  • 4. Técnicas de Programación Estructurada Página 4 de 8 - Estructuras básicas ♦ Diseño TOP – DOWN Los programas se diseñan de lo general a lo particular por medio de sucesivos refinamientos o descomposiciones que nos van acercando a las instrucciones finales del programa. DISEÑO PROBLEMA INICIAL TOP 4 DOWN ♦ Utilización de recursos abstractos Es el complemento perfecto para el diseño TOP – DOWN donde se utiliza el concepto de abstracción: es decir, en cada descomposición se supone que todas las partes resultantes están resueltas, dejando su realización para el siguiente refinamiento y considerando que todas ellas pueden llegar a estar definidas en instrucciones y estructuras disponibles en los lenguajes de programación. ♦ Estructuras básicas Como se indico anteriormente, el teorema de la estructura dice que toda acción se puede realizar utilizando tres estructuras básicas de control, la estructura secuencial, alternativa y repetitiva. Esta afirmación es cierta y demostrable. Para la representación gráfica de las estructuras utilizaremos el concepto de acción cuyo significado es totalmente general. Una acción puede representar: - Ninguna operación. - Una operación sencilla; por ejemplo, el movimiento de un valor de un campo a otro, una operación de salida, etc. - Un proceso de cualquier tipo; por ejemplo, una ordenación de datos. Con ello interpretaremos que una determinada acción representada en una de las tres estructuras puede estar compuesta por una o más estructuras en su interior. La notación utilizada para representar dicha acciones constara de rectángulos horizontales en cuyo interior pondremos letras mayúsculas. Acción A Acción B Acción C ♦ Estructura secuencial Es una estructura con una entrada y una salida en la cual figuran una serie de acciones cuya ejecución es lineal y en el orden en que aparecen. A su vez, todas las acciones atienen una única entrada y una única salida. SUBPROBLEMA 1 SUBPROBLEMA 2 SUBPROBLEMA 3 PRIMER REFINAMIENTO SEGUNDO REFINAMIENTO 1. 1 1. 2 1. 3 2. 1 2. 2 2. 3 3. 1 3. 2 . . . . . . . . . A B C
  • 5. Técnicas de Programación Estructurada Página 5 de 8 A B C A B C ♦ Estructura alternativa Es una estructura con una sola entrada y una sola salida en la cual realiza una acción de entre varias, según una condición, o se realiza una acción según el cumplimiento o no de una determinada condición. Esta condición puede ser simple o compuesta. Las estructuras alternativas pueden ser: - De dos salidas, en la que una de ellas puede ser la acción nula. - De tres o más salidas, que también se llama múltiple. 5 O O Condición A Condición AB Alternativa Simple Alternativa doble V1 V2 V3 V4 Otros O O O Expresión A B C D E Alternativa Múltiple ♦ Estructura repetitiva Es una estructura con una entrada y una salida en la cual se repite una acción un numero determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una condición. Las estructuras repetitivas pueden ser:
  • 6. Técnicas de Programación Estructurada Página 6 de 8 - Estructura para (FOR) - Estructura mientras (WHILE) - Estructura hasta (UNTIL) - Estructura iterar (LOOP) ♦ Estructura PARA (FOR) En esta estructura se repite una acción un numero fijo de veces representado normalmente por N. Es necesario para el control de la repetición utilizar una variable de control Vc y los valores que asignaremos a la misma inicialmente Vi y su correspondiente valor final Vf. El incremento de la variable de control Vc es normalmente 1, pero puede tomar otros valores positivos y negativos, en cuyos casos es necesario indicarlo por medio de In. El numero de repeticiones N esta dado por la formula N=parte entera Vf – Vi + 1 In Si N = O se obtiene un valor negativo, se dice que el bucle es inactivo y no se repite ninguna vez. 6 O S S N Vc = Vi N En este tipo de estructuras existen una serie de normas de obligado cumplimiento, como son: - El In no puede ser 0 (bucle infinito). - Vc no puede modificarse en el rango del bucle (acción A). ♦ Estructura MIENTRAS (WHILE) En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle. La característica principal de esta estructura es la de que la condición es evaluada siempre antes de cada repetición. El numero de repeticiones oscila entre 0 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos una vez, deberían modificarse dentro del bucle, pues de no ser así el numero de repeticiones seria infinito y nos encontraremos en un bucle sin salida. O N S Vc > Vf A Vc = Vc + In Vc < Vf Vc < Vf A
  • 7. Técnicas de Programación Estructurada Página 7 de 8 ♦ Estructura HASTA (UNTIL) En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se evalúa después de cada ejecución del mismo. El numero de repeticiones oscila entre 1 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos dos veces, deberán modificarse dentro del bucle, pues de no ser así el numero de repeticiones será infinito y nos encontraremos en un bucle sin salida. 7 O N S A Condición ♦ Estructura ITERAR (LOOP) En esta estructura se repiten alternativamente dos acciones, evaluando la condición de salida entre ambas. El numero de repeticiones oscila, por la acción A, entre 1 e infinito, y para la acción B, entre 0 e infinito, cumpliéndose que siempre se repite A una vez más que B. Los bucles anteriores son casos particulares de éste. O S N A Condición B
  • 8. Técnicas de Programación Estructurada Página 8 de 8 Ejemplo de ordinograma estructurado: 8 O N S INICIO A Condición 1 O O N S N S B C Condición 2 D E Condición 3 FIN