Diseño Estructurado de Algoritmos DISEÑO ESTRUCTURADO DE ALGORITMOS Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas conocidas como ciclos con la finalidad de resolver problemas reales. Contextualización ¿Qué estructuras permiten que exista un control en el programa? El tema es extenso cuando se habla de estructuras algorítmicas, porque el hombre con el afán de resolver toda clase de problemas, se dio a la tarea de buscar formas de trabajo que pudieran ser manejadas por todo tipo de persona que tuviera interés en el mundo de la programación. Al conjunto de formas de trabajo que permiten el manejo de variables para la realización de procesos con los que se pueda llegar a la solución de problemas los denomino estructuras. El hecho de que se crearan las estructuras fue para estandarizar, lo que se pretendía era que un programa pudiera ser entendido fácilmente por cualquier tipo de persona, no sólo por su creador. Cada tipo de estructura cubre una necesidad en específico, según el problema planteado. Las que hemos revisado hasta el momento son: • Estructura secuencial • Estructura condicional • Estructura Repetitiva Estas estructuras se aplican según la función de cada programa, son diseñadas para resolver desde problemas menores, hasta los más complejos que requieren el control de alternativas. 1 DISEÑO ESTRUCTURADO DE ALGORITMOS Introducción al Tema ¿Cómo te imaginas que se aplican los ciclos en un programa? En esta sesión la estructura que se abordará a profundidad es la repetitiva. Como recordaremos, es aquella que permite que se ejecute una serie de acciones un número finito de veces. En este tipo de estructuras el programador tiene el control, porque al colocar adecuadamente una condición lógica le podrá indicar al programa cuantas veces pueda ejecutar una instrucción. Mediante el lenguaje de programación se manejan distintas formas en las que se consigue que un grupo de instrucciones realice repeticiones, a estas formas se les denomina “Ciclos”. Los ciclos son sentencias de código que permiten un ahorro de tiempo al momento de programar, una mayor claridad, reduce el tamaño del programa y evita problemas si se desean hacer modificaciones. Estas sentencias de repetición se desprenden de la estructura repetitiva y se clasifican en 3 • Ciclo para • Ciclo mientras • Ciclo hacer 2 DISEÑO ESTRUCTURADO DE ALGORITMOS Explicación Repetitivas ¿Qué es iterar? Uno de los conceptos que se maneja en programación es la denominada iteración, un verbo utilizado como sinónimo de repetir que expresa el proceso de la estructura repetitiva. Los ciclos son sentencias que le brindan control a un programa al momento de realizar iteraciones. Estos ciclos se clasifican en: 1. Ciclo para: Este ciclo se encarga de controlar la ejecución de un bloque de instrucciones, el número de veces que se ejecuta se determina por los valores enteros que toma la variable contadora en un rango establecido por el programador. Después de que realiza el proceso de ejecución en cada iteración, la variable se incrementa en 1 automáticamente con la condición de que en el momento en que la variable pasa el límite, el ciclo se rompe. La ejecución de los ciclos depende mucho del lenguaje de programación utilizado; por ejemplo, en el ciclo para la variable final varía, por eso no es recomendable utilizar el valor de la variable contadora después de ejecutar el algoritmo. 3 DISEÑO ESTRUCTURADO DE ALGORITMOS 4 Entonces, se puede decir que el conjunto de instrucciones en un ciclo no se ejecuta si el límite inferior es mayor al límite superior. La forma general del ciclo para es: ENTRADA Donde var es la variable contadora del ciclo, lim_inf es el valor inicial que toma var=lim_inf var<=lim_sup la variable contadora. lim_sup es el valor final, cuando este valor sea var=var+1 superado por la variable contadora, el ciclo se acabó. Bloque de Instrucciones El denominado bloque de instrucciones es el conjunto de acciones que se ejecutan en cada repetición. SALIDA 2. Ciclo mientras: El término mientras en un lenguaje de programación permite ejecutar un bloque de instrucciones siempre y cuando una condición o expresión lógica se cumpla, mientras sea verdadero. La condición siempre es evaluada desde el comienzo, antes de ejecutar el bloque de instrucciones. Si la condición se cumple se ejecuta y todo un ciclo vuelve a comenzar. Cuando la condición no se cumple simplemente se termina el proceso, no se ejecuta. DISEÑO ESTRUCTURADO DE ALGORITMOS La forma general del ciclo es: ENTRADA CONDICIÒN BLOQUE FIN ¿Qué crees que realiza el ciclo hacer? 3. Ciclo hacer: Este ciclo es similar al ciclo mientras la única diferencia es que la evaluación de la condición es diferente, ya que en el ciclo mientras la condición es evaluada desde el inicio, en el ciclo hacer la condición se toma en cuenta después de ejecutar el bloque de instrucciones por lo menos una vez. Para que el bloque se ejecute nuevamente, la condición debe ser siempre verdadera, cuando resulta falso se termina el proceso. 5 DISEÑO ESTRUCTURADO DE ALGORITMOS ENTRADA BLOQUE CONDICIÒN FIN Donde BLOQUE es el conjunto de instrucciones que se ejecutan por lo menos una vez antes de la condición. 6 DISEÑO ESTRUCTURADO DE ALGORITMOS Conclusión Al momento de diseñar un algoritmo que contiene iteraciones, es importante conocer los tipos de sentencias que permiten controlar las repeticiones generadas en un algoritmo. La ejecución de los ciclos depende mucho del lenguaje de programación utilizado, pero la estructura ya está definida debido a que el objetivo para el que los crearon fue para un fácil diseño, una sencilla depuración y son adaptados para que sean entendidos por personas diferentes a las que escribieron el programa. Es importante saber distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: • Hacer • Mientras • Para Debemos analizar las diferencias entre cada una de las estructuras de repetición para que podamos construir grandes y complejos problemas a través de la ejecución repetida. 7 DISEÑO ESTRUCTURADO DE ALGORITMOS Para aprender más ¿Sabes cuáles son los elementos de una estructura repetitiva? • Entrenamiento a la medida. (2012). Elementos de una estructura repetitiva. Consultado el 5 de junio de 2014: http://brd.unid.edu.mx/elementos-de-una-estructura-repetitiva/ • Guía 4 lección 1: Estructuras algorítmicas repetitivas. (2012). Consultado el 5 de junio de 2014: http://youtu.be/1asWTDgKIoc • Guía 4 lección 2: Elementos de una estructura repetitiva. (2012). Consultado el 5 de junio de 2014: http://youtu.be/rkXgw1LzNlE • Guía 4 lección 3: Tipos de estructuras repetitivas. Consultado el 5 de junio de 2014: http://youtu.be/DNEbf5ra0BI • Guía 4 lección 3: Estructura repetitiva Para. (2012). Consultado el 5 de junio de 2014: http://youtu.be/Hsxl5UTbqEw • Guía 4 lección 4: Estructura repetitiva Mientras que (parte 1). 2012). Consultado el 5 de junio de 2014: http://youtu.be/jk4hN6pef64 • Guía 4 lección 4: Estructura repetitiva Mientras que (parte 2). (2012). Consultado el 5 de junio de 2014: http://youtu.be/Zk-yLnLF608 Por medio de este enlace reforzarás los temas de esta sesión por medio de definiciones y ejemplos aplicados a la programación. • Chirinos, W. (2011). Estructuras Repetitivas. Consultado el 25 de Marzo de 2013: http://es.slideshare.net/wladimirclipper/estructuras-repetitivas 8 DISEÑO ESTRUCTURADO DE ALGORITMOS Actividad de Aprendizaje Instrucciones: Con el propósito de consolidar los conocimientos adquiridos a lo largo de esta sesión, aplicarás los ciclos de programación para resolución de problemas reales, diseña el diagrama de flujo correspondiente. Problema: 1. Realizar la suma de los primeros 100 números enteros positivos e imprimir el resultado. Ahora identifica qué es lo que realiza el siguiente diagrama de flujo: 9 DISEÑO ESTRUCTURADO DE ALGORITMOS Puedes realizarlo en cualquier programa y guardarlo como PDF, con la finalidad de subirlo a la plataforma de la asignatura. Recuerda que esta actividad te ayudará a aplicar los ciclos que te permitirán diseñar un programa que contenga iteraciones. Se tomará en cuenta lo siguiente: • Tus datos generales • Referencias bibliográficas • Ortografía y redacción • Propósito de su Reporte • Procedimiento. • Resultados • Juicio personal 10 DISEÑO ESTRUCTURADO DE ALGORITMOS Cibergrafía Chirinos, W. (2011). Estructuras Repetitivas. Consultado el 25 de Marzo de 2013: http://es.slideshare.net/wladimirclipper/estructuras-repetitivas Introducción a la computación. Introducción a la computación. Estructuras de control. (s/f). En Tecnológico de Monterrey. Consultado el 25 de Marzo del 2013: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r88070.PDF Rodríguez, R. (2006). Elementos de la Programación Estructurada: Algoritmos, Pseudo Código y Diagramas de Flujo. Consultado el 25 de Marzo de 2013: http://www.utm.mx/~rruiz/cursos/PE/notas.pdf Santeramo, L. (2012). Estructuras repetitivas, Bucles de control. Consultado el 25 de Marzo del 2013: http://www.aliatuniversidades.com.mx/bibliotecasdigitales/pdf/sistemas/Analisis_ y_disenio_de_algoritmos.pdf 11