Download Unidad VI: Sentencias repetitivas
Document related concepts
Transcript
2013 UNIDAD IV: Sentencias Repetitivas Departamento de Computación UNAN-León Unidad VI: Sentencias repetitivas UNIDAD IV: Sentencias repetitivas 4.1 INTRODUCCIÓN: En la práctica es muy común encontrar algoritmos cuyas operaciones deben realizarse un número repetitivo de veces. A este conjunto de instrucciones que se ejecutan repetidamente se le conoce como bucle o ciclo. Un bucle debe terminar de ejecutarse luego de un número finito de veces, por lo que se debe evaluar en cada iteración (repetición) si el bucle debe o no detenerse. A esta evaluación se le conoce como: condición de parada. La condición de parada normalmente se indica al inicio o al final del bucle, de acuerdo a esta premisa podemos clasificar a las sentencias repetitivas en dos grupos: a. Con la condición de parada al inicio b. Con la condición de parada al final Dentro del grupo de sentencias repetitivas con la condición de parada al inicio tenemos a la sentencia Mientras y a la sentencia Para. Y dentro del grupo de sentencias con la condición al final tenemos a la sentencia Repetir. 4.2 Sentencia Mientras La estructura algorítmica Mientras es quizás la estructura de repetición más sencilla, y sin embargo es considerada por muchos como la más potente. Su función consiste en ejecutar un número determinado de veces una secuencia de instrucciones, sin embargo este número de repeticiones depende de la condición de parada que contenga el propio ciclo. Por lo tanto el ciclo Mientras se ejecutara mientras la condición que se evalúa resulte ser verdadera. La forma de uso de la sentencia es la siguiente: Mientras expresion_logica Hacer secuencia_de_acciones FinMientras La estructura repetitiva Mientras permite ejecutar las instrucciones mientras la expresión_lógica sea verdadera. Si la primera vez que se evalúa la condición resulta falsa, la sentencia no se ejecutará ninguna vez. 1 2 3 4 5 6 7 8 Ejemplo: Proceso Ejemplo01_Mientras Definir contador Como Entero; contador <- 1; Mientras contador <= 10 Hacer Escribir "Repeticion numero ", contador; contador <- contador + 1; Fin Mientras FinProceso 2 Unidad VI: Sentencias repetitivas Explicación del algoritmo: Línea 2, se declara una variable llamada contador la cual se utilizará para controlar las veces que se ejecutara el ciclo Mientras. Línea 3, se le da un valor inicial a la variable contador Línea 4, inicia el ciclo Mientras cuya condición de parada esta determinada por la expresión lógica contador <= 10. El ciclo Mientras se ejecutara mientras la variable contador posea un valor menor o igual a 10. Línea 5, se presenta un rotulo en pantalla por medio de la sentencia Escribir. Línea 6, la variable contador es incrementada en 1. Si este incremento no esta presente el ciclo Mientras se ejecutara indefinidamente. Diagrama de flujo: Resultado de la ejecución: Como se puede observar el ciclo Mientras se ejecuta en diez ocasiones, estas repeticiones están dadas por el valor de la variable contador. Importante En la estructura Mientras el número de veces que se ejecute el bucle está determinado por la condición. Al ejecutar la instrucción mientras, lo primero que se evalúa es la condición Si la condición es falsa, no se toma ninguna acción y se prosigue con la instrucción siguiente al bucle. Si la condición es verdadera, se ejecuta el cuerpo del bucle y después se vuelve al inicio del bucle y se evalúa nuevamente la condición. 3 Unidad VI: Sentencias repetitivas 4.2.1 Ejemplos estructura repetitiva Mientras Ejemplo1: Realizar un algoritmo que por medio de la estructura repetitiva Mientras presente la suma de los números comprendidos en el rango de 1-100. Variables a utilizar - contador: Variable que llevara el control de las iteraciones desde el número 1 al número 100 - suma: Variable en la que se irá almacenando la suma de los valores de la variable contador. Datos de entrada: - Este algoritmo no requiere de la introducción de datos por parte del usuario. Datos de salida: - Al terminar la ejecución del algoritmo se ha de presentar el valor de la variable suma. Procedimiento: - Inicializar a la variable contador a 1 (Número inicial del rango a sumar) - Inicializar el valor de la variable suma al valor 0 - Realizar el ciclo Mientras, siempre y cuando el valor de la variable contador sea menor o igual a 100. - Dentro del ciclo Mientras se realiza la suma del número actual (contador) con el valor actual de la variable suma. - Finalizado el ciclo presentar el resultado en pantalla 1 2 3 4 5 6 7 8 9 10 Solución Proceso mientras_ejemplo1 Definir contador, suma Como Entero; contador<-1; suma<-0; Mientras contador <= 100 Hacer suma<-suma + contador; contador <- contador + 1; Fin Mientras Escribir "La suma de los numeros del 1-100 es: ", suma; FinProceso 4 Unidad VI: Sentencias repetitivas Diagrama de flujo Resultado Explicación del algoritmo: Línea 2, se declaran las variables a utilizar en el algoritmo. Línea 4, el valor de la variable contador es puesto 1 con el fin de recorrer el ciclo desde 1 a 100. Línea 5, el valor de la variable suma es puesto a 0 para que este posee un valor inicial antes de utilizarlo dentro del ciclo. Línea 7, se define el ciclo Mientras de tal forma que la condición de parada es contador <= 100 lo que significa que el ciclo se ejecutara siempre y cuando el valor de la variable contador sea menor o igual a 100. Línea 8, la variable suma tomara el valor que resulte luego de la evaluación de la expresión. Línea 9, se incrementa en 1 el valor de la variable contador. Línea 12, presenta el resultado en pantalla. 5 Unidad VI: Sentencias repetitivas Ejemplo2: Realizar un algoritmo que por medio de la estructura repetitiva Mientras obtenga el valor mayor ingresado en una serie de 10 números ingresados por parte del usuario. Variables a utilizar - contador: Variable que llevara el control de las 10 iteraciones. - Valor_mayor: Variable en la que se almacena el valor mayor ingresado por parte del usuario - num: Se utilizara para capturar los números ingresados por parte del usuario. Datos de entrada: - El usuario va a introducir los valores los cuales se van almacenando en la variable num. Datos de salida: - Al terminar la ejecución del algoritmo se ha de presentar el valor mayor de los introducidos por parte del usuario. Procedimiento: - Se solicitara al usuario ingrese el primer elemento. - Este primer elemento se asume es el mayor, por lo tanto la variable valor_mayor tomara el valor de este primer elemento ingresado. - Por medio de un ciclo procederemos a pedir el restante de los elementos comparando cada uno con el valor de la variable valor_mayor y el elemento ingresado. Si el valor del elemento ingresado es mayor que el valor de la variable valor_mayor, se reemplaza el valor de este último por el valor ingresado por el usuario. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Solución Proceso mientras_ejemplo2 Definir contador, num, valor_mayor Como Entero; Escribir "Ingrese el elemento 1 "; Leer valor_mayor; contador<-2; Mientras contador <= 10 Hacer Escribir "Ingrese el elemento ", contador ; Leer num; Si num > valor_mayor Entonces valor_mayor <- num; FinSi contador <- contador + 1; FinMientras Escribir "El valor mayor introducido es: ", valor_mayor; FinProceso 6 Unidad VI: Sentencias repetitivas Diagrama de flujo Resultado 7 Unidad VI: Sentencias repetitivas Explicación del algoritmo Línea 2, se declaran las variables a utilizar en el algoritmo. Línea 4, se solicita al usuario que ingrese un número Línea 5, captura el valor ingresado por parte del usuario, como se puede observar este valor es almacenado por la variable valor_mayor. Esto es, por que asumimos que el valor mayor es el primero ingresado por el usuario y así tener un valor de comparación para los futuros ingresos de valores por parte del usuario. Línea 7, la variable contador es puesta al valor 2, puesto que ya se solicito el primer número. Línea 9, inicia el ciclo Mientras con la condición de parada contador<=10 Línea 10 y línea 11, se solicita de nuevo al usuario que ingrese los un valor y se captura en la variable num Línea 13, se comparan los valores de las variables num y valor_mayor con el fin de identificar si el valor capturado por num es mayor que el valor mayor actual. Si esta comparación resulta ser verdadera se ejecutara la línea 14. Línea 17, se incrementa el valor de la variable contador en uno. Línea 20, se presenta en pantalla el valor correspondiente al número mayor ingresado por parte de usuario. Ejemplo3: Realizar un algoritmo que por medio de la estructura repetitiva Mientras presente en pantalla la tabla de multiplicar de un número ingresado por parte del usuario. Variables a utilizar - cuenta: Variable que llevara el control de las iteraciones, en este caso serán 12 iteraciones. - num: Esta variable almacena el número ingresado por parte del usuario. Datos de entrada: - El usuario va a introducir el número del cual desea que se le muestre la tabla de multiplicar, este valor será almacenado en la variable num. Datos de salida: - Presentar en pantalla la tabla de multiplicar del número ingresado por parte del usuario. Procedimiento: - Solicitar el numero al usuario - Por medio del ciclo Mientras ir presentando en pantalla el resultado de multiplicar a la variable cuenta con el numero (num) ingresado por parte del usuario 1 2 3 4 5 6 7 8 9 10 11 Solución Proceso Mientras_Ejemplo3 Definir cuenta, num Como Entero; Escribir "Ingrese el numero "; Leer num; cuenta<-1; Mientras cuenta <= 12 Hacer Escribir num, " x ", cuenta, " = ", cuenta*num; cuenta<-cuenta+1; FinMientras FinProceso 8 Unidad VI: Sentencias repetitivas Diagrama de flujo Resultado Explicación del algoritmo: Línea 2, se declaran las variables a utilizar en el algoritmo. Líneas 3 y 4, se solicita al usuario que ingrese un número y se captura el valor ingresado por parte del usuario en la variable num Línea 6, la variable cuenta es puesta al valor 1esta será la encargada de llevar el control de las iteraciones del ciclo. Línea 7, inicia el ciclo Mientras con la condición de parada cuenta<=12 Línea 8, se presenta el mensaje en pantalla indicando. Línea 9, se incrementa el valor de la variable cuenta en uno. 9 Unidad VI: Sentencias repetitivas 4.3 Estructura repetitiva Para: La estructura algorítmica Para es utilizada con frecuencia en la construcción de algoritmos en los que se conoce a priori la cantidad de iteraciones que se deben realizar el ciclo. La forma de uso de la estructura repetitiva Para es la siguiente: Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer secuencia_de_acciones Fin Para Donde: Variable_numerica: Corresponde a la variable que se utilizara para controlar las repeticiones del ciclo Para. Valor_inicial: Es el valor con el cual se iniciara el ciclo de repeticiones Valor_final: Corresponde al número de iteraciones que se llevaran a cabo por parte del ciclo Para. Paso: Indica la forma en que el ciclo se comporta, esto es, si el ciclo se ejecutara en orden ascendente (incremento) o en orden descendente (decremento). Este incremento o decremento afectara el valor de la variable_numerica con el fin de alcanzar el valor_final. 1 2 3 4 5 6 Ejemplo Proceso Ejemplo01_Para Definir contador Como Entero; Para contador<-1 Hasta 10 Con Paso 1 Hacer Escribir 'Repeticion numero ',contador Fin Para FinProceso Explicación del algoritmo Línea 2, se declara la variable contador la cual se utilizara para controlar el numero de iteraciones del ciclo. Línea 3, inicia el ciclo Para, dando un valor inicial de 1 a la variable contador, a demás se especifica cuál será el valor final de la variable contador , en este caso 10. Luego se indica que la variable contador irá incrementando en uno con el fin del alcanzar al valor final. Línea 4: Presenta el mensaje en pantalla Diagrama de flujo 10 Unidad VI: Sentencias repetitivas Resultado de la ejecución Importante 4.3.1 La estructura algorítmica Para se utiliza normalmente en los casos en el que el número de iteraciones es fijo y se conoce de antemano. Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de veces y controla de modo automático (implícito) el número de iteraciones o pasos a través del cuerpo del bucle. Ejemplos estructura repetitiva Para Ejemplo1: Escriba un algoritmo que solicite 20 números enteros y que cuente cuantos ceros se ingresaron. Variables a utilizar - contador: Variable que llevara el control de las iteraciones, en este caso serán 20 iteraciones. - num: Esta variable almacena el número ingresado por parte del usuario. - ceros: Sera la variable que llevara el control de la cantidad de ceros ingresados Datos de entrada: - El usuario va a introducir una serie de números, cada uno de los cuales se ira almacenando en la variable num. Datos de salida: - Presentar en pantalla el valor de la variable ceros quien posee la cantidad de ceros ingresados por el usuario, al inicio esta variable posee el valor inicial 0. Procedimiento: - Darle un valor inicial a la variable ceros. - Por medio del ciclo Para solicitar al usuario ingrese una serie de 20 valores - Verificar si el valor ingresado es cero, si la comparación resulta ser verdadera se incrementará en uno el valor de la variable ceros. 11 Unidad VI: Sentencias repetitivas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Solución: Proceso para_ejemplo1 Definir contador, num, ceros Como Entero; ceros<-0; Para contador<-1 Hasta 20 Con Paso 1 Hacer Escribir Sin Saltar "Ingrese el elemento ", contador; Leer num; Si num = 0 Entonces ceros<-ceros+1; FinSi FinPara Escribir "Se ingresaron un total de: ", ceros, " ceros"; FinProceso Diagrama de flujo 12 Unidad VI: Sentencias repetitivas Resultado Explicación del algoritmo: Línea 2, Se define las variables a utilizar. Línea 4, La variable ceros toma el valor inicial 0, indicando que no se han ingresados elementos con el valor cero. Línea 6, Inicia el ciclo Para, con la variable contador con un valor inicial de 1 y cuyo valor final será 20. Además se indica que la variable contador irá aumentando su valor en uno Línea 7 y 8, se le solicita al usuario ingrese un número y se captura su valor almacenado dicho valor en la variable num. Línea 10, se verifica si el número ingresado es igual a cero, si esto es verdadero se incrementa en uno el valor de la variable ceros (esto de hace en el línea 11). Línea 15, Se presente en pantalla el total de números creso ingresados. Ejemplo2: Escriba un algoritmo que solicite 10 números enteros y que muestre en pantalla el promedio de los números ingresados. Variables a utilizar - contador: Variable que llevara el control de las iteraciones, en este caso serán 10 iteraciones. - num: Esta variable almacena el número ingresado por parte del usuario. - suma: Sera la variable que almacena la suma de todos los números ingresados. - promedio: Almacena el promedio de todos los números ingresados. Datos de entrada: - El usuario va a introducir una serie de números, cada uno de los cuales se ira almacenando en la variable num. 13 Unidad VI: Sentencias repetitivas Datos de salida: - Presentar en pantalla el promedio de los números. Procedimiento: - Darle un valor inicial a la variable suma, el valor será 0. - Por medio del ciclo Para solicitar al usuario ingrese una serie de 10 valores - Dentro del ciclo Para se irán sumando los valores ingresados - Al terminar el ciclo se calculara el promedio correspondiente 1 2 3 4 5 6 7 8 9 10 11 12 13 Solución Proceso para_ejemplo2 Definir contador, num, suma Como Entero; Definir promedio como real; suma<-0; Para contador<-1 Hasta 10 Con Paso 1 Hacer Escribir Sin Saltar "Ingrese el elemento ", contador; Leer num; suma<-suma + num; FinPara promedio<-suma/10; Escribir "El promedio es: ", promedio; FinProceso Diagrama de flujo 14 Unidad VI: Sentencias repetitivas Resultado Explicación del algoritmo Línea 2 y 3, se declaran las variables a utilizar Línea 5, la variable suma toma el valor inicial cero. Línea 7, Inicia el ciclo Para, con la variable contador con un valor inicial de 1 y cuyo valor final será 10. Además se indica que la variable contador irá aumentando su valor en uno Líneas 8 y 9, se solicita al usuario que ingrese un valor, y este es almacenado en la variable num. Línea 11, se realiza la suma del valor actual de la variable suma con el numero ingresado por el usuario. El resultado de esta operación es almacenado dentro de la misma variable suma. Línea 14, se calcula el promedio de los valores ingresados. Línea 16, se presenta en pantalla el promedio de los números ingresados. Ejemplo3: Escriba un algoritmo que muestre en pantalla los números en el rango de 1 a 20 pero en orden descendente. Variables a utilizar - contador: Variable que llevara el control de las iteraciones, en este caso serán 20 iteraciones. Datos de entrada: - El usuario no ingresara ningún dato para el funcionamiento del algoritmo. Datos de salida: - Se presentara cada uno de los números indicados en el rango de 1-20 pero en orden inverso. Procedimiento: - Por medio del ciclo Para iniciaremos con el valor 20 e iremos decrementando en uno el valor de la variable de control llamada contador. - Dentro del ciclo Para se irán presentando el valor correspondiente a la variable contador. 15 Unidad VI: Sentencias repetitivas 1 2 3 4 5 6 Solución Proceso Para_Ejemplo03 Definir contador Como Entero; Para contador<-20 Hasta 1 Con Paso -1 Hacer Escribir contador; FinPara FinProceso Diagrama de flujo Resultado 16 Unidad VI: Sentencias repetitivas Explicación del algoritmo Línea 2, se declaran las variables a utilizar Línea 3, Inicia el ciclo Para, con la variable contador con un valor inicial de 20 y cuyo valor final será 1. Además se indica que la variable contador irá disminuyendo su valor en uno Línea 4, se presenta en pantalla el valor de la variable contador 4.4 Ejercicios Propuestos Ejercicio1: Elabore un algoritmo que presente los números pares que estén en el rango de 1 a 100. Realice dos versiones de este algoritmo una utilizando el ciclo Mientras y la otra utilizando el ciclo Para. Ejercicio2: Desarrollar un algoritmo que permita ingresar n números enteros y luego nos informe cuántos valores fueron pares y cuántos impares. Ejercicio3: Utilizando el ciclo Para, calcule la suma de los 500 primeros números enteros. Ejercicio4: Diseñe un algoritmo que lea una lista de notas de los N estudiantes de Lógica de programación y cuente el total de aprobados y el total de reprobados. Ejercicio5: Sumar los números enteros positivos múltiplos de 5 y que se encuentre en el rango de 1-100. Ejercicio6: Elaborar un algoritmo que solicite la edad de 20 personas y que muestre cuántos de ellos son mayores de edad y cuántos son menores de edad. Ejercicio7: Elaborar un algoritmo en pseudocódigo que calcule la suma de los números múltiplos de 3 y 7 a partir del número 9 y finaliza en el numero 45, no deben incluirse en la suma los números comprendidos entre 21 y 27. Ejercicio8: Realice un programa que muestre en pantalla la suma de los números que estén en el rango de 1 a N, siendo N un número ingresado por el usuario. Ejercicio9: Realice un algoritmo que calcule la potencia de un número, el usuario ingresara el número correspondiente a la base y el número correspondiente al exponente. Utilice un ciclo que permita realizar el cálculo en cuestión. Ejemplo: 24 = 16, esto es 2*2*2*2 Ejercicio10: Desarrollar un algoritmo que por medio de la sentencia repetitiva Para que muestre la tabla de multiplicar de un número dado por el usuario. 17