Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una...

14
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 CONTROL DE FLUJO

Transcript of Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una...

Page 1: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Control de Flujo Estructuras de Control!!Experiencia Educativa de Algorítmica

�1CONTROL DE FLUJO

Page 2: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Introducción!!El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características de la algorítmica, ya que esta nos permite desarrollar algoritmos de fácil comprensión o bien tan complejos como deseemos. Estas técnicas permiten crear programas estructurados cuyo flujo lógico es controlado por estructuras de control de flujo básicas: !

Secuencial Selectiva Repetitiva !

En este apartado se verá una introducción a las estructuras selectivas que son utilizadas para controlar el orden en que se ejecutan las sentencias de un programa mediante un “Si” (mejor conocido como “If”), incluyendo sus variantes que son el “Si-entonces” (“If-Then”), “Si-entonces-sino” (“If-Then-Else”) y “Según” (“Switch”). !Ademas de las sentencias, se verán las sentencias anidadas, así como las de multibifurcación que pueden ayudar a resolver problemas de cálculo. !El término de control de flujo se refiere al orden en que se ejecutan las sentencias de un programa, y generalmente a esta ejecución de los algoritmos se le denomina de tipo secuencial. Este término establece que las sentencias o instrucciones de un algoritmo se ejecutan en secuencia, en un orden, esto es una después de la otra. !!!

�2CONTROL DE FLUJO

Page 3: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Secuencial!!Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia. En este tipo de estructuras tenemos que las instrucciones siguen un orden en el cual la salida de una instrucción es la entrada de la siguiente y así sucesivamente, tal como se muestra en el siguiente pseudocódigo y diagrama de flujo.

� !!!El ejemplo anterior muestra la suma y multiplicación de dos números capturados desde la linea de comandos en donde cada operación es almacenada en una variable.

Inicio

Leer A

Leer B

S <— A + B!P <— A * B

Escribir S, P

Fin

�3CONTROL DE FLUJO

Inicio Leer A; Leer B; S <— A + B; P <— A * B; Escribir S, P; Fin

Page 4: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructuras Selectivas!!Las estructuras selectivas son utilizadas para tomar decisiones lógicas. En estas se evalúa una condición en función del resultado de la misma ya sea que de como resultado verdadero o falso es como se elige uno u otro camino. !La representación de una estructura selectiva es mediante un “If-then-else” (“Si-entonces-Sino”) y en un diagrama de flujo se representan mediante la figura geométrica de un rombo. !Las estructuras selectivas pueden ser:

simples, dobles, anidadas y múltiples

!!!

�4CONTROL DE FLUJO

Condición

Puntos importantes:!Una estructura selectiva es aquella en la que una acción (Instrucción) sigue a otra en secuencia.!Las estructuras selectivas se utilizan para tomar decisiones lógicas; es por ello que también son llamadas estructuras de decisión o alternativas.!En estas se evalúa una condición y en función del resultado se realiza una opción o otra.!Las estructuras selectivas pueden ser Simples, Dobles, Múltiples o Anidadas.

Page 5: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Selectiva Simple!!La estructura selectiva simple es un “If-Then" (“Si-Entonces”), el cual ejecuta una determinada acción cuando la condición resulta ser verdadera o falsa. Si la condición es verdadera, se ejecuta una acción o instrucción, sin embargo si la condición es falsa, no hace nada

!!!Sintaxis en lenguaje de programación!

!!

Pseudocódigo Java

Si (condición) Entonces Acciones; FinSi

if (condición){ Acciones; }

�5CONTROL DE FLUJO

Proceso sin_titulo Si 5 > 4 Entonces Escribir "Hacer una acción"; FinSi FinProceso

Inicio

Escribir “Hacer una acción”

5>4

Fin

Verdadero

Page 6: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Selectiva Doble!!Como vimos la estructura simple no nos permite manejar dos opciones ya que solamente funciona cuando la condición es verdadera. Por ello tenemos una estructura selectiva Doble, también conocida como “If - Then - Else” (“Si - Entonces - Sino”), en donde si la condición es verdadera se ejecuta la acción S1 y si es falsa la acción S2.

!!Sintaxis en lenguaje de programación!

!!

Pseudocódigo Java

Si (condición) Entonces Acción S1; Sino Acción S2; FinSi

if (condición){ Acción S1; } else { Acción S2; }

�6CONTROL DE FLUJO

Proceso sin_titulo Si 5 > 4 Entonces Escribir “acción S1”; Sino Escribir “acción S2”; FinSi FinProceso

Inicio

Escribir “acción S2”

5>4

Fin

Verdadero

Escribir “acción S2”

Falso

Page 7: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Selectiva Anidada!!Como vimos una estructura de selección doble implica a la selección de una o dos alternativas (Verdadero o Falso), sin embargo una estructura de selección “Si” puede contener más de dos alternativas de solución, esto es porque puede contener otra condición dentro de otra condición. Por lo tanto una estructura selectiva anidada constará de una serie de estructuras Si anidadas, esto es una condición dentro de otra. De tal forma que aparenta una escalera. !Sintaxis en lenguaje de programación!Pseudocódigo Java

Si (condición) Entonces Si (condición) Entonces; Acción S1; Sino Acción S2; FinSi Sino Acción S3; FinSi

if (condición){ if(condición){ Acción S1; } else { Acción S2; } } else { Acción S3; }

�7CONTROL DE FLUJO

Proceso EjercicioConvierteNum Definir num Como Entero; Escribir "Programa que convierte numeros a texto"; Escribir "Introduce un numero entre 1 y 3"; Leer num; Si num > 0 && num < 4 Entonces Si num == 1 Entonces Escribir "Uno"; FinSi Si num == 2 Entonces Escribir "Dos"; FinSi Si num == 3 Entonces Escribir "Tres"; FinSi Sino Escribir "Numero fuera del rango"; FinSi FinProceso

Page 8: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

!

�8CONTROL DE FLUJO

VF

Inicio

n1>0 && n1<4

Fin

Escribir “Número Fuera de Rango”;

n1 = 1V

Escribir “Uno”;

F

n1 = 2V

Escribir “Dos”;

F

n1 = 3V

Escribir “Tres”;

F

Page 9: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Selectiva Múltiple (Switch)!!Con frecuencia es necesario que existan más de dos opciones posibles. Este tipo de estructura permite decidir entre varios caminos posibles, en función del valor que tome una determinada instrucción. Permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo numérico. !Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor en donde cada opción está formada por uno o más números separados por comas, dos puntos y una secuencia de instrucciones. En caso de que una opción incluya varios números, la secuencia de instrucciones se debe ejecutar cuando el valor de la variable es uno de esos números. Otra opción se denomina “De Otro Modo”, la cual se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. !Sintaxis en lenguaje de programación!

!

Pseudocódigo Java

Segun <variable> Hacer <número1>: <instrucciones> <número2>,<número3>: <instrucciones> <...> De Otro Modo: <instrucciones> FinSegun

Switch <variable> { case 1: instrucciones; case 2: instrucciones; : Default: instrucciones; }

�9CONTROL DE FLUJO

Proceso EjemploSwitch Definir opc como Entero; Leer opc; Segun opc Hacer 1: Escribir "Hola Mundo"; 2: Escribir "Algorítmica"; 3: Escribir "Universidad Veracruzana"; 4: Escribir "Adiós"; De Otro Modo: Escribir "Opción no valida"; FinSegun FinProceso

Page 10: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

! !!!!! !!!!!!!!!!!!!!

�10CONTROL DE FLUJO

Escribir “Algorítmica”;

Fin

Escribir “Hola Mundo”; Escribir “UV”; Escribir

“Adiós”;Escribir

“Opción no valida”;

1 De otro modo2 3 4

Inicio

opc

Page 11: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructuras Repetitivas!!En este tema se examinan los diferentes métodos que utilizamos para crear o construir secciones de código repetitivas. Lo cual nos lleva al concepto de bucle, las cuales son estructuras que se repiten un número determinado de veces, a los cuales también se les conoce como iteraciones.En este tema veremos las sentencias de: !

While (mientras) Do - While (hacer mientras) For (desde / para) !

Cuando utilizamos bucles debemos conocer cuando detenerlo, para ello es necesario saber cuantas veces vamos a hacer la repetición, ya que si se desconoce este dato tendríamos un bucle infinito, lo cual nos llevaría a un error lógico. !!!!!!!!!!!!!!

!

�13CONTROL DE FLUJO

Condición

acciones

No

Puntos importantes:!En todo bucle debemos preguntarnos:!

¿qué contiene el bucle?!¿cuantas veces se debe repetir?

Page 12: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura mientras (“While”)!!Estructura repetitiva conocida como “mientras”, en su caso el cuerpo del bucle se repite mientras se cumple una determinada condición, en donde esta condición se evalúa mediante una expresión booleana (recordando que una condición booleana nos da como resultado Verdadero o Falso). Si se evalúa como falso no se toma ninguna acción y se sale del bucle, en caso que la expresión booleana arroje como resultado verdadero, se ejecuta el cuerpo del bucle, permitiendo volver a evaluar la expresión y volver a ejecutar el cuerpo del bucle mientras este sea Verdadero.

!

!! !!Sintaxis en lenguaje de programación!Pseudocódigo Java

Mientras (condición) Hacer acciones; FinMientras

While(condición){ acciones; }

�14CONTROL DE FLUJO

Cuando la expresión o condición sea falsa se sale del ciclo, mientras sea verdadera permanece dentro del ciclo.

Condición

acciones

Falso

Verdadero

Proceso sin_titulo Definir x Como Entero; x = 0; Mientras x < 5 Hacer x = x + 1; Escribir x; FinMientras FinProceso

Page 13: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura hacer-mientras (“do-while”)!!Estructura repetitiva conocida como “hacer - mientras”, es un método muy parecido al While, con la diferencia de que este funciona al menos una vez. Esto quiere decir que este tipo de estructuras también se les conoce como bucles pre-test, en donde se requiere que el cuerpo del bucle se ejecute al menos una vez sea cual sea el valor de la expresión o condicho de evaluación.

!!!

!Sintaxis en lenguaje de programación!Pseudocódigo PSeInt Java

Hacer acciones; Mientras (condición)

Repetir acciones; Hasta Que (condición)

While(condición){ acciones; }

�15CONTROL DE FLUJO

El bucle do-while se termina de ejecutar cuando el valor de la condición es falsa.

Condición

acciones

Falso

Verdadero

Proceso sin_titulo Definir x Como Entero; x = 0; Do x = x + 1; Escribir x; Mientras x < 5 FinProceso

En PSeInt se conoce como un “repetir”, sin embargo, el ciclo termina cuando la condición es Verdadera

Page 14: Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una estructura secuencial es aquella en la que una instrucción o acción sigue a otra en secuencia.

Estructura Para (“For”)!!Es una de las estructuras más utilizadas, La instrucción For ejecuta una secuencia de instrucciones o acciones un número determinado de veces. En su lógica se tienen tres secciones, en la primera de ellas se conoce el valor inicial, en donde se inicializa la variable de control dando pauta a donde comenzaremos el ciclo, como segunda sección tenemos la condicional y como tercera sección tenemos el incremento o decremento de la variable de control. Un for se puede representar de las siguientes maneras: !! !!!!!!

!Sintaxis en lenguaje de programación!

!

Pseudocódigo Java

Para (variable = inicio) Hasta (valor final) Hacer acciones; FinPara

for(var Inicio ; condición ; var Incremento){ acciones; }

�16CONTROL DE FLUJO

Condición

acciones

Falso

Verdadero

Inicializa Variable

Incremento Variable

acciones

Inicio

Variable

FinCondición

Proceso sin_titulo Definir x Como Entero; Para x=0 Hasta 10 Hacer Escribir x; FinPara FinProceso

En PSeInt se tiene la opción Con Paso para definir como se incrementa o decrementa, por default es 1.