Está en la página 1de 18

Unidad 3: Estructuras de flujo

programático
Presentación de unidad

Dentro de esta unidad aprenderás los elementos que forman estructuras de flujo
programático, comprendiendo que las estructuras de control permiten modificar el flujo de
ejecución de las instrucciones que dejan operar a un programa. Dependiendo de las
condiciones:

 Se ejecutarán x o y sentencias.
 Se ejecutará un grupo de sentencias en relación con el valor de una variable.
 Se ejecutar un grupo de sentencias hasta que se cumpla alguna condición.

Además, el alumno distinguirá las estructuras de control: secuenciales-decisión, iterativas y


de control.

Objetivo de unidad
Distinguir y aplicar de acuerdo con una problemática planteada las estructuras de control
que permitan resolverla (utilizando el lenguaje de programación C).
Organizador gráfico de la unidad

3.1 Estructuras de decisión

Al igual que en la vida diaria tenemos que tomar una decisión con base en algún
escenario específico, en la programación tenemos estructuras de decisión que
nos permiten ejecutar una serie de instrucciones para un escenario específico.

Las instrucciones comienzan a ejecutarse de forma secuencial (en orden).


Cuando se llega a una estructura condicional (asociada a una condición) se
decide qué camino tomar, dependiendo siempre del resultado de la condición,
sea ésta falsa o verdadera.
Por lo tanto, las estructuras de decisión, permitirán seleccionar la próxima
sentencia a ejecutarse sobre la base de una decisión (expresión lógica o variable
lógica). Los tipos de estructuras de decisión que podemos encontrar son Simple
o Ramificada.

Las sentencias de decisión (también llamadas de control de flujo) son estructuras


de control que realizan una pregunta, la cual retorna en verdadero o falso (evalúa
una condición) y selecciona la siguiente instrucción a ejecutar, dependiendo la
respuesta o resultado.

Reproduce el siguiente video para profundizar en el tema.

https://youtu.be/PiNPzM93NpY

3.2 Simple

Se aplican las estructuras de control simple, cuando sólo se requiere de una


pregunta. Su sintaxis es la palabra Si, seguida de una pregunta o condición (la
cual va encerrada en medio de paréntesis) y, por último, si la condición es
verdadera, se ejecuta la sentencia que se encuentra después de la
condición, o se ejecuta el bloque de sentencias que se encuentran después
de la condición (siempre y cuando estén encerradas entre llaves). Las
estructuras de decisión terminan o tiene su fin, con la llave final del bloque de
sentencias.
Sintaxis del ciclo if dentro del lenguaje C.

si (condición) entonces sentencia

si (condición) entonces {

sentencias }

Llamamos sentencias a un bloque de instrucciones en el cual se pueden


introducir operaciones, cálculos, escritura y lectura de variables, entre otros.

Ahora veremos el ciclo if – else. Hay que agregar una sentencia de (en caso
contrario), o parte falsa de la sentencia.

Lo que hace la estructura if / else es ejecutar una acción, cuando el resultado de


la evaluación de la expresión es verdadera y otra acción si el resultado de la
evaluación es falsa. 2 En síntesis, esta estructura realizará una acción si la
expresión es verdadera y otra si es falsa.

Su sintaxis sería:

if (condición)

Serie de sentencias 1

} else {

Serie de sentencias 2

//parte verdadera

//parte falsa3

}
https:// 3.3 Ramificada
Para hacer estructuras condicionales más laboriosas, podemos anidar
sentencias if, (colocar estructuras if dentro de otras estructuras if). A este
proceso se le llama estructuras de decisión ramificadas.
Con un solo if podemos evaluar y realizar una acción u otra según dos
posibilidades, pero, si tenemos más posibilidades que evaluar, debemos anidar
Ifs para crear el flujo de código necesario para decidir correctamente.

Por ejemplo, si deseo comprobar si un número es mayor, menor o igual que otro,
tengo que evaluar tres posibilidades distintas. Primero puedo comprobar si los
dos números son iguales. Si lo son, ya he resuelto el problema, pero si no son
iguales todavía, tendré́ que ver cuál de los dos es mayor. En situaciones como
ésta es cuando tenemos que utilizar y apoyarnos de estructuras anidadas o
ramificadas.

Su Sintaxis:

if (condición1) sentencia1

else

if (condición2)

sentencia2 else

if (condición3) sentencia3

Segmento de algoritmo: si (condición1) entonces

sentencias1 si_no

si (condición2) entonces sentencias2

si_no

si (condición3) entonces

sentencias3 fin_si

fin_si fin_si

También se puede utilizar la instrucción switch, la cual es una estructura de


decisión múltiple que, dependiendo de un valor, permite elegir ejecutar diferentes
códigos.

De forma ocasional, un algoritmo tendrá dentro de sí una serie de decisiones, en


las cuales una variable o expresión se probará por separado contra cada uno de
los valores (constantes enteras) que pueda asumir, y permitirá que se lleven a
cabo diferentes acciones.
Para esta forma de toma de decisiones se proporciona una estructura de
selección múltiple o ramificada switch..case. La estructura switch está formada
de una serie de etiquetas case, y de un caso opcional default.

Estructura general:

switch (variable) {

case valor1: sentencia1; sentenciaN;

break; case valor2: sentencia1;

sentenciaN;

break;

case valorN: sentencia1; sentenciaN;

break; default: sentencia1; sentenciaN;

break; };

La variable a evaluar en la sentencia switch debe ser de tipo int o char


únicamente. Se utiliza el enunciado break, porque de lo contrario los cases en un
enunciado switch se ejecutarían juntos. Si en alguna parte de la estructura case
no se utiliza break, entonces, cada vez que ocurre una coincidencia en la
estructura se ejecutarían todos los enunciados de los cases restantes.5

Para profundizar en el tema de estructuras ramificadas, ver el siguiente


video: youtu.be/PiNPzM93NpY

3.4 Estructuras de Iteración

Las estructuras de iteración (también llamados ciclos o repetición) se usan en la


programación para realizar una y otra vez un conjunto de instrucciones, hasta
que se cumpla una determinada condición.

Estos ciclos de iteración son frecuentemente utilizados, ya que permiten al


programador repetir un segmento de código las veces que se desee, sin
necesidad de volver a escribir cada vez que se va a utilizar y así lograr simplificar
código de programación.

Lenguaje C soporta tres tipos de estructuras de iteración: while, do-while y for.


Dentro de estos tres tipos, existen los llamados pre – condicionales (el ciclo
while) y post – condicionales (do – while). En lo que respecta al ciclo for, éste
puede entrar en cualquiera de los dos, ya que con una serie de modificaciones
en su estructura puede llegar a ser pre – condicional o post – condicional.

Para profundizar en el tema de estructuras iteracción, ver el siguiente video:

https://youtu.be/OUYrKsBMA1M

3.4.1 Estructura de Iteración while

Analizaremos el ciclo while por primera instancia el cual primero evalúa la


condición para luego entonces, si ésta se cumple o es (verdadera), realice el
bloque de sentencias de dicha estructura, de lo contrario el control del programa
pasará a la siguiente instrucción inmediata después del ciclo de repetición.
Ejemplo de esto es el siguiente diagrama de flujo, en donde se muestra cómo,
para poder realizar un bloque de sentencias determinado, el ciclo while primero
tiene que evaluar su condición (expresión lógica). Mientras esta sea verdadera
se ejecuta el bloque de sentencias y si está condición es falsa el programa dirige
su flujo a la sentencia siguiente instrucción inmediata, después del ciclo de
repetición.

En la siguiente figura se muestra la manera en que sucede6:


Para profundizar en el tema de estructuras de iteracción while, ver el siguiente video:
https://youtu.be/QwM_A2OZlP8
La sintaxis o forma general del inciso a) la cual corresponde al ciclo de repetición
while es su forma simple o más sencilla. El inciso b), en cambio, muestra la
forma más estructurada de un ciclo while, el cual consta de una serie de
sentencias (bloque de sentencias) que van encerradas entre llaves { }. Si la
sentencia a ejecutar en el ciclo while es únicamente una, no se utilizan la llaves,
pero, si el bloque consta de más de una sentencia, se le debe poner las llaves
para indicar que todo ese bloque de sentencias se realizará cuando la condición
sea verdadera.

Sintaxis:

a) mientras (condición) hacer Sentencia;

b) mientras (condición) hacer {

Sentencia1; Sentencia2;

...

SentenciaN; }

En lenguaje de programación meramente Lenguaje C se escribiría como sigue,


tomando en cuenta lo anterior respectivamente:

a) while (condición) sentencia;

b) while (condición) {

Sentencia1; Sentencia2;

Sentencia3;

...

sentenciaN; }

Nótese que al terminar la línea del while no se pone un punto y coma, mientras
que en las demás instrucciones todas al final terminan con un punto y coma,
exceptuando también las llaves; esto es debido a que un punto y coma ( ; ) que
indica la terminación de una instrucción concluida y por lo tanto la línea del while
no es una instrucción para terminar, si no por el contrario; es el inicio del ciclo de
repetición.
En esta estructura el conjunto de instrucciones que forma parte del bucle (un
ciclo) se repite mientras se cumple una determinada condición. Como es bien
sabido la finalidad de la palabra reservada while es ejecutar una instrucción una
y otra vez mientras que una condición dada sea cierta, cuando la condición de
ciclo while ya no es lógicamente verdadera, el ciclo termina. 7

Para profundizar en el tema de ciclo de iteracción while , ver el siguiente video:

https://youtu.be/CVdGLJseH_8
3.4.2 Estructura de Iteración Do - While

El ciclo hacer – mientras (do – while ), es muy similar al ciclo while. Ambos
realizan un ciclo de repetición, aunque en éste solo cambia la manera en que se
acomoda la condición dentro del ciclo de repetición.

A veces es necesario que un ciclo de repetición se ejecute al menos una vez


antes de comprobar la condición. En el ciclo while, si la expresión booleana era
falsa, no se ejecutaba el bloque de sentencias. Por eso en ocasiones es
necesario contar con otro tipo de estructuras de repetición.

Sintaxis:

hacer {

Bloque de sentencias; mientras ( condición )

hacer

sentencia;

mientras ( condición )

Nótese que la diferencia entre los dos tipos de sintaxis es que en una mientras
haya más de una instrucción (línea de código), se tienen que poner llaves que
engloben al bloque de sentencias, mientras en el que solo hay una instrucción no
se agregan llaves, la línea se do – while ejecuta automáticamente como parte del
ciclo de repetición.

El ciclo do – while repite todo el bloque de sentencias al menos una vez ya que
al entrar a este nunca evalúa alguna condición, por lo tanto, entra y empieza a
ejecutar las sentencias; hasta llegar al final de estas, es entonces donde
compara la condición para determinar si ésta es falsa o verdadera. Si la
condición es falsa el flujo del programa continúa en la siguiente instrucción fuera
del ciclo de repetición, pero si esta es verdadera entonces regresa el flujo al
bloque inicial de instrucciones del ciclo de repetición y vuelve a repetirlas hasta
llegar otra vez a la condición y así́ sucesivamente mientras la condición sea
verdadera. 8

Para profundizar en el tema de estructura de iteracción do-while, ver el siguiente video:

https://youtu.be/JZVPV9gxLhA

3.4.3 Diferencias de la estructura while y do-while:

 La estructura while ejecuta el bloque de sentencias mientras la condición sea


verdadera, como esta se encuentra al inicio del ciclo; si esta es falsa nunca se
ejecuta el bloque de sentencias.
 La estructura do-while ejecuta siempre el bloque de sentencias al menos una
vez, sin importar la condición que tenga, ya que esta se evalúa al final del ciclo
de repetición (después de todas las sentencias).
 La estructura do-while se ejecuta al menos una vez, por el contrario, la estructura
while es más general y permite la posibilidad de que nunca se ejecute el bucle.

3.4.4 Estructuras For

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.9

Para profundizar en el tema de estructura de iteracción for, ver el siguiente video:

https://youtu.be/Rl9xQ-B__1U
3.5 Pre y Post condicional

El nombrar pre – condicional a un ciclo quiere decir que primero va a evaluar la


condición, para ver si realiza luego el bloque de sentencias. Si esta condición es
verdadera o se cumple, entonces entramos a realizar el bloque de sentencias de
dicho ciclo, pero, si esta condición es falsa desde el inicio, nunca entramos a
realizar ninguna tarea del bloque de sentencias. Esto es un ciclo pre –
condicional, el cual va a evaluar la condición antes de realizar el bloque de
sentencias. Un ejemplo claro de esto es un ciclo while, y cuando se habla de un
ciclo post – condicional se dice que es cuando la condición se evalúa al final del
bloque de sentencias.
Una vez que ya se realizó el bloque de sentencias en la parte final se encuentra
la condición, en ese momento se evalúa y si es falsa deja de repetir el bloque de
sentencias, pero, si es verdadera continúa repitiendo el bloque de sentencias;
por lo tanto, un ejemplo de este ciclo es el do – while; el cual primero realiza el
bloque de sentencias sin importar la condición y al final evalúa la condición.

En este caso el ciclo do – while por fuerza siempre realiza al menos una vez
todas las sentencias que se encuentran dentro de él sin importar que la
expresión de la condición sea falsa desde un principio, mientras que el ciclo
while, si su condición es falsa, en un principio nunca se ejecuta el bloque de
sentencias ni una sola vez, solo cuando esta sea verdadera.

En un ciclo de repetición como lo es el do-while, primero se ejecuta el cuerpo del


bucle siempre al menos una vez. Cuando este se ejecuta lo primero que se
realiza es el bloque de sentencias, para al final evaluar la expresión booleana
resultante de la condición, si dicha condición es falsa se ejecuta al menos una
vez el bloque y si la condición se evalúa a verdadera se regresa el control al
inicio del bloque de sentencias y se vuelven a ejecutar todas para llegar de
nueva cuenta a la evaluación de la condición; si esta sigue siendo verdadera se
vuelve a repetir y así́ sucesivamente hasta que la condición resulte ser falsa y da
por terminado el proceso.

3.6 Contadores y acumuladores

Contador es una variable que se utiliza para contar algo. Normalmente usamos
un contador dentro de un ciclo y cambiamos su valor sumándole o restándole
una constante, es decir, siempre se le suma o resta la misma cantidad. El caso
más utilizado es incrementar la variable en uno.

Ejemplo de un contador que se va decrementando en uno; simula una cuenta


regresiva.
Para profundizar en el tema de contadores y acumuladores, ver el siguiente video:

https://youtu.be/ATdSN9z8fjc

3.7 Estructuras de Control

Las estructuras de control de un lenguaje de programación se refieren a él orden


en que las instrucciones de un algoritmo se ejecutarán. El orden de ejecución de
las sentencias o instrucciones determina el flujo de control.

Estas estructuras de control son por consiguiente fundamentales en los


lenguajes de programación y en los diseños de algoritmos especialmente los
pseudocódigos.

Las tres estructuras de control básico son:

• secuencia • selección • repetición


Por lo regular en un programa los enunciados son ejecutados uno después del
otro, en el orden en que aparecen escritos. Esto se conoce como ejecución
secuencial. Sin embargo, existen enunciados que le permiten al programador
especificar que el enunciado siguiente a ejecutar pueda ser otro diferente al que
sigue en secuencia. Esto se conoce como transferencia de control.

Todos los programas pueden ser escritos en términos de solo tres estructuras de
control, a saber, la estructura de secuencia, la estructura de selección y la
estructura de repetición o bucle. 11

Para profundizar en el tema estructuras de control, ver el siguiente video:

https://youtu.be/DsfM9ApZAgU

3.8 Ruptura de un Lazo

La ruptura de un lazo se utiliza para romper un bucle antes de que acabe, sin
embargo es importante que consideremos el evitar estas rupturas de programa
pues dificultan la legibilidad del código.

Algunos ejemplos son:

 Saltos (break)
 Bucle parcial (continue)
 Se acabó y nos vamos (return)

Break
Vámonos directamente a la salida, rompe la lógica del bucle se utiliza enwhile,
do/while, for y switch.

Ejemplo:

public static void main(String[] args) {

System.out.println("Lee líneas hasta punto final.");

Scanner teclado = new Scanner(System.in);

int cuenta = 0;

{ while (true)

String linea = teclado.next();

if (linea.equals(".")) { break;

cuenta = cuenta + 1;

System.out.println(cuenta + ": " + linea);

Los enunciados break y continue son utilizados para modificar el flujo de control
dentro de un programa.

La sentencia break tiene dos usos. El primer uso es terminar un case en la


sentencia del switch. El segundo es ser utilizado dentro de las estructuras de
control causa la inmediata salida de dicha estructura (por lo tanto, no sigue
repitiéndose el bloque y continúa la ejecución de las instrucciones que le siguen
a la estructura de control).

Continue

La sentencia continue fuerza a que comience una nueva vuelta dentro de la


estructura correspondiente. Dentro de los ciclos while, y do-while, se evalúa la
condición de salida; en el for, se efectúa un salto a la expresión de incremento.

Se utiliza para saltarse el resto de la pasada actual a través de un bucle. El bucle


no termina cuando se encuentra una sentencia continue, sencillamente no se
ejecutan las sentencias que se encuentren a continuación en él, y se salta
directamente a la siguiente pasada a través del bucle.

Para usarse basta poner: =

Ejemplo:

NOTA: getch() asigna a ch el valor que le introduzcamos por la consola, pero no


lo visualiza.

Return

Esta función devuelve el control al sistema operativo o a cualquier otro proceso


anterior. La función permite devolver un valor indicando si es una terminación
errónea o correcta. Esta función, esta incluida en:

Lo que realiza dicho de otra forma es, cerrar todos los archivos y buffers y
termina el programa. El valor de status lo recibe el proceso que realizó la llamada
al programa, y me indica el estado de terminación.

Cierre de unidad

Durante el aprendizaje de la unidad 3 identificaste los elementos de las


estructuras de un flujo programático divididas en tres categorías en función del
flujo de ejecución: Que son:

 Estructura de decisión (if-else y switch).


 Estructura de iteración (ciclos for, while y do- while).
 Estructura de control (break, continue y return).

Con ello y su pronta aplicación, comprenderás que emplear las estructuras de


flujo es algo vital. Esto as te facilitará en la compleja tarea de resolver problemas
de programación, independientemente del lenguaje de programación empleado.

En el manejo de cualquier tipo de dato, siempre se debe hacer uso de las


estructuras de flujo, ya que así se garantiza un optimo desarrollo del programa,
eficientando la memoria, su tiempo de ejecución y su tiempo de desarrollo.

Esto, al final del día, te dará como resultado la elaboración y operación de un


programa comprensible y fácil de leer.

 Gutiérrez Reyes, A. y Martínez Roldán, E. (2011). Fundamentos de


Programación Estructurada. México: ESIME Zacatenco IPN.
 Langsam, Y. y Martínez Sarmiento, M. (1997). Estructuras de datos con C
y C ++ (1ª. ed.). México: Prentice-Hall Hispanoamericana.
 Codigofacilito (2011). Tutorial C++ 14. Ciclo For y Arrays.
https://youtu.be/Rl9xQ-B__1U
 El rincón del programador novato (2017). Cómo funcionan contadores y
acumuladores v 1.0. https://youtu.be/ATdSN9z8fjc
 Empieza A Programar (2013). Bloque 2.3: Estructuras if/else anidadas y
Switch. https://youtu.be/bWmhKg_wNqM
 Empieza A Programar (2013). Bloque 3.1: Estructuras Iterativas While y
For. https://youtu.be/QwM_A2OZlP8
 Hernández, R. (2012). Estructuras de Decisión en C.
https://youtu.be/PiNPzM93NpY
 León, C. (2013). Programación en C - CICLO WHILE.
https://youtu.be/CVdGLJseH_8
 León, C. (2013). Programación en C - CICLO DO WHILE.
https://youtu.be/JZVPV9gxLhA
 Pasos por ingeniería (2018). ESTRUCTURA SELECTIVA - #12 (SWITCH)
ó (según seaa). https://youtu.be/OUYrKsBMA1M
 Universitat Politècnica de València – UPV (2014). Estructuras de control
en C | | UPV. https://youtu.be/DsfM9ApZAgU

También podría gustarte