ESCUELA SUPERIOR POLITECNICA DE CHIMBORA FACULTAD DE INGENIERIA ELECTRONICA

TITULO: ESTRUCTURA WHILE OBJETIVO GENERAL
● Conocer la utilizacion de la estructura secuencial while

OBJETIVO ESPECIFICO
● ● Determinar la sintaxis de la estructura secuencial while Establecer el funcionamiento de la secuencia while

MARCO TEORICO
Esta estructura de repetición le permite al programador especificar las veces que se repita una acción mientras una condición se mantenga verdadera. La forma del while es:

while (condición) { bloque de instrucciones };

Mientras la condición se mantenga verdadera, se ejecutará X cantidad de veces el bloque de instrucciones dentro de las llaves. Es necesario que alguna vez la condición se haga falsa, pues de lo contrario se entraría en un ciclo infinito de repeticiones y el programa se consideraría bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while se ejecute alguna acción que en algún momento haga que la condición sea falsa. Veamos un ejemplo para ver funcionar la estructura de repetición while: int num;

num = 0; while (num<=10) { printf(“Repetición numero %d\n”, num); num = num + 1; }; El código anterior imprimirá en pantalla:

Repetición numero 0 Repetición numero 1 Repetición numero 2 Repetición numero 3 Repetición numero 4 Repetición numero 5 Repetición numero 6 Repetición numero 7 Repetición numero 8 Repetición numero 9 Repetición numero 10

Vemos que iniciamos la variable del tipo entero num en cero. Luego, se evalúa por primera vez si es menor o igual a 10, al ser verdadera, se ejecuta el bloque dentro del while por primera vez. Se imprime Repetición numero 0, pues el valor dentro de num es cero. Luego el proceso se repite hasta que num con valor 10 se le suma 1, y toma el valor 11. Se evalúa la condición del while y se determina que NO se cumple, por lo tanto, salta el bloque y sigue la ejecución del programa.

Estructuras de repetición En la solución de algunos problemas es necesario ejecutar repetidas veces una instrucción o un conjunto de instrucciones. En algunos casos, el número de repeticiones se conoce con anterioridad, mientras que en otras depende de cálculos o estados de variables que se dan dentro de la solución del problema.

Para solucionar este tipo de problemas se utiliza un tipo de estructuras a las que se conocen como estructuras de repetición, bucles o ciclos. Un ciclo consiste en un grupo de acciones que se ejecutan repetidas veces dependiendo del cumplimiento de una condición. Ciclo Mientras Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se cumpla una condición. De igual manera que en los condicionales, la condición es evaluada y retorna un valor lógico, que puede ser verdadero o falso. En el caso del ciclo mientras las instrucciones contenidas en la estructura de repetición se ejecutarán solamente si al evaluar la condición se genera un valor verdadero; es decir, si la condición se cumple; en caso contrario, se ejecutará la instrucción que aparece después de Fin mientras. A diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresión condicional, si el resultado es verdadero se ejecutarán las instrucciones que estén entre el mientras y el fin mientras, al encontrarse la línea fin mientras se volverá a evaluar la condición, si se cumple se ejecutarán nuevamente las instrucciones y así sucesivamente hasta que la condición deje de cumplirse, en cuyo caso, el control del programa pasa a la línea que aparece después de fin mientras. Si en la primera pasada por el ciclo mientras la condición no se cumple las instrucciones que están dentro del ciclo no se ejecutarán ni una sola vez. En diagrama de Chapin (N-S), esta estructura tiene la presentación: Ejemplos: 1. Un algoritmo para mostrar los números del 1 al 10. Definición del problema Mostrar listado de números de 1 a 10. Análisis del problema Datos de entrada: ninguno Datos de salida: número Proceso: ninguno Diseño de la solución Este es un algoritmo muy trivial pero permite revisar la aplicación de la estructura de repetición Mientras. Lo primero a tener en cuenta es la declaración e inicialización de la variable: num = 1. En este

caso no solo se está declarando una variable de tipo entero, sino también se está asignando un valor inicial, que será el primer número mostrado. La condición o expresión relacional con la cual se implementa el ciclo es num <= 10, dado que num inicia en 1, la primera vez que se encuentra la instrucción mientras, la expresión es verdadera, por tanto se ejecutan las instrucciones que aparecen al interior del ciclo. Después de haber mostrado el contenido de la variable num, éste cambia, se incrementa en 1. 2. Leer n números y encontrar el valor promedio, el mayor y el menor Definición del problema Encontrar el promedio, el mayor y el menor de varios números Análisis del problema Para solucionar este problema, lo primero que hay que plantear es cómo se sabrá cuando terminar la lectura de datos, ya que no se especifica la cantidad de números que serán ingresados y en el planteamiento del problema no se da ninguna condición que permita saber cuando terminar el ciclo. Este tipo de problemas es muy común. Hay dos formas de abordar este ejercicio, la primera consiste en preguntar al usuario con cuantos números desea trabajar y guardar dicho valor en una variable que se utilizará para establecer el ciclo. La segunda consiste en preguntar después de leer cada dato, si se desea ingresar otro. En este ejercicio se utilizará la primera estrategia. Datos de entrada: cantidad de números, número Datos de salida: promedio, mayor y menor Procesos: suma = suma + número promedio = suma / cantidad de números Diseño de la solución 3. La serie Fibonacci comienza con los números: 0, 1, 1, 2, 3, 5, 8, 13, 21, … Se requiere un algoritmo para generar los primeros 10 números. Definición del problema Generar los 10 primeros números de la serie fibonacci Análisis del problema La serie fibonacci se genera a partir de dos valores iniciales que son el 0 y el 1, que al sumarse dan como resultado 1. El siguiente número se obtiene sumando el último número obtenido con el anterior, en este caso 1 + 1 = 2, luego será 2 + 1 = 3 y así sucesivamente. Datos de entrada: ninguno

Datos de salida: serie fibonacci Procesos: a=0 b=1 f=a+b Diseño de la solución

Estructura de repetición: la instrucción WHILE La estructura de repetición o bucle hace posible la ejecución repetida de una o más instrucciones. Pascal proporciona tres instrucciones que implementan la estructura de repetición: WHILE, FOR y REPEAT-UNTIL. La instrucción WHILE se usa para implementar una estructura de repetición (bucle while) en la que la repetición se controla mediante una expresión booleana y continúa ejecutándose mientras esta expresión permanece cierta, finalizando cuando se hace falsa. La ejecución repetida del cuerpo del bucle debe provocar en algún momento que el valor de la expresión booleana se haga falso; de lo contrario, la repetición continuara ejecutándose infinitamente. Instrucción WHILE Sintaxis: WHILE expresión-booleana DO instrucción donde: WHILE y DO son palabras reservadas; instrucción es una instrucción Pascal. Objetivo: Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresión booleana y, si todavía es cierta, se ejecuta de nuevo el cuerpo. Este proceso se repite mientras la expresión booleana sea cierta. Cuando se hace falsa, finaliza la repetición. Programa Escribir un programa que, para un valor Limite dado, devuelva el Numero positivo más pequeño para el que la suma es mayor que Limite. El programa también deberá devolver el valor de dicha suma.

PROGRAM Calcular Sumatorio( input, output ); {*********************************************************************
       END {WHILE};      writeln( ‘1 + … + ‘, Numero:1, ‘ = ‘, Suma:1, ‘ > ‘, Limite:1 ) 

END. Ejemplo de ejecución: Introduzca un valor al que exceda 1 + 2 + … + ?: 2 1+…+2=3>2 Introduzca un valor al que exceda 1 + 2 + … + ?: 1000 1 + … + 45 = 1035 > 1000 Introduzca un valor al que exceda 1 + 2 + … + ?: 10000 1 + … + 141 = 10011 > 10000

4.2 Repetir hasta
ESTRUCTURA DE REPETICION HASTA Esta estructura es caracteristica de lenguajes como PASCAL, y su uso es muy sencillo, se especifica un valor de partida(logicamente) y un valor de parada(por eso es “hasta”) que es el valor limite hasta el cual se realizara cierta instruccion utilizando como base el valor de repeticion. Esta estructura es manejada por PASCAL como una estructura aparte, veamos de que forma: PROGRAM Ciclo_hasta; VAR Numero : Integer; BEGIN
   Numero := 1;     REPEAT        writeln (Numero);        Numero := Numero + 1;     UNTIL Numero = 50; 

Esta estructura se encuentra en cualquier lenguaje de programacion, no necesariamente tal cual

se muestra aqui, se utiliza un for o un while, simplemente se modifica la condicion para que no afecte al numero de repeticiones. Por ejemplo con un for: for(a = 0; a<50; a++)
    printf(“Rafa\n”); 

Esta sentencia se ejecutara 50 veces, osea hasta el 50. Como conclusion decir que todo lo necesario para realizar repeteciones se encuentran con las estructuras while() y for(), solo es cuestion de saber estructurar las condiciones.

4.3 Repetir desde
Realiza la acción o conjunto de acciones, luego evalúa una condición, de resultar cierta vuelve a realizar la(s) acción(es). Cuando sea falsa se sale del ciclo. Su sintaxis es: Do {
      Sentencia,        .        .        . 

} While (); La diferencia fundamental, entre el ciclo while y do… while es que en este último, las sentencias se realizarán por lo menos una vez, en cambio, con while, solo se cumplirán mientras se cumpla la condición, lo cual puede ser nunca.