Estructuras de control El flujo secuencial de acciones en un algoritmo puede ser alterado por medio de las denominadas estructuras de control, las cuales se resumen a continuación: Estructuras de selección Simples Múltiples Si... entonces... sino... Fin si Según sea... hacer... Fin según Estructuras de repetición Repetir Para... Fin Para Repetir Mientras... Fin Mientras Repetir... Hasta Página 1 de 16
Estructuras de selección Las estructuras selectivas se utilizan para tomar decisiones. En las estructuras selectivas se evalúa una condición y en función del resultado se realiza o no un determinado conjunto de acciones. Las estructuras selectivas pueden ser: SIMPLES (COMPLETAS O INCOMPLETAS) y MULTIPLES SELECCION SIMPLE COMPLETA La estructura selección simple completa permite elegir entre dos opciones posibles. Si la condición es VERDADERA se ejecuta un conjunto de acciones S1 Si la condición es FALSA se ejecuta un conjunto de acciones S2 FLUJO DEL ALGORITMO PSEUDOCODIGO Condición es una expresión lógica VERDADERA ACCIONES S1 CONDICION FALSA ACCIONES S2 Si (condición) entonces <acción 1> <acción 2> sino <acción 3> <acción 4> Fin si Página 2 de 16
Estructuras de selección SELECCION SIMPLE INCOMPLETA La estructura selección simple incompleta es más limitada y solamente ejecuta un conjunto de acciones cuando se cumple la condición. Si la condición es VERDADERA, entonces se ejecuta el conjunto de acciones S1 Si la condición es FALSA no se ejecutan las acciones S1 FLUJO DEL ALGORITMO PSEUDOCODIGO Condición es una expresión lógica VERDADERA Ejemplo: CONDICION ACCIONES S1 FALSA Si (condición) entonces <acción 1> <acción 2> Fin si Página 3 de 16
Estructuras de selección Ejercicios propuestos: 1) Resolución de una ecuación de primer grado. (ax+b =0). Datos?, Resultado?, Metodología? 2) Calcular el salario semanal de un empleado, el cual se calcula en base a las horas trabajadas y de acuerdo a un precio especificado por hora. Si se pasan las 40 horas semanales, las horas extras se pagan a razón de 1.5 veces la hora ordinaria. Resolver de 2 formas: a) utilizando selección simple completa b) utilizando selección simple incompleta Página 4 de 16
Estructuras de selección SELECCION MULTIPLE [necesidad de más de dos opciones] La estructura de selección múltiple evalúa una condición la cual puede adoptar n valores posibles. Según sea el valor dado por la condición se ejecuta un determinado conjunto de acciones Sn. FLUJO DEL ALGORITMO PSEUDOCODIGO 1 CONDICION La condición propuesta no verifica ninguna de la 2 n opciones posibles 3 ACCIONES S1 ACCIONES S2 ACCIONES S3...... ACCIONES Sn Condición es una expresión numérica o caracter Según sea (condición) Caso V1: <acción 1> <acción 2> Caso V2: <acción 3> <acción 4> Caso V3: <acción 5> <acción 6> sino <acción 7> <acción 8> Fin según Página 5 de 16
Las estructuras repetitivas se utilizan para repetir la ejecución de un conjunto de acciones una determinada cantidad de veces. Estructura REPETIR PARA Repetir Para v vi, vf, Inc <acciones> Fin Para donde: v : variable de control o índice vi : es el valor inicial que se le asigna a la variable v vf : es el valor final que debe alcanzar la variable v antes de salir de la estructura. Inc : incremento La variable de control puede ser de tipo numérico o carácter. El valor de la variable de control no puede ser modificado dentro del bucle o iteración, pero sí puede ser utilizado, siempre que no se lo modifique En caso de omitirse el incremento, la estructura asume que el incremento es la unidad. Página 6 de 16
Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales algoritmo num30 Variables Entero : I Inicio Escribir ( Números del 1 al 30 ) Repetir Para I 1, 30 Escribir ( I ) Fin Para Fin El Incremento Inc puede ser positivo o negativo (nunca puede ser cero) Esta estructura comienza con un valor inicial de la variable de control. Las acciones se ejecutan hasta que la variable de control sea mayor que el valor final, en caso de que Inc sea positivo; o hasta que la variable de control sea menor que el valor final, en caso de que Inc sea negativo. Repetir Para I 10, 1, 1 Escribir ( Cuenta decreciente:, I) Fin Para Página 7 de 16
Casos en los que las acciones dentro de la estructura Repetir para no se ejecutan nunca: 1) Si vi < vf y Inc < 0 Ejemplo: Repetir Para I 1, 10, 1 Fin Para 2) Si vi > vf y Inc > 0 Ejemplo: Repetir Para I 20, 1, 2 Fin Para Ejercicios propuestos: 1) Calcular el promedio de 100 números reales 2) Calcular la suma de los primeros N números pares. (Resolver también para los impares) 3) Calcular la suma de los números pares menores o iguales a N. (Resolver también para los impares) Página 8 de 16
Estructura REPETIR MIENTRAS Repetir Mientras (condición) hacer <acciones> Fin Mientras Las acciones dentro de la estructura se ejecutarán mientras la expresión lógica (<condición>) dé como resultado VERDADERO; en caso contrario, se termina la estructura y se sigue con el flujo del programa. La/s variable/s que intervienen en la expresión lógica deben ser modificadas por las acciones para que la condición pueda, en algún momento, adoptar el valor FALSO. Lo primero que se evalúa en una estructura mientras es la condición. Si el resultado es VERDADERO se ejecutan las acciones y a continuación se vuelve a evaluar la condición. Mientras que si el resultado de la expresión es FALSO se termina la estructura de repetición. Página 9 de 16
Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales Algoritmo Num30 Variables Entero: contador Inicio contador 1 Repetir Mientras (contador <= 30) hacer Escribir (contador) contador contador + 1 Fin Ejercicios propuestos: Fin Mientras Escribir ( Números escritos: 30 ) 1) Calcular la cantidad de números naturales consecutivos que se deben sumar para superar el valor S. 1 + 2 + 3 +..+ N > S 2) Idem para la cantidad de números pares. (Resolver también para los impares) 2 + 4 + 6 +.. + N > S 1 + 3 + 5 +.. + N > S Página 10 de 16
VALIDAR Es muy frecuente tener que realizar validación de entrada de datos en la mayoría de las aplicaciones. Este ejemplo detecta cualquier entrada entre 1 y 12, rechazando las restantes, ya que se trata de leer los números correspondientes a los meses del año. Algoritmo ValidarMes Variables Entero: mes Inicio Escribir ( Ingrese número del mes ) Leer (mes) Repetir Mientras (mes < 1) o (mes > 12) hacer Escribir ( Valor debe estar acotado entre 1 y 12 ) Leer (mes) Fin Mientras : Fin Ejercicios propuestos: Resolver los ejercicios 2 y 3 propuestos en la estructura desde, validando que N sea positivo. Página 11 de 16
Estructura REPETIR HASTA Repetir <acciones> Hasta (condición) Las acciones dentro de la estructura repetir de ejecutan hasta que la expresión lógica (<condición>) de como resultado VERDADERO; en caso contrario, se re-ingresa a la estructura de repetición. La/s variable/s que intervienen en la expresión lógica deben ser modificadas por las acciones para que la condición pueda, en algún momento, adoptar el valor VERDADERO. Las acciones en una estructura repetir hasta se ejecutarán al menos una vez. Página 12 de 16
Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales Algoritmo Num30 Variables Entero: contador Inicio contador 1 Repetir Escribir (contador) contador contador + 1 Hasta (contador > 30) Escribir ( Números escritos: 30 ) Fin Ejercicios propuestos: Resolver los ejercicios propuestos en la estructura mientras, utilizando una estructura repetir. Página 13 de 16
DIFERENCIAS ENTRE LAS ESTRUCTURAS REPETIR MIENTRAS Y REPETIR HASTA: La estructura repetir mientras evalúa la condición antes de ejecutar las acciones, en cambio repetir hasta primero ejecuta las acciones y después evalúa la condición. La estructura repetir mientras termina cuando la condición es falsa, mientras que repetir hasta termina cuando la condición es verdadera. En la estructura repetir hasta el conjunto de acciones se ejecuta siempre al menos una vez; por el contrario en el caso del repetir mientras permite la posibilidad de que las acciones puedan no ser ejecutadas. DIFERENCIAS ENTRE LA ESTRUCTURA REPETIR PARA Y LAS ESTRUCTURAS REPETIR MIENTRAS Y REPETIR HASTA: En la estructura repetir para se conoce antes de entrar en la estructura la cantidad de veces que se va a repetir la ejecución de las acciones, en cambio en las estructuras repetir mientras y repetir hasta no siempre se conoce dicha cantidad. Página 14 de 16
REALIZACIÓN DE UNA ESTRUCTURA Repetir Para CON UNA ESTRUCTURA Repetir Mientras 1. Estructura Repetir Para con incrementos de la variable índice positivos. v vi Repetir Mientras (v <= vf) hacer <acciones> v v + incremento Fin Mientras 2. Estructura Repetir Para con incrementos de la variable índice negativos. v vi Repetir Mientras (v >= vf ) hacer <acciones> v v - incremento Fin Mientras Página 15 de 16
Estructuras de control ANIDAMIENTO CORRECTO CORRECTO INCORRECTO Las estructuras internas deben estar totalmente contenidas dentro de la externa y no puede existir solapamiento Página 16 de 16