A **programación estruturada** é unha forma de escribir programación de computadora de forma **clara**, para iso utiliza unicamente tres estruturas: secuencial, selectiva e iterativa; sendo innecesario e non permitíndose o uso da instrución ou instrucións de transferencia incondicional (GOTO).

Hoxe en día as aplicacións informáticas son moito máis ambiciosas que as necesidades de programación existentes nos anos 60, principalmente debido ás aplicacións gráficas, polo que as técnicas de programación estruturada non son suficientes o que levou ao desenvolvemento de novas técnicas tales como a programación orientada ou obxectos e o desenvolvemento de contornas de programación que facilitan a programación de grandes aplicacións.

Orixes da programación estruturada
----------------------------------

A finais dos anos sesenta xurdiu unha nova forma de programar que non soamente daba lugar a programas fiables e eficientes, senón que ademais estaban escritos de maneira que facilitaba a súa comprensión posterior.

Un famoso Teorema de Dijkstra, demostrado por Edsger Dijkstra nos anos sesenta, demostra que todo programa pode escribirse utilizando unicamente as tres instrucións de control seguintes:

* Secuencia
* Instrución condicional.
* Iteración (bucle de instrucións) con condición ao principio.

Soamente con estas tres estruturas pódense escribir programas e aplicacións (programa informático), aínda que as linguaxes de programación teñen un maior repertorio de estruturas de control.

Por exemplo, en Visual Basic a secuencia de instrucións consiste na escritura dunha instrución debaixo doutra (tamén se poden pór na mesma liña separadas polo símbolo de dous puntos ":" aínda que non é recomendable). A instrución condicional é a instrución If e a iteración con condición ao comezo sería a instrución do-while-loop ou while-wend.

Vantaxes da programación estruturada
------------------------------------

Coa programación estruturada, elaborar programas de computador segue sendo un labor que demanda esforzo, creatividade, habilidade e coidado. Con todo, con este estilo podemos obter as seguintes vantaxes:

1. Os programas son máis fáciles de entender, xa que poden ser lido de forma secuencial, sen necesidade de facer seguimento a saltos de liña (GOTO) dentro dos bloques de código para entender a lóxica.
2. A estrutura do programa é clara posto que as instrucións están máis ligadas ou relacionadas entre si.
3. Redución do esforzo nas probas. O seguimento dos fallos ou erros do programa ("debugging") facilítase debido á estrutura máis visible, polo que os erros pódense detectar e corrixir máis facilmente.
4. Redución dos custos de mantemento dos programas.
5. Programas máis sinxelos e máis rápidos (xa que é máis fácil a súa optimización).
6. Os bloques de código son auto explicativos, o que facilita á documentación.
7. Os GOTO resérvanse para construír as instrucións básicas (selección e iteración)

Inconvenientes da programación estruturada
------------------------------------------

O principal inconveniente deste método de programación, é que se obtén un único bloque de programa, que cando se fai demasiado grande pode resultar problemático o seu manexo, isto resólvese empregando a programación modular, definindo módulos interdependientes programados e compilados por separado. Un método un pouco máis sofisticado é a programación por capas, na que os módulos teñen unha estrutura xerárquica moi definida e denomínanse capas.

Véxase tamén
------------

Moitas veces, dentro da Programación Estruturada considéranse as seguintes técnicas:

* Deseño estruturado
* Programación modular
* Pseudocódigo

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q223335
* BNE: XX531013
* BNF: 11966709k
* GND: 4058133-0
* LCCN: sh85129214
* MAG: 77781355
* PSH: 6635

 |