Documente Academic
Documente Profesional
Documente Cultură
C++ presenta tres estructuras de control repetitivo: while, do while y for. Estas estructuras
reciben la denominacin de bucles o lazos.
La estructura for es equivalente al trmino para en pseudo cdigo. Se le utiliza cuando se
conoce el nmero de repeticiones que deseamos ejecutar. La notacin de esta estructura es:
for ( condicin de inicio; expresin; accin despus de cada iteracin )
{
sentencia (s);
}
La condicin de inicio quiere decir que podemos inicializar una variable que vayamos a
utilizar dentro el cuerpo de la estructura for.
La expresin corresponde a una condicin lgica que nos indica que se seguir
iterando mientras la condicin sea verdadera.
La accin despus de cada iteracin viene a ser lo que queremos hacer variar
despus de cada iteracin, esta variacin podra ser un incremento en la variable
definida en la condicin de inicio.
La estructura for sirve para repetir un cdigo dependiendo de un contador. Veamos un ejemplo:
#include <conio.h>
#include <iostream.h>
main()
{
int contador;
for ( contador = 1; contador <= 10; contador++ )
{
cout<<"Escibir numero "<< contador<<" \n";
}
getche();
}
Primero se crea la variable contador de tipo entero (ser la variable de control en el for). Luego
se ejecuta la estructura for iniciando la variable contador en 1. Posteriormente se verifica que se
cumple la condicin contador<=10 y se ejecuta el bloque dentro de la estructura, o sea, imprime
en pantalla Escribir nmero 1.
Luego la variable contador es incrementada en uno con la expresin contador++ y el ciclo se
inicia otra vez. La variable contador ahora vale 2, por lo tanto se verifica la condicin y se vuelve
a ejecutar el cdigo. Este proceso se ejecuta hasta que contador toma el nmero 11 y la
condicin se hace falsa y no ejecuta el bloque.
Ejemplo 1:
Escribir un programa que obtenga el factorial de un nmero n, ingresado por teclado.
#include <conio.h>
#include <stdlib.h>
main()
{
int i, fac, num;
cout<< "Ingresar nro: ";
cin>> num;
fac = 1;
for ( i = 1; i <= num; i++ )
{
fac = fac * i;
}
cout << "El factorial de: "<< num<< " es: "<< fac;
getche();
}
Ejemplo 2:
Ingrese un nmero por teclado y determinar si es o no capica. Mostrar las iteraciones
necesarias para ello.
Nota: Un nmero es capica cuando puede ser ledo de izquierda a derecha y de derecha a
izquierda. Ilustracin: 151.
#include <iostream.h>
using namespace std;
main()
{
int num,inverso = 0,d,aux,i;
cout<<"Ingrese numero: ";
cin>>num;
aux = num;
for(i=0;aux > 0;i++){
d = aux%10;
aux = aux/10;
inverso = inverso*10 + d;
}
if(num == inverso)
cout<<num<<" ES CAPICUA";
else
cout<<num<<" NO ES CAPICUA";
cout<<"\nIteraciones: "<<i;
cout<<endl;
system("pause");
}
...
#include <iostream.h>
#include <conio.h>
main()
{
int i, j;
for ( i = 1; i <= 20; i++ )
{
for ( j = 1; j <= i; j++ )
{
cout <<j<<" ";
}
cout<<endl;
}
getche();
}
Bucle
Interno
Bucle
Externo
for(i=0;i<3;i++)
{
k=3;
j=1;
while( (k>0 && i<2) || j<3)
{
cout <<"Hola\n";
k--;
j=j+2;
}
}
a) Efectuar la corrida en papel y determinar cuntas veces aparece la
palabra hola.
b) Completar el programa y ejecutarlo. Compruebe su resultado con el
obtenido en a).
P3. Escriba un programa que determine cuales son los mltiplos de 5 comprendidos
entre 1 y N.
Tome como referencia el siguiente pseudocdigo:
Algoritmo Multiplos5
Variable
Entero: i
Inicio
Para i<-1 hasta N hacer
Si (resto de (i/5) = 0) entonces
Escribe i
FinSi
FinPara
Fin
P4. Realizar un programa que presente una tabla de grados C a grados Fahrenheit
(F=9/5C+32) desde los 0 grados a los 300, con incremento de 20 en 20 grados.
P5. Realizar un programa que compruebe si dos enteros ledos desde el teclado son
primos relativos, es decir, que no exista ningn valor que divida de forma entera a
ambos. El programa slo debe dar por salida el mensaje \SI SON PRIMOS
RELATIVOS" o \NO SON PRIMOS RELATIVOS".
4
Ejercicios propuestos:
El nmero se puede aproximar por medio de la siguiente serie:
1.
Elaborar un programa que dibuje un triangulo como los que se muestran en los
siguientes ejemplos:
N=1
*
5.
N=2
*
***
N=3
*
***
*****
N=4
*
***
*****
*******