You are on page 1of 20

PROGRAMACIN ESTRUCTURADA Es una tcnica en la cual la estructura de un programa se realiza tan claramente cmo es posible mediante el uso de tres

estructuras lgicas de control, que son: secuencia, seleccin e iteracin. Que pueden ser combinados para producir programas que manejen cualquier tarea de procesamiento de informacin. Un programa estructurado est compuesto de segmentos, constituidos por instrucciones de codificacin. Cada segmento tiene solamente una entrada infinitos una salida, estos segmentos, asumiendo que no poseen lazos no tienen instrucciones que jams se ejecuten, se denominan

programas propios. Cuando !arios programas propios se combinan utilizando las tres estructuras bsicas de control mencionadas anteriormente, el resultado es tambin un programa propio. Una caracter"stica importante en un programa estructurado es que puede ser le"do en secuencia, desde el comienzo #asta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programacin. Esto es importante debido a que, es muc#o ms fcil comprender completamente el trabajo que realiza una funcin determinada, si todas las instrucciones que influ en en su accin estn f"sicamente contiguas estructuras de control encerradas por un bloque. $a facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres de eliminar la instruccin de des!"o de flujo de control, e%cepto en circunstancias mu especiales tales como la simulacin de una estructura lgica de control en un lenguaje de programacin que no la posea. Un programa escrito de acuerdo a estos principios no solamente tendr una estructura, sino tambin una e%celente presentacin.

$a facilidad de comprensin del contenido de un programa puede facilitar el c#equeo de la codificacin reducir el tiempo de prueba depuracin de programas. Esto &ltimo es cierto parcialmente, debido a que la programacin estructurada concentra los errores en uno de los factores ms generador de fallas en programacin: la lgica. Un programa que es fcil para leer el cual est compuesto de menos e%puesto a

segmentos bien definidos tiende a ser simple, rpido

mantenimiento. Estos beneficios deri!an en parte del #ec#o que, aunque el programa tenga una e%tensin significati!a, en documentacin tiende siempre a estar al d"a, esto no suele suceder con los mtodos con!encionales de programacin. $a programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea a que el desarrollo de programas es, principalmente, una tarea de dedicacin, esfuerzo creati!idad.

Teorema de la Programacin Estructurada $a programacin Estructurada est basada en el 'eorema de la Estructura o 'eorema del (rograma Estructurado, propuesto por )*#m+ ,acopini, establece que toda funcin computable puede ser implementada en un lenguaje de programacin que combine slo tres estructuras lgicas, tambin llamadas estructuras de control- es decir, que todo programa puede escribirse utilizando &nicamente las tres instrucciones de control siguientes: ! Secuencia: ejecucin de una instruccin tras otra. En trminos de diagrama de flujo la secuencia es representada por una funcin despus de la otra, como se muestra a continuacin.

"

) pueden ser instrucciones sencillas #asta mdulos completos, lo ) deben ser programas propios en el

importante es que sean programas propios, independientemente de su tama/o o complejidad interna. . entrada una salida. sentido en que estos fueron definidos, es decir, que posean solamente una

#! Seleccin: ejecucin de una de dos instrucciones 0o conjunto de instrucciones1, seg&n el !alor de una !ariable booleana. Esta estructura de control es denominada usualmente 23'4E5E$6E. $a representacin en forma de diagrama de flujo de esta estructura lgica de control se muestra a continuacin:

A
7

P
3

B
8onde ( es predicado . ) son las dos funciones. $! Iteracin: ejecucin de una instruccin 0o conjunto de instrucciones1 mientras se cumpla una condicin. Esta estructura lgica tambin se conoce como ciclo o bucle. . esta estructura se le conoce como 89:42$E 0#acer mientras1 su representacin se muestra a continuacin:

A
7

8onde ( es predicado

. es el modulo controlado.

6e debe comprender claramente que un rectngulo, que representa un modulo en un diagrama, siempre puede ser sustituido por cualquiera de las tres estructuras de control descritas anteriormente- por ejemplo, !eamos el diagrama siguiente:

X d Y

V F

P
En l, la l"nea punteada limita un rectngulo que contiene una estructura, que a su !ez controla dos mdulos ; forma: <. $a estructura limitada por la l"nea punteada es sustituida por una funcin quedando de la siguiente

A
7

P
3 Es decir, una funcin sustitu e a una estructura F lgica de control o !ice!ersa.

Este teorema demuestra que la instruccin =o'o 0del ingls >go to>, que significa >ir a>1 no es estrictamente necesaria que para todo programa que la utilice e%iste otro equi!alente que no #ace uso de dic#a instruccin.

Estructuras de Control $as estructuras de control, denominadas tambin sentencias de control, permiten tomar decisiones realizar un proceso repetidas !eces. 6e trata de estructuras mu importantes, a que son las encargadas de controlar el flujo de un programa, seg&n los requerimientos del mismo. $as estructuras de control permiten modificar el flujo de ejecucin de las instrucciones de un programa. Con las estructuras de control se puede:

8e acuerdo a una condicin, ejecutar un grupo u otro de sentencias 6elect+Case1 Ejecutar un grupo de sentencias mientras e%ista una condicin 08o+ Ejecutar un grupo de sentencias %asta que e%ista una condicin 08o+ Ejecutar un grupo de sentencias un n&mero determinado de !eces un

02f+'#en+Else

:#ile1

Until1

03or+5e%t1. 'odas las estructuras de control tienen un &nico punto de entrada secuenciales, iterati!as &nico punto de salida. $as estructuras de control se puede clasificar en: de control a!anzadas. $os lenguajes de programacin modernos tienen estructuras de control similares. )sicamente lo que !ar"a entre las estructuras de control de los diferentes lenguajes es su sinta%is, cada lenguaje tiene una sinta%is propia para e%presar la estructura.

Ti&os de Estructuras de Control E'ecucin secuencial (or lo general las instrucciones se ejecutan una despus de la otra, en el orden en que estn escritas, es decir, en secuencia. Este proceso se conoce como ejecucin secuencial. Transferencia de control: En muc#os de los lenguajes de

programacin por e%celencia como C ?o C@@, el programador puede especificar que las siguientes instrucciones a ejecutarse tal !ez no sean en secuencia. Esto se conoce como transferencia de control. 4a que tener en cuenta que la instruccin =o'o es una palabra reser!ada pero no se utiliza ni se recomienda, un programa bien estructurado no necesita de esta instruccin.
De seleccin: $as estructuras de control de seleccin, ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina seg&n se cumpla o no una condicin. .- Seleccin simple if 6e trata de una estructura de control que permite redirigir un curso de accin seg&n la e!aluacin de una condicin simple, sea falsa o !erdadera. 6i la condicin es !erdadera, se ejecuta el bloque de sentencias A, de lo contrario, se ejecuta el bloque de sentencias B.
IF (Condicin) THEN (Bloque de sentencias 1) ELSE (Bloque de sentencias 2) END IF

6e pueden plantear m&ltiples concisiones simultneamente, si se cumple la 0Condicin A1, se ejecuta 0)loque de sentencias A1 en caso contrario se comprueba la 0Condicin B1, si es cierta se ejecuta 0)loque de

sentencias B1,

as" sucesi!amente #asta n condiciones, si ninguna de ellas

se cumple se ejecuta 0)loque de sentencias else1.


IF (Condicin 1) THEN (Bloque de sentencias 1) ELSEIF (Condicin 2) THEN (Bloque de sentencias 2) ..... ELSEIF (Condicin n) THEN (Bloque de sentencias n) ELSE (Bloque de sentencias ELSE) END IF

.- Select-Case Esta sentencia permite ejecutar una de entre !arias acciones en funcin del !alor de una e%presin. Es una alternati!a a if then else cuando se compara la misma e%presin con diferentes !alores.

6e e!al&a la e%presin, dando como resultado un n&mero. $uego, se recorren los >Case> dentro de la estructura buscando que el n&mero coincida con uno de los !alores. Es necesario que coincidan todos sus !alores. Cuando se encuentra la primera coincidencia, se ejecuta el bloque de sentencias correspondiente se sale de la estructura 6elect+Case. 6i no se encuentra ninguna coincidencia con ning&n !alor, se ejecuta el bloque de sentencias de la seccin >Case Else>.

SELECT (Ex !esin) C"SE #alo!1 (Bloque de sentencias C"SE #alo!2 (Bloque de sentencias C"SE #alo! n (Bloque de sentencias C"SE ELSE (Bloque de sentencias END SELECT

1) 2) n) $Else$)

Estructuras de control iterati(as $as estructuras de control iterati!as o de repeticin, inician o repiten un bloque de instrucciones si se cumple una condicin o mientras se cumple una condicin. Do-While Cientras la condicin sea !erdadera, se ejecutarn las sentencias del bloque.
D% &HILE (Condicin) (Bloque de sentencias) L%%'

Que tambin puede e%presarse:


&HILE (Condicin) (Bloque de sentencias) &END

Do-Until 6e ejecuta el bloque de sentencias, #asta que la condicin sea !erdadera.


D%

(Bloque de sentencias) L%%' (NTIL (Condicin)

For-Next $a sentencia For da lugar a un lazo o bucle, conjunto de sentencias cierto n&mero de !eces.

permite ejecutar un

(rimero, se e!al&an las e%presiones A n&meros.

B, dando como resultado dos

$a !ariable del bucle recorrer los !alores desde el n&mero dado por la e%presin A #asta el n&mero dado por la e%presin B.

El bloque de sentencias se ejecutar en cada uno de los !alores que tome la !ariable del bucle.

F%) (#a!ia*le) + (Ex !esin1) T% (Ex !esin2) STE' (Salto) (Bloque de sentencias) NE,T

Estructuras anidadas $as estructuras de control bsicas pueden anidarse, es decir pueden ponerse una dentro de otra. Estructura For-Next dentro de una estructura f-Then-Else
IF " - B THEN F%) , + 1 T% . (Bloque de sentencias 1) NE,T ELSE (Bloque de inst!ucciones 2) END IF

Estructura f-Then-Else dentro de estructura For-Next


F%) x + 1/ T% 2/ STE' 2 IF " ++ C THEN (Bloque de inst!ucciones) ELSE (Bloque de inst!ucciones) END IF NE,T

Estructura For-Next !ue est" dentro de estructura Do-While


D% &HILE " - / F%) , + 1 T% 1/ (Bloque de inst!ucciones) NE,T " + " 0 1 L%%'

PROGRAMACIN MODU)AR . medida que a!anza el tiempo, los problemas que se espera que un computador resuel!a se !uel!en ms mu ms complejos. .s", es en realidad e%tra/o que se pueda dise/ar un algoritmo simple que resuel!a un

problema real #o en d"a, por lo que es necesario plantearse alg&n tipo de subdi!isin que #aga el problema abordable. Este tipo de programacin consiste en di!idir un programa en mdulos o subprogramas con el fin de #acerlo ms legible manejable, se presenta #istricamente como una complejos. e!olucin de la programacin estructurada para solucionar problemas de programacin ms grandes

.l aplicar la programacin modular a un problema complejo debe ser di!idida en !arios sub+problemas ms simples, estos a su !ez en otros sub+ problemas ms simples. Esto debe #acerse #asta obtener sub+problemas lo suficientemente simples como para poder ser resueltos fcilmente con alg&n lenguaje de programacin. Un mdulo es cada una de las partes de un programa que resuel!e uno de los sub+problemas en que se di!ide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida, 6i bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus formas procedimiento !ariados conte%tos, en la prctica se los suele tomar como sinnimos de funciones. (ero no necesaria ni estrictamente un mdulo es una funcin o un procedimiento, a que el mismo puede contener muc#os de ellos, no debe confundirse el trmino >modulo> 0en el sentido de

programacin modular1 con trminos como >funcin> o >procedimiento>, propios del lenguaje que lo soporte.

Diagrama del *uncionamiento de un su+&rograma!

3ortran 0creado en ADEF, por ,#on )acGus1 es el lenguaje original de programacin procedimental, aunque #o en d"a la ma or"a de los lenguajes de programacin la permiten. El lenguaje (ascal 0de principios de los HI, creado por 5iGlaus :irt#1, es mu conocido debido al refuerzo que #ac"a de este tipo de programacin. En este tipo de programacin, el programador debe concentrarse en que cada procedimiento tenga una interfaz consistente, describiendo los argumentos de entrada independiente del resto. los de salida, que cada procedimiento sea

Procedimientos , -unciones Un algoritmo que resol!iera un problema complejo, contendr"a cientos o miles de l"neas de cdigo en su interior. Esto es inabarcable para cualquier programador, por lo que se utiliza el concepto de procedimientos para subdidi!ir el problema en partes. funciones

$a idea es que cada una de estas partes contenga un conjunto de instrucciones que permita la ejecucin de alg&n proceso determinado desde el punto de !ista #umano. Ejemplos, funcin procedimiento respecti!amente: lgico

3U5C295 multiplicar 0E a: E5'EJ9, E b: E5'EJ91: E5'EJ9 JE'9J5. 0 a K b 1 325L3U5C295 (J9CE82C2E5'9 escribirEdad 0E mensaje: C.8E5., E edad: E5'EJ91 E6CJ2)2J 0 mensaje, edad 1 325L(J9CE82C2E5'9 $a descomposicin del softMare en tareas tambin se conoce con el nombre de top-down refinamiento1, una o fue presentada por primera !ez por 5iGlaus :irt#. !arias instrucciones del programa dado, se Este autor proporciona la siguiente !isin de refinamiento: NEn cada paso 0del descomponen en instrucciones ms detalladas. Esta descomposicin sucesi!a o refinamiento de especificaciones termina cuando todas las instrucciones estn e%presadas en trminos de la computadora usada o del lenguaje de programacinO Conforme se refinan las tareas, tambin los datos pueden ser refinados, descompuestos o estructurados siendo natural refinar las especificaciones del programa los datos en paralelo.

Cada paso de refinamiento implica algunas decisiones de dise/o. Es importante que el programador sea consciente de los criterios sub acentes en las decisiones de dise/o adoptadas alternati!asOP '"picamente, una descomposicin insuficiente de un problema en tareas conduce a la definicin de pocos procedimientos, cada uno de las cuales implementar m&ltiples funcionalidades. -unciones Una funcin es una un conjunto de instrucciones, con un nombre asociado, que cumple las siguientes caracter"sticas: .+ 'iene uno o ms parmetros de entrada. .+ 'iene un parmetro e%clusi!amente de salida requieren el #ec#o de que el parmetro sea simple. .+ 'odos los !alores de entrada son necesarios determinar el !alor de salida. 6u sinta%is es la siguiente: 3U5C295 nombreLfuncion0lista de parmetros formales1: 'ipoLdeLsalida C956'.5'E6 ... '2(96 ... 7.J2.)$E6 ... suficientes para de tipo simple 0es de la e%istencia de soluciones

decir, lo que de!uel!e1. .unque algunos lenguajes de programacin no

252C29 instruccin A instruccin B JE'9J5. 0 e%presin 1Q de 'ipoLdeLsalida R 325L3U5C295 Procedimientos Esta codificacin muc#as !eces es aplicable tanto en lenguajes de programacin de bajo ni!el como en lenguajes de alto ni!el. En el caso de que esta tcnica se aplique en lenguajes de alto ni!el, recibir el nombre de programacin funcional. Esta tcnica consiste en basarse de un n&mero mu bajo de e%presiones repetidas, englobarlas todas en un procedimiento o funcin llamarlo cada !ez que tenga que ejecutarse.

Esta tcnica de programacin ofrece mu buena respuesta en relacin al tama/o de los programas, en bruto casi no se nota en la !elocidad de ejecucin de los mismos 0mientras que las !ariables, constantes o "ndices de !ector estn en memoria, como suele ser normal, estos se relacionarn entre s", sin una carga de memoria considerablemente alta para los procesadores modernos1- aunque es mu procedimientos pura. E#emplo: 6i queremos mostrar el anterior, el posterior funciones 0a alto ni!el1 ser"a: funcion aLp0 numero 1 Q out0numero+A1out0numero1un propio complicado conseguir una (rogramacin por

n&mero de una lista 0!ector1, un pseudocdigo por procedimientos o

out0numero@A1R for0 i S I- i T tama/o0lista1- i@@1Q aLp0 listaUiV 1R 9 si queremos di!idir al n&mero por B,W,F,E,X,H,Y,D pseudocdigo: funcion di!0numero1 Q out0numero?B1out0numero?W1out0numero?F1out0numero?E1out0numero?X1out0numero?H1out0numero?Y1out0numero?D1out0numero?AI1R for0 i S I- i T tama/o0lista1- i@@1Q di!0 listaUiV 1R Utilizar este tipo de (rogramacin puede resultar mu &til a la #ora de programar grandes pro ectos, a que se crea una inmensa estanter"a de funciones especiales para procedimientos utilizados con frecuencia dentro del programa. AI en otro

(or contrapartida, es mu dif"cil determinar cul es el n&mero m"nimo de instrucciones consecuti!as, el m"nimo n&mero que esta secuencia se debe repetir para considerar declarar un procedimiento o una funcin. .m+ito de /aria+le $as !ariables slo se pueden referenciar desde la funcin o procedimiento en la que estn declaradas. .s", es fundamental restringir el uso de !ariables a las funciones o procedimientos en las que estn declaradas para no sufrir errores de programacin debida a efectos laterales. El mbito de una !ariable local o parmetro formal declarada dentro de una funcin o procedimiento es la propia funcin o procedimiento, cu as instrucciones pueden modificarla o consultarla. . !eces, esto puede complicarse debido a que ciertos lenguajes de programacin, como (ascal, permiten crear funciones 0locales1 dentro de funciones, de manera que las !ariables locales parmetros formales creados para la contenedora sir!en para todas las locales. 9tros lenguajes, como C@@, permiten crear bloques dentro de funciones o procedimientos, de manera que las !ariables creadas dentro de ellos tienen como mbito slo el bloque mencionado, la funcin. /aria+les )ocales , Glo+ales $as !ariables que aparecen en un algoritmo o programa se di!iden atendiendo a su mbito en locales globales. sin embargo se puede acceder al resto de !ariables de

/aria+le )ocal 7ariable declarada dentro de un subprograma , por tanto, slo

disponible durante el funcionamiento del mismo. .quellas cu o mbito de actuacin se reduce a la funcin o procedimiento donde estn definidas. 3uera de su funcin o procedimiento, estas !ariables no sern conocidas. /aria+le Glo+al 7ariable declarada en el programa principal utilizadas por el programa principal , por ello, pueden ser funciones del

por todos sus subprogramas, su mbito

de actuacin se e%tiende a todas los procedimientos

algoritmo, siempre que no se #a an 0re1definido en el interior de alguna de ellas, bien !ariables locales o bien como parmetros, con el mismo identificador. $a comunicacin entre un programa a tra!s de parmetros, no de !ariables. funciones debe un subprograma debe realizarse

El intercambio de informacin entre procedimientos producirse siempre a tra!s de los parmetros

nunca a tra!s de !ariables

globales. Cualquier otro dato cu o uso slo tenga sentido dentro de una funcin o procedimiento, se declarar como una !ariable local a sta, incluso en el caso de que una !ariable similar con el mismo identificador use en otros procedimientos 'al funciones. tipo se

como se #a comentado con respecto a las !ariables globales, una

!ariable local de una funcin o procedimiento oculta a la !ariable global con el mismo identificador.

)lamada de una -uncin , &ase de Par0metro Par0metros de un Procedimiento o -uncin $os parmetros o argumentos de una funcin o procedimiento son el mecanismo que permite el intercambio de datos entre la funcin o procedimiento que es llamado el que realiza la llamada.

En el momento de definir una funcin o procedimiento, es necesario especificar los parmetros, con el tipo asociado. En este momento, los parmetros se denominan formales. (or otra parte, en el momento de #acer la llamada a una funcin o procedimiento, cuando se utilizan literales o !ariables como lista de parmetros 0que deben emparejarse con los parmetros formales en cuanto al tipo orden1. Estos parmetros se denominan reales.

$ar"metros de entrada: (ermiten aportar datos a funcin o procedimiento por parte del algoritmo que le in!oca. Un parmetro real asociado con un parmetro formal de entrada, puede ser un literal, una !ariable o incluso el !alor que se obtendr como resultado de la e!aluacin de una e%presin. $a definicin de un parmetro formal de entrada se #ace anteponiendo el modificador E delante del nombre del parmetro formal. Codificando un parmetro formal de entrada nunca se modifica el correspondiente parmetro real. $ar"metros de salida: (ermiten que la accin pueda de!ol!er resultados de su ejecucin al algoritmo que in!oca. El parmetro real asociado con un parmetro formal de este tipo debe ser necesariamente una

!ariable en la que almacenar el resultado de!uelto por la accin. Esa !ariable no tiene porque #aber sido inicializada con anterioridad. Cualquier accin o modificacin realizada sobre el parmetro formal de salida se refleja, de forma inmediata, sobre el correspondiente parmetro real. (ara la definicin de un parmetro formal de salida se debe anteponer el modificador 6 delante del nombre formal. $ar"metros de entrada%salida: $os parmetros de entrada?salida permiten aportar datos de entrada en un procedimiento o funcin, que sta los modifique los de!uel!a como resultado al algoritmo que la in!oca. El parmetro real asociado con un parmetro formal declarado de entrada ?salida, necesariamente debe ser una !ariable donde almacenar el !alor de!uelto por el procedimiento o funcin in!ocada debe #aber sido inicializado pre!iamente a la in!ocacin. $a declaracin de un parmetro de entrada?salida se #ar anteponiendo el modificador E?6 delante del nombre del parmetro formal en la definicin de la funcin. .m+ito de un &rocedimiento o *uncin En general, se entiende por mbito de un procedimiento o funcin, el conjunto de otras funciones o procedimientos que pueden in!ocarla.

"I")IOGRA-1A #ttp:??es.MiGipedia.org?MiGi?(rogramaciZCWZ)WnLporLprocedimientos #ttp:??MMM.dccia.ua.es?dccia?inf?asignaturas?3(A?teoria?pdf?'emaE.pdf #ttp:??es.MiGipedia.org?MiGi?(rogramaciZCWZ)WnLmodular #ttp:??MMM.mcgraM+#ill.es?bc!?guide?capitulo?YFFYAFYHIW.pdf #ttp:??MMM.monografias.com?trabajos?progestructu?progestructu.s#tml


#ttp:??es.MiGipedia.org?M?inde%.p#p[

titleSEspecial:$ibro\booGcmdSdoMnload\collectionLidSfaffYIcHfDIFYHHX\Mri terSrl\returnLtoS(rogramaciZCWZ)Wn@estructurada

You might also like