Estructuras de Control

Embed Size (px)

DESCRIPTION

Estructuras de control

Citation preview

Estructuras de controlPor lo general, las instrucciones dentro de un programa se ejecutan una a una en el orden en que estn escritas.A esto se le llama ejecucin secuencial. Varias instrucciones de C, que explicaremos ms adelante, permiten alprogramador especificar que la siguiente instruccin a ejecutarse debe ser otra y no la siguiente en la secuencia.A esto se le llama transferencia de control.Durante la dcada de los sesentas, se hizo claro que el uso indiscriminado de transferencias de control erael origen de un gran nmero de dificultades que experimentaban los grupos de desarrollo de software. El dedode la culpa apunto hacia la instruccin goto, que permite al programador especificar una transferencia de controla un amplio margen de destinos posibles dentro de un programa. La idea de la programacin estructuradase convirti casi en un sinnimo de la eliminacin del goto.Las investigaciones de Bohm y Jacopini1 demostraron que los programas se pueden escribir sin instruccingoto alguna. El reto para los programadores de la poca era modificar sus estilos hacia una programacincon menos instrucciones goto. No fue sino hasta la dcada de los setenta que los profesionales de la progra-Captulo 3 Desarrollo de programas estructurados en C 511. Bohm, C., y G. Jacopini, Flow diagrams, Turing Machines, and Languages with Only Two Formation Rules, Communicationsof the ACM, Vol. 9, No. 5, mayo de 1996, pp. 336 a 371.macin comenzaron a tomar en serio a la programacin estructurada. Los resultados fueron impresionantes, losgrupos de desarrollo de software reportaron una reduccin en los tiempos de desarrollo, la entrega ms oportunade los sistemas y el apego ms frecuente al presupuesto de los proyectos de software. La clave de este xitofue simplemente que los programas producidos mediante tcnicas estructuradas eran ms claros, ms fcilesde mantener y depurar, y tenan ms probabilidades de estar libres de errores desde el principio.El trabajo de Bohm y Jacopini demostr que todos los programas se podan escribir en trminos de slotres estructuras de control, a saber, la estructura secuencial, la estructura de seleccin, y la estructura de repeticin.La estructura de secuencia se encuentra esencialmente dentro de C. A menos que se le indique lo contrario,la computadora ejecuta de manera automtica las instrucciones en C, una a una, en el orden en que estnescritas. El segmento de diagrama de flujo de la figura 3.1 muestra la estructura secuencial de C.Un diagrama de flujo es una representacin grfica de un algoritmo o de una porcin de un algoritmo. Losdiagramas de flujo se dibujan mediante smbolos de propsito especial tales como rectngulos, rombos, valos,y pequeos crculos; estos smbolos se conectan mediante flechas llamadas lneas de flujo.Como el pseudocdigo, los diagramas de flujo son tiles para desarrollar y representar algoritmos, aunquela mayora de los programadores prefieren el pseudocdigo. Los diagramas de flujo muestran claramente la maneraen que operan las estructuras de control; esto es lo nico para lo que los utilizaremos en este libro.Considere el diagrama de flujo para la estructura secuencial de la figura 3.1. Utilizamos el smbolo rectngulo,tambin llamado smbolo de accin, para indicar cualquier tipo de accin, incluyendo una operacin declculo o de entrada/salida. Las lneas de flujo de la figura indican el orden en el que se realizan las acciones(primero, se suma calificacion a total y posteriormente se suma 1 a contador. C nos permite teneren una estructura secuencial tantas acciones como deseemos. Como veremos ms adelante, en cualquier lugar endonde coloquemos una accin, tambin podemos colocar muchas acciones en secuencia.Cuando dibujamos un diagrama de flujo que representa un algoritmo completo, el primer smbolo que seutiliza es un valo que contiene la palabra Inicio; y el ltimo smbolo que se utiliza es un valo que contienela palabra Fin. Cuando dibujamos slo una porcin de un algoritmo, como en la figura 3.1, se omiten lossmbolos de valo y se emplean pequeos crculos tambin llamados smbolos conectores.Quiz el smbolo ms importante dentro de un diagrama de flujo es el rombo, tambin llamado smbolo dedecisin, el cual indica que se va tomar una decisin. Explicaremos el smbolo de decisin en la siguiente seccin.C proporciona tres tipos de estructuras de seleccin en forma de instrucciones. La instruccin de seleccin if(seccin 3.5) realiza (selecciona) una accin si la condicin es verdadera, o ignora la accin si la condicines falsa. La instruccin de seleccin if else (seccin 3.6) realiza una accin si la condicin es verdadera yrealiza una accin diferente si la condicin es falsa. La instruccin de seleccin switch (la cual explicaremosen el captulo 4) realiza una de muchas acciones dependiendo del valor de una expresin. A la instruccin if sele conoce como una instruccin de seleccin simple, debido a que selecciona o ignora una sola accin. A la instruccinif else se le conoce como una instruccin de seleccin doble, debido a que selecciona entre dosacciones diferentes. A la instruccin switch se le conoce como una instruccin de seleccin mltiple, debidoa que selecciona entre muchas acciones diferentes.C proporciona tres tipos e estructuras de repeticin en forma de instrucciones, a saber, while (seccin3.7), do while, y for (estas dos ltimas las explicaremos en el captulo 4).