Logo Studenta

Programación Estructurada

¡Estudia con miles de materiales!

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.

Continuar navegando