CICLO FOR CON DOBLE CONTADOR


La sintaxis agrega una coma como separador en los contadores como sigue:
 

for(cont1=val1, cont2=val2; condición; cont1=cont1+inc1,cont2=cont2+inc2)

{

instruccions ejecutables

}

En el ejemplo resalta en color verde

En las variales cont1, con2 se han definido valores iniciales de esos contadores; en las expresiones cont1=cont1+inc1, cont2+inc2 se dan incrementos típicos, sin embargo los contadores pueden también decrementar o usarse combinados. Considere el caso en el que se calculan los exponentes de la sumatoria que permite evaluar un polinomio de grado n para un valor Xo:

Y ahora observa el programa siguiente. Un primer ciclo FOR muestra la agilización en la entrada de datos por teclado y un segundo evalúa los datos a los que se dio acceso. Esta misma operación, sin la existencia de dicho ciclo, hubiese requerido de numerosas instrucciones del tipo SCANF sin que sea posible realizar lógica con el programa. En cambio, puede observarse por ejemplo, en el ámbito del primer ciclo abajo mostrado, que no se dará acceso a un mayor número de valores que el que se haya deseado evaluar. Por otra parte el segundo ciclo permite considerar cada uno de los datos en el orden que fueron accesados lo que facilita su manejo. Éstas son ventajas comunes que presentan los ciclos FOR y desde luego no son las únicas.

EJEMPLO:
 

#include <conio.h>

#include <stdio.h>

# include <math.h>

main()

{

int i, n, r, r1;

float d, e, x, px;

float a[21];

clrscr();

/* Programa para evaluar un polinomio de "n" en x0 */

printf("\n Dame el grado (máximo 20) "); scanf("%i",&n);

printf("\n Dame los coeficientes ");

for(i=0; i<=n; i++)

{

printf("\n coeficiene de x ^ %2d=? ",n-i); scanf("%f,&a[i]);

for(e=n, i=0; e>=0; e--, i++) /* Este es el doble contador */

{

if(e==0) px=a[i];

else px=px+a[i]*pow(x,e);

}

printf("\n \t%6.3f \t\t%6.3f",x,px);

printf("\n\n presiona una tecla..."); getch();

}


Selecciona un tema