Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Programación Estructurada: Teoremas de la Programación Estructurada. La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código estropajo", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada —pero la mayoría de los nuevos lenguajes de programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características, en un esfuerzo para hacer más difícil la programación no estructurada. Estructuras de Control. En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las Estructuras de Control se puede: De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If- Then-Else). De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case). Ejecutar un grupo de sentencias mientras se cumpla una condición (Do- While). Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do- Until). Ejecutar un grupo de sentencias un número determinado de veces (For- Next). Todas las estructuras de control tienen un único punto de entrada. Las estructuras de control se pueden clasificar en: secuenciales, iterativas y de control avanzadas. Esta es una de las cosas que permiten que la programación se rija por los principios de la programación estructurada. Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura. Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados. Algunas estructuras de control en el lenguaje Java. Ejecución Secuencial: Pero, por lo general, las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial. Transferencia de Control: En Java, como en otros lenguajes de programación por excelencia como C y C++, el programador puede especificar que la siguiente instrucción a ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita esta instrucción. De Selección: Las estructuras de control de selección ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina según se cumpla o no una condición. Estructuras de Decisión. Una estructura de decisión es llamada así precisamente porque tiene la funcionalidad de tomar acciones en base al resultado lógico de una decision. Las estructuras de decisión se dividen en: Simples. Dobles. Anidadas. Estructuras de Decisión Una estructura de decisión es llamada así precisamente porque tiene la funcionalidad de tomar acciones en base al resultado lógico de una decision. Las estructuras de decision se dividen en : Simples Dobles Anidadas *Para construir estructuras de control utilizamos la palabra reservada if, lo cual indica condición Estructura de Decisión simple: Es la que se ejecuta cuando la condición propuesta es verdadera. Estructura de Decisión doble: Es la estructura que nos permite tomar un camino diferente si la condición establecida no es verdadera, para esto haremos uso de la palabra clave else, que sería como decir sino (o de lo contrario). Estructuras de Decisión Anidadas: Este tipo de estructuras nos permite tomar más de un camino para una condición y esta estructura puede ser expresada de dos formas, anidando estructuras, o con el uso de la palabra elseif, lo que podría traducirse como, sino, si… Concepto, Tipos y Sintaxis: Condicional, Simple, Dobles, Múltiples, Anidadas, y Selectiva. Sintaxis: Se trata de la rama de la gramática que ofrece pautas creadas para saber cómo unir y relacionar palabras a fin de elaborar oraciones y expresar conceptos de modo coherente. En la informática, la sintaxis se entiende como el grupo de normas que marcan las secuencias correctas de los elementos propios de un lenguaje de programación. Condicional: En programación, una sentencia condicional es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición. Simples: Está compuesta únicamente de una sola condición si es verdadera ejecutara la acción o acciones si la condición es falsa no hará nada. Dobles: Está compuesta únicamente de una sola condición, si es verdadera ejecutara la acción o acciones y si la condición es falsa ejecutara las acciones para la condición falsa. Además, solo se debe utilizar únicamente cuando existen dos condiciones, si hubiera más de dos condiciones se puede utilizar varias selectivas simples o una selectiva múltiple. Múltiples: Está compuesta múltiples selectivas simples que están unidas por el comando elsif el resultado que se obtiene con una selectiva múltiple se puede obtener con varias selectivas simples, entonces, ¿cuál es la diferencia? el código es más pequeño, aunque, yo siempre he recomendado a mis alumnos que cuando recién se está aprendiendo a programar es recomendable que al principio se trabaje con selectivas simples, a medida que se va aprendiendo y ganando destreza se puede comenzar a utilizar las selectivas múltiples en los casos que ellos crean conveniente y necesarios. Anidadas: La conveniencia de coger nombres de funciones y datos fuera del espacio de nombre global es aplicable a las estructuras. Puede anidar una estructura dentro de otra estructura, y por tanto guardar juntos elementos asociados. La sintaxis de declaración es la que podría esperarse, tal como puede ver en la siguiente estructura, que implementa una pila como una lista enlazada simple de modo que «nunca» se queda sin memoria. Selectivas: se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas y son utilizadas en todos los lenguajes de programación, en este caso veremos estructuras selectivas para el lenguaje de programación Ruby, creado por el programador japonés Yukihiro “Matz” Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995.En el círculo de amigos de Matsumoto se le puso el nombre de “Ruby” (en español rubí) como broma aludiendo al lenguaje de programación “Perl” (perla). Estructuras de Control Interactivas: Concepto y Tipos, Ciclo Mientras y Repetir. En la vida diaria existen situaciones que frecuentemente se resuelven realizando una determinada secuencia de pasos que puede repetirse muchas veces, ejemplo: El proceso que seguimos para comer, mientras no se termine la comida. El proceso de insertar monedas, hasta que se abone la cantidad necesaria. Las operaciones que realizamos para llamar por teléfono, mientras no se logre la comunicación. Como se puede observar estos son algoritmos que se hacen cotidianamente, pero tienen la particularidad de que la ejecución de algunode sus pasos puede repetirse muchas veces, mientras no se logre la meta trazada. A este tipo de algoritmo se le conoce como algoritmos iterativos o repetitivos. En C#, las instrucciones while, do/while, y for, permiten ejecutar iteraciones, bucles o ciclos. En cada caso se ejecuta un bloque de instrucciones mientras la condición que se evalúa tome valor verdadero. Se resalta que cualquiera de las 3 instrucciones cumple con el mismo objetivo que es el de ejecutar una secuencia de pasos, más de una vez. La instrucción while: La instrucción while tiene la siguiente sintaxis: Condición: Está representada por una expresión booleana y mientras se cumpla se ejecutará el ciclo. Bloque de Instrucciones: El bloque de instrucciones puede estar formado por una o varias instrucciones y es el conjunto de pasos que se van ejecutar en cada iteración del ciclo. Esta estructura de control permite repetir o iterar el Bloque de Instrucciones mientras la condición sea verdadera o dicho de otra manera, estas iteraciones terminarán cuando la condición sea falsa y entonces se podrá ejecutar la siguiente instrucción después del while. Es válido señalar que en esta instrucción la condición se evalúa al inicio del ciclo por lo que si la primera vez que se evalúa la condición esta es falsa, el ciclo no llegará a realizarse. La instrucción do/while: La estructura de control do/while es otra sentencia de iteración en la que la condición se evalúa por primera vez una vez que se haya ejecutado el Bloque de Instrucciones. En esta estructura repetitiva el bloque de instrucciones siempre se ejecuta al menos una vez pues la condición se evalúa al final. Una vez realizada la evaluación si el resultado es true, se vuelve a ejecutar el Bloque de Instrucciones, en caso contrario se ejecutan las instrucciones que sigan a continuación saliendo del ciclo. La estructura de control for: Los procesos iterativos que se han visto hasta ahora terminan por una condición. En muchas situaciones las iteraciones se realizan un número determinado de veces, muchos autores les llaman ciclos por conteo pues se conoce de antemano cuántas veces se hará el proceso que se repite. En este tipo de iteración, siempre se necesita una variable que lleve el control de las veces que se repite el proceso por esto se les conoce también como ciclos con variable de control. Uno de los ciclos más conocidos y usados en la mayoría de los lenguajes de programación es el de la instrucción for que suele estar controlado por un contador o variable de control y tiene la siguiente sintaxis: Instrucciones.1: Se ejecutará una sola vez al inicio del ciclo, generalmente se realizan inicializaciones y declaraciones de variables puesto que como se dijo con anterioridad, esta solo se ejecuta una vez. En caso de que se quiera realizar o ejecutar más de una instrucción en este momento, dichas instrucciones se deben separar por comas (“,”). Expresión: Es evaluada en cada iteración y en dependencia del valor que devuelva, dependerá que el ciclo continúe ejecutándose (valor de la expresión true) o no (false). Destacar que de no colocarse nada en esta parte, el ciclo tomará como true el valor de la expresión por lo que en principio, el ciclo puede estar repitiéndose infinitamente. Instrucciones .2: Es ejecutado siempre en cada ciclo al terminar de ejecutar todas las instrucciones que pertenecen al bucle for en cuestión. Por lo general puede contener alguna actualización para las variables de control. Análogamente a <instrucciones 1> en caso de querer ejecutar en este momento más de una instrucción se deben separar por comas. Ciclo Mientras: Un bucle o ciclo, en programación, es una oración que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse. Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, procesos y deja el código más claro y facilita su modificación en el futuro. Ciclo Repetir: El bucle repetir comprueba la condición de finalización al final del cuerpo del bucle, y si ésta es cierta continua con el resto del programa, a veces esto resulta más adecuado. Métodos para Salir del Ciclo. El ciclo con centinela es muy claro pero tiene un problema: hay dos lugares (la primera línea del cuerpo y la última línea del ciclo) donde se ingresa el mismo dato. Si en la etapa de mantenimiento tuviéramos que realizar un cambio en el ingreso del dato (cambio de mensaje, por ejemplo) deberíamos estar atentos y hacer dos correcciones iguales. Sería preferible poder leer el dato x en un único punto del programa. A continuación, tratamos de diseñar una solución con esa restricción. Es claro que en ese caso la lectura tiene que estar dentro del ciclo para poder leer más de un número, pero entonces la condición del ciclo no puede depender del valor leído, ni tampoco de valores calculados dentro del ciclo. Pero un ciclo que no puede depender de valores leídos o calculados dentro de él será de la forma: 1. Repetir indefinidamente. 2. Hacer algo. Ciclo para: Sintaxis. Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada "giro" o iteración del ciclo. En resumen, un ciclo for es una estructura de control iterativa, que nos permite ejecutar de manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un tamaño de paso y un valor final para el ciclo. ¿Cómo funciona un Ciclo For? Para comprender mejor el funcionamiento del ciclo for, pongamos un ejemplo, supongamos que queremos mostrar los números pares entre el 50 y el 100, si imaginamos un poco como seria esto, podremos darnos cuenta que nuestro ciclo deberá mostrar una serie de números como la siguiente: 50 52 54 56 58 60 ... 96 98 100. Como podemos verificar, tenemos entonces los componentes necesarios para nuestro ciclo for, tenemos un valor inicial que sería el 50, tenemos también un valor final que sería el 100 y tenemos un tamaño de paso que es 2 (los números pares). Estamos ahora en capacidad de determinar los componentes esenciales para un ciclo for. Ciclos Anidados. En muchos casos de la vida diaria no basta con repetir un grupo de instrucciones una cantidad de veces sino que esas repeticiones deben ser realizadas al mismo tiempo un número de ocasiones. Este tipo de problemas da origen a los algoritmos con ciclos compuestos o ciclos anidados. Los ciclos anidados o compuestos no son más que ciclos que tienen otros ciclos dentro del bloque de instrucciones que deben ejecutar. Esta facilidad de componer uno o más ciclos en combinación con algunas estructuras de almacenamiento resulta muy útil para la solución de algunos algoritmos de búsqueda y ordenación que se verán más adelante en el curso. Usualmente los ciclos que se componen para resolver un algoritmo en particular son los ciclos por variable de control, lo que no quiere decir que no se pueda hacer con ciclos con condición o con una combinación de ellos dos, lo que resultan menos frecuentes estos casos. Autor: Nombre: Katherin Carrillo C.I: 31.040.100 Profesor: Edgar Valero Institución: Universidad Politécnica del Estado Trujillo.
Compartir