Estructura de Programación FOR

– Prog019

/* Prog019.cpp */

#include <stdio.h>

void main()

{
int x; for(x=1;x<=10;x=x+1)

{
printf(«nEstructura FOR «); printf(«Ahora x= %d»,x);
}
}

Estudio del PROG019:

x  La Estructura FOR:

for(valor inicial,valor final, paso)

{
sentencia 1; sentencia 2;

————-;
————-;
}

Que quiere decir: Repite la ejecución de las sentencias de programa que hay encerradas entre llaves, tantas veces como te indico en “valor inicial, valor final, paso”.

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

Las líneas de programa de nuestro “for” se repetiran: desde x=1 hasta x=10 de 1 en 1, es decir 10 veces.

Si escribiéramos: for(x=23;x<=76;x=x+4), querría decir: repite las líneas de programa desde x=23 hasta x=76 de 4 en 4.

Podríamos hacerlo más sofisticado: for(i=-0.23;i>=-67.78;i=i-1.567). Que traducido dice: repite las líneas de programa que hay dentro del “for” desde 1=0.23 hasta i=-67.78 de –1.567 en –1.567

– Prog020

/* Prog020.cpp */
#include <stdio.h>

void main()

{
int edad,indice; char nom[25];
printf(«Escribe tu nombre: «); scanf(«%s»,nom); printf(«nEscribe tu edad: «); scanf(«%d»,&edad);

for(indice=1;indice<=edad;indice++)
printf(«n%s»,nom);
}

Observa:

  • Si es una sola la sentencia a repetir por el “for”, no se encierra entre llaves (en este aspecto funciona igual que la estructura IF-ELSE).
  • Recuerda que indice++ es equivalente a indice=indice+1
  • Podemos introducir en “los límites del for” una variable (en nuestro caso edad)

– Prog021

/* Prog021.cpp */

#include <stdio.h>

void main()

{
int mult; float total; total=0;

for(mult=11;mult<3000;mult=mult+11)
{
printf(«%d-«,mult); total=total+mult;

}
printf(«nnSuma= %f»,total);
}

Ejecútalo varias veces hasta descubrir lo que hace el programa. Vamos a hacer un programa que sirva para calcular el factorial de un número. Recuerda que el factorial de un número x es 1*2*3*4….*x

– Prog022

/* Prog022.cpp */

#include <stdio.h>

void main()

{
int i,num; double fa;
printf(«nCálculo del factorial del número: «); scanf(«%d»,&num);
fa=1;
for(i=1;i<=num;i++) fa=fa*i;
printf(«nEl Factorial de %d es %lf»,num,fa);
}

Observa la línea que contiene el for: como sólo contiene una instrucción, puede escribirse todo el “ciclo for” en una sóla línea de programa.

Vamos a hacer un programa que calcule la suma de los 10 primeros múltiplos del número que queramos.

– Prog023

/* Prog023.cpp */

#include <stdio.h>

void main()

{
int num,i; double sum,mult;

printf(«nMúltiplos de qué número: «); scanf(«%d»,&num);

sum=0;
for(i=1;i<=10;i++)
{
mult=num*i; printf(«nMúltiplo= %lf»,mult); sum=sum+mult;

printf(«nSuma Parcial= %lf»,sum);
}
printf(«nSuma Total= %lf»,sum);
}

Vamos a hacer un programa que calcule la tabla de valores de una función dada.

– Prog024

/* Prog024.cpp */

#include <stdio.h>

void main()

{
float x1,x2,paso; float y,i;

printf(«nTabla de valores para la función Y=X*X-5*X+10»); printf(«nnIntroduce el valor menor de X: «); scanf(«%f»,&x1);

printf(«nIntroduce el valor mayor de X: «); scanf(«%f»,&x2);
printf(«nIntroduce el incremento del valor de X: «); scanf(«%f»,&paso);

for(i=x1;i<=x2;i=i+paso)
{
y=i*i-5*i+10;
printf(«nX= %15f Y= %15f»,i,y);
}
}

La notación %15f indica que la variable correspondiente ocupará 15 espacios en pantalla.

Al ejecutar el programa anterior, nos podemos encontrar con una serie de problemas, por ejemplo si introducimos en el valor menor de x (x1), un valor que sea mayor que el introducido en la variable x2, o también puede suceder que en la variable paso escribamos un número negativo.

Escribe a partir del programa Prog024:

– Prog025

/* Prog025.cpp */

#include <stdio.h>

void main()

{
float x1,x2,paso; float y,i;

printf(«nTabla de valores para la función Y=X*X-5*X+10»); printf(«nnIntroduce el valor menor de X: «); scanf(«%f»,&x1);

printf(«nIntroduce el valor mayor de X: «); scanf(«%f»,&x2);
if (x1>x2)
{
printf(«nLo siento, vuelve a intentarlo»); return;
}
printf(«nIntroduce el incremento del valor de X: «); scanf(«%f»,&paso);

if(paso<=0)

{

printf(«nLo siento, vuelve a intentarlo»); return;

}

for(i=x1;i<=x2;i=i+paso)

{
y=i*i-5*i+10;
printf(«nX= %15f Y= %15f»,i,y);
}
}

Ejecútalo varias veces, probando los casos “conflictivos”: x1>x2 o paso=0 o paso negativo.

Está claro que la sentencia return, sirve para acabar el programa.

Fuente: Programación en C/C++ (Manual FV) de Fermí Vilà