SENTENCIAS DE CONTROL Las sentencias de control hacen que el flujo de la ejecución de un conjunto de instrucciones avance y se bifurque en función de los cambios de estado (verdadero ó falso) de un programa. Se pueden clasificar en las siguientes categorías: Estructuras selectivas Estructuras repetitivas Estructuras selectivas Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que suelan denominarse también estructuras de decisión o alternativas. En las estructuras selectivas se evalúa una condición y en función del resultado de la misma, se realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas. Las estructuras selectivas o alternativas pueden ser: 1. Simples 2. Dobles 3. Múltiples 1. Alternativa simple: si – entonces, ejecuta una acción o conjunto de acciones, si cumple una determinada condición. La selección si – entonces evalúa la condición y Si la condición es verdadera, entonces ejecuta la acción S1 o el conjunto de acciones Si la condición es falsa, no se ejecuta ninguna acción. Sintaxis: si (condición) entonces acción S1 (o conjunto de acciones) fin_si Ejemplo 9. Determinar si un número x está en el intervalo [3, 6] si (( x >= 3 ) ^ ( x <= 6 )) entonces Escribir: “x está en el intervalo [3, 6]”; fin_si Ejemplo 10. Determinar si el entero n es un número par si (( n mod 2 ) = = 0 ) entonces Escribir: “ n es un entero par”; fin_si 2. Alternativa doble. Permite elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de una determinada condición. Si la condición es verdadera, se ejecuta la acción S1(o conjunto de acciones) y si es falsa se ejecuta la acción S2 (o conjunto de acciones). Sintaxis: si (condición) entonces acción S1 (o conjunto de acciones) fin_si sino acción S2 (o conjunto de acciones) fin_sino Ejemplo 11. Determinar si un número x es negativo, positivo o nulo si ( x > 0 ) entonces Escribir: “el número es positivo”; fin_si sino si ( x < 0 ) entonces Escribir: “el número es negativo”; fin_si sino Escribir: “el número es nulo”; fin_sino fin_sino 3. Alternativa múltiple. Segun_sea, la estructura de decisión múltiple evaluará una expresión (E) que podrá tomar n valores distintos, e1 , e2 , , en . Según se elija uno de estos valores en la condición, se realizará una de las n acciones, o lo que es igual, el flujo del programa seguirá un determinado camino entre los n posibles. Sintaxis: segun_sea expresión (E) hacer e1: acción S11 acción S12 terminar e2: acción S21 acción S22 terminar en: acción Sn1 acción Sn2 terminar otro_caso: acción Sx fin_segun_sea Ejemplo 13. El ejemplo ilustra la alternativa múltiple. La expresión E puede tomar valores entre 1 y 4. Dependiendo de este valor se realizará una de las cuatro operaciones básicas. Segun_sea Expresion (E) hacer 1: c = a + b; Escribir: “La suma es:”, c; terminar 2: c = a – b; Escribir: “La resta es: ”, c; terminar 3: c = a * b; Escribir: “El producto es:”, c; terminar 4: c = a / b; Escribir: “La división es:”, c; terminar Otro caso: Escribir: “Valor fuera de rango”; fin segun_sea 2.2.2 Estructuras repetitivas Las estructuras repetitivas son estructuras de control que permiten la repetición de una serie determinada de instrucciones de acuerdo a una condición. Estas estructuras también reciben el nombre de bucles o ciclos. Al hecho de repetir la ejecución de una secuencia de acciones se le llama iteración . Componentes de un bucle Condición de terminación Una acción o conjunto de acciones a ejecutar Operación de incremento Las estructuras repetitivas pueden ser: 1. Estructura mientras 2. Estructura ejecute/mientras 3. Estructura desde/hasta 1. Estructura mientras La estructura repetitiva mientras es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras, la primera acción es evaluar la condición (una expresión booleana). Si esta expresión es falsa, ninguna acción se realiza y el programa continua en la siguiente instrucción del bucle. Si la condición es verdadera, se ejecuta el cuerpo del bucle, después de lo cual se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra vez mientras la condición sea verdadera. Sintaxis: mientras (condición) hacer accion S1 acción S2 acción Sn fin_mientras Ejemplo 14. Escribir los números del 5 al 30 entero i = 5; mientras ( i <= 30 ) hacer Escribir: i; i = i + 1; fin_mientras 2. Estructura ejecute / mientras La estructura ejecute/mientras se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle. El bucle ejecute/mientras se repite mientras el valor de la expresión booleana de la condición sea verdadera. Sintaxis: ejecute accion S1 acción S2 acción Sn mientras (condición) Ejemplo 15. Escribir la suma de los primeros 15 enteros positivos entero i = 1, sum = 0; ejecute sum = sum + i; i = i + 1; mientras ( i < 16 ); Escribir: “La suma es: ”, sum; 3. Estructura desde / hasta La estructura desde/hasta ejecuta las acciones del cuerpo del bucle un número especificado de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del bucle. Sintaxis: desde v vi hasta v v f accion S1 acción S2 acción Sn fin_desde donde: es la variable índice v valor inicial vi condición de terminación vf Ejemplo 16. Escribir los múltiplos de 7 comprendidos entre 7 y 50. entero v; desde v = 7 hasta v <= 50 Escribir: v; v = v + 7; fin_desde Ejercicio. Use el pseudocódigo y las estructuras de control para resolver cada uno de los siguientes enunciados. 1. Escriba un algoritmo que sume los múltiplos de 5 comprendidos entre 5 y 50 inclusive. 2. Dados dos enteros m y n, escribir la media aritmética de los números comprendidos entre ellos. 3. Escriba un algoritmo que imprima la siguiente tabla: N 1 2 3 4 5 CUBO 1 8 27 64 125 4. Escriba un algoritmo que imprima los números impares comprendidos entre 10 y 50. 5. Escriba un algoritmo que imprima todos los múltiplos intervalo [7, 56], en forma decreciente. de 3 comprendidos en el 6. Escriba un algoritmo para imprimir el factorial de 10. 7. Escribir un algoritmo para calcular el valor de la sumatoria 1 1 1 1 . 2 3 10 8. Escriba un algoritmo que imprima la suma de los números pares y la suma de los números impares comprendidos entre 1 y 20, inclusive. 9. Escriba un algoritmo para imprimir el factorial de cada uno de los enteros menores o iguales a 10. 10. Escriba un algoritmo para calcular el valor de la suma: 0!1! 2! 3! 10!