CICLOS ITERATIVOS for ANIDADOS


Algunas aplicaciones requieren de procesos en los que se necesita que un contador varíe el rango por cada valor de otro contador, como en el caso de los años, meses y dias de un siglo (considere idealmente meses de 30 dias):
 

inicio del siglo:

año1

mes1

los dias varian de 1 a 30

mes 2

los dias varian de 1 a 30

mes 3

los dias varian de 1 a 30

...

mes 12

los dias varian de 1 a 30
 
 

año2

mes1

los dias varian de 1 a 30

mes 2

los dias varian de 1 a 30

mes 3

los dias varian de 1 a 30

mes 12

los dias varian de 1 a 30

...

año99

Observe que que los años varian de 1 a 99, mientras que los meses varian de 1 a 12 y por cada mes los dias en promedio varian de 1 30.

Otro ejemplo de este tipo de variación de contadores es la variación de un relog (cada dia cuenta 24 horas y cada hora cuenta 60 segundos), Y un ñultimo ejemplo es la variación de los factores que se generan en las tablas de multipilicar.

Este tipo de variaciones (ciclicas) se obtienen cuando un ciclo for contiene a otro ciclo for y este a su vez a un tercero, y se dice que estan anidados.

El ciclo inerno se ejecuta todas las veces que determinan sus parámetros (los dias varian de 1 a 30, por cada valor del ciclo intermedio que los proporciona los meses que van de 1 a 12 y estos, a su vez, realizan su variación por cada valor del ciclo externo que da los años que se generan del 1 al 99). Cuando el incremento es unitario, es conveniente utilizar los operadores incremento que proporciona C.

También como aplicación inmediata se encuentra su uso en el manejo de arreglos de 2 o más dimensiones o los procesos que involucran varios tipos de variaciones en algunas variables. Por ejemplo considere el procedimiento para obtener las tablas de multilicar del 1 al 10.
 

#include<stdio.h>

#include<math.h>

#include<conio.h>

/* Programa para obtener las tablas de multiplicar */

main()

{

clrscr();

float x,y;

for(x=1;x<=10;x++) /* x++ es lo mismo que poner x=x+1 */

{

for(y=1; y<=10; y++)

{

printf("%3d por %3d = %4d",x,y,x*y);

}

}

return(0);

}


Selecciona un tema