2.4 Bucles Repetitivos

21
2.4 BUCLES REPETITIVOS

Transcript of 2.4 Bucles Repetitivos

2.4 BUCLES REPETITIVOS

● El orden por omisión de ejecución en un programa de C es descendente. La ejecución comienza al principio de la función main(), y avanza enunciado por enunciado hasta que se llega al final de main().

● Sin embargo, este orden rara vez se encuentra en los programas de C reales.

● El lenguaje C incluye una variedad de enunciados para el control del programa, que le permiten controlar el orden de la ejecución del programa.

EL ENUNCIADO for

● Es una construcción de programación del C que ejecuta un bloque de uno o más enunciados una determinada cantidad de veces (también conocido como ciclo for).

Estructura

for (inicial; condición; incremento)

enunciado

● Inicial, condición e incremento son expresiones del C, y enunciado es un enunciado simple o compuesto del C.

● Cuando se encuentra un enunciado for durante la ejecución del programa, suceden los siguientes eventos:

1.La expresión inicial es evaluada. Lo inicial es por lo general un enunciado de asignación que pone una variable a un valor determinado.

2. La expresión de condición es evaluada. La condición es típicamente una expresión relacional

3. Si la condición evalúa a falso (esto es, a cero), el enunciado for termina, y la ejecución pasa al primer enunciado que se encuentra a continuación del enunciado del for.

4. Si la condición evalúa a cierto (esto es, diferente de cero), se ejecutan los enunciados que se encuentran dentro del for

5. La expresión de incremento es evaluada y la ejecución regresa al paso 2.

INICIO

Evalúa Inicial

Evalúa Condición

Hecho

Ejecuta Enunciados

Evalúa Incremento

Cierto

Falso

#include <stdio.h>

int contador;

main()

{ /*Imprime números del 1 al 20*/

for(contador=1; contador<=20; contador++)

printf(“\n%d”,contador);

}

¿Para que se usa el Enunciado for ?

● Es usado para contar, incrementando un contador de un valor a otro; aunque también se le puede usar para “contar al revés”, disminuyendo en vez de incrementar la variable del contador.

for(contador=100; contador>0; contador--)

● También se puede incrementar en un valor diferente de 1

for(contador=0; contador<1000; contador+=5)

● El enunciado for es bastante flexible, por ejemplo se puede omitir la expresión de inicialización si la variable que se ha de probar ha sido inicializada anteriormente en el programa.

contador=1;

for( ; contador<1000; contador++)

● Ejemplo1:

/*Imprime el valor de x al tiempo que cuenta de 0 a 9*/

int x;

for(x=0; x<10; x++)

printf(“\n El valor de x es %d”, x);

● Ejemplo2:

/*Pide cifras al usuario hasta que se teclea 99*/

int num=0;

for( ; num!=99; )

scanf(“%d”,&num);

Tarea

● Elabora un programa que permita al usuario imprimir cualquier tabla de multiplicar que desee.

Enunciados for Anidados

● Un enunciado for puede ser ejecutado dentro de otro enunciado for. A esto se le llama anidado.

#include <stdio.h>

void draw_box(int row, int column);

main()

{

draw_box(8, 35);

}

void draw_box(int row, int column){ int col; for( ; row>0; row--) { for(col=column; col>0; col--) printf(“X”); printf(“\n”); }}

ENUNCIADO WHILE

● También llamado ciclo While, ejecuta un bloque de enunciados en tanto una condición específica sea cierta

while( condición )

enunciado

● Condición: es cualquier expresion de C● Enunciado: es un enunciado de C simple o

compuesto.

● Cuando la ejecución del programa llega al anunciado while suceden los siguientes eventos.

1)Es evaluada la expresión de la condición.

2)Si la condición evalúa a falso (cero), el enunciado while termina, y la ejecución pasa al primer enunciado que se encuentre a continuación de los enunciados del while.

3)Si la condición evalúa a cierto(diferente de cero), se ejecutan los enunciados C del while.

4)La ejecución regresa al paso 1.