Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una...
Transcript of Estructuras de Control de Flujo - uv.mx · CONTROL DE FLUJO 2. Estructura Secuencial!! Una...
Control de Flujo Estructuras de Control!!Experiencia Educativa de Algorítmica
�1CONTROL DE FLUJO
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
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
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.
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
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
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
!
�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
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
! !!!!! !!!!!!!!!!!!!!
�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
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?
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
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
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.