You are on page 1of 59

ALGORITMOS CON

ESTRUCTURAS CICLICAS

ALGORITMOS CON ESTRUCTURAS CICLICAS

En todos los algoritmos


realizados
hasta
este
punto, cada instruccin se
ha ejecutado slo una vez
ya
sea
en
forma
secuencias o en forma
selectiva. Sin embargo,
con frecuencia, cierto tipo
de problemas requieren de
la ejecucin reiterada o
repetida de un grupo de
instrucciones.

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Para la ejecucin
repetida de un conjunto
de instrucciones, los
lenguajes de
programacin ofrecen
una variedad de
sentencias o cdigos, los
que se denominan
estructuras repetitivas,
estructuras iterativas o
simplemente bucles.
3

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Existen dos conceptos asociados a la ejecucin y
control de las estructuras repetitivas:
Contadores y Acumuladores.
Un contador es una variable auxiliar o de
proceso, cuyo propsito es llevar la cuenta del
nmero de veces que se est ejecutando un
conjunto de sentencias o un determinado proceso.
Estas variables generalmente se verifican para
salir del bucle.
4

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Como funciona un contador en una estructura
secuencial.Ej.: Escribimos un algoritmo secuencial
que permita mostrar 5 veces la frase Programar
computadoras es fcil.
INICIO {escribir 5 veces la frase Programar computadoras es
facil-}
Escribir Programar computadoras es fcil
Escribir Programar computadoras es fcil
Escribir Programar computadoras es fcil
Escribir Programar computadoras es fcil
Escribir Programar computadoras es fcil
FIN

ALGORITMOS CON ESTRUCTURAS


CICLICAS
AL programa anterior, le podemos agregar un contador,
K, el cual nos servir para contar el nmero de veces que
se va repitiendo la instruccin que nos permite mostrar el
mensaje Programar computadoras es fcil.
Inicio
{Escribir la frase por primera vez}
K=1
Escribir Programar computadoras es fcil
{Escribir la frase por segunda vez}
K=2
Escribir Programar computadoras es fcil
{Escribir la frase por tercera vez}
K=3
6

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Escribir Programar computadoras es fcil
{Escribir la frase por cuarta vez}
K=4
Escribir Programar computadoras es fcil
{Escribir la frase por quinta vez}
K=5
Escribir Programar computadoras es fcil
Fin
7

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Para mejorar la presentacin, podemos uniformar el
esquema de presentacin de este algoritmo,
modificndolo de manera que todos los bloques de
instrucciones sean similares:
Inicio

K = 0
{Escribir la frase por primera vez (K= 0+1)}
K = K +1
Escribir Programar computadoras es fcil
{Escribir la frase por segunda vez (K= 1+1)}
K = K +1
Escribir Programar computadoras es fcil
{Escribir la frase por tercera vez (K= 2+1)}
K = K +1
8

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Escribir Programar computadoras es fcil
{Escribir la frase por cuarta vez (K= 3+1)}
K = K +1
Escribir Programar computadoras es fcil
{Escribir la frase por quinta vez (K= 4+1)}
K = K +1
Escribir Programar computadoras es fcil
Fin
Recordemos que en la instrucciones de asignacin tal como
K=K+1, primero se ejecuta la expresin del lado derecho (en
este caso: K+1), por tanto, si K tiene el valor inicial de cero,
entonces el resultado de la expresin K + 1 ser igual a 1 y este
valor se asignar a la variable del lado izquierdo, en este caso,
tambin K. Ahora K tiene el valor 1.

ALGORITMOS CON ESTRUCTURAS


CICLICAS
En conclusin con la instruccin: K = K + 1,
incrementamos el valor de K en 1. As mismo, si K
almacena inicialmente el valor de 0 y ejecutamos 5
veces la instruccin K= K + 1, al final K tendr el valor
de 5.
A esta variable auxiliar K se le denomina contador.

es tambin una
variable auxiliar o de proceso, cuyo propsito es
sumar (acumular) diferentes valores del mismo
tipo.
Por su parte

el Acumulador

10

ALGORITMOS CON ESTRUCTURAS


CICLICAS

Generalmente la implementacin de los procesos con un


acumulador tiene el siguiente formato.
S = S + <Variable>
En esta expresin, S es el acumulador y <Variable> es el
valor que se desea agregar a S. Ej.:
Suma = 0 {Suma tiene un valor de cero}
Suma = Suma + 5 {Suma tienen ahora el valor 5}
Suma = Suma + 8{Suma tienen ahora el valor 13}
Suma = Suma + 2 {Suma tienen ahora el valor 15}

En este ejemplo la variable suma es un acumulador.

11

ALGORITMOS CON ESTRUCTURAS


CICLICAS
TIPOS DE ESTRUCTURAS REPETITIVAS.
En forma indistinta se utiliza estructuras repetitivas,
estructura iterativa o bucle para referirse a la
repeticin de un proceso un nmero fijo o variable de
veces.
En el desarrollo de los procesos iterativos se distinguen
los siguientes tipos de bucles.

Bucles
Bucles

variable o con condicin :


fijos o con contador
12

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Toda estructura
partes:

repetitiva

contiene

las

siguientes

Inicializacin, en la cual se asigna valores inciales a las


variables que intervienen en el test de salida o control del
ciclo.
Actualizacin, en la que se actualizan las variables que
intervienen en el test de salida o control del bucle.
Instruccin de proceso, parte del bucle en el que se
escriben las instrucciones que se deben repetir.
Test de salida, para controlar si el bucle continua o
culmina.

13

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Bucles variables
Son estructuras repetitivas en las que no se conoce el
nmero de veces que se ejecutarn las instrucciones que
se encuentran dentro del bucle.
Por ejemplo, si se trata de contar el numero de dgitos de
un nmero entero positivo no sabemos cuntos dgitos
tendr el nmero; consiguientemente no se sabe cuantas
veces se realizara el proceso de contar. Otro ejemplo es
el nmero de clientes que debe atender un cajero de
banco, quien no sabe a priori cuantas personas existen en
cola para ser atendidos.
14

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Bucles fijos

Son estructuras repetitivas en la cual se conoce


a priori el nmero de veces que se ejecutaran las
instrucciones que se encuentran dentro del bucle.
Ejemplo si se trata de ingresar 5 notas, a priori
se sabe que se debe leer repetidamente 5 notas;
consiguientemente el proceso de leer se repetir
5 veces.
15

ALGORITMOS CON ESTRUCTURAS


CICLICAS
REPETIR-HASTA
{Inicializacin de las variables del test de salida}
REPETIR

{Actualizacin de las variables del test de salida}


Instrucciones de actualizacin

{Instrucciones de proceso}
Instrucciones de proceso

HASTA QUE Condicin {Evaluacin del test de salida}


16

ALGORITMOS CON ESTRUCTURAS


CICLICAS
EJEMPLO
{Inicializacin de la variable K del test de salida}
K =0
REPETIR
{Actualizacin de la variable K del test de salida}
Escribir Programar computadoras es fcil
HASTA QUE QUE K==5 {Evaluacin del test de salida}
La Condicin tiene que ser una variable booleana o
expresin relacional, cuyo valor ser verdadero o falso.
17

ALGORITMOS CON ESTRUCTURAS


CICLICAS

Generalmente la implementacin de
contador, tiene la siguiente estructura:

algoritmos

con

{Inicializar el contador}
K=0
REPETIR
{Actualizar contador}
K=K+1
{Instrucciones de proceso}
HASTA QUE (K=Nmero de veces) {Controlar si contador llego
al final}
La parte de {Instrucciones de proceso} es la que generalmente
varia de un algoritmo a otro, y puede estar constituido por:
Instrucciones de entrada, asignacin, salida, estructuras
selectivas e incluso por otras estructuras repetitivas.

18

ALGORITMOS CON ESTRUCTURAS


CICLICAS
ALGORITMOS CON ESTRUCTURA REPETIR-HASTA
Las instrucciones de actualizacin y las instrucciones de
proceso pueden permutarse, es decir, si la lgica del
programa lo requiere, primero puede ejecutase las
instrucciones de proceso y a continuacin las instrucciones
de actualizacin.
En algunos casos, es posible que en una sola instruccin
se realice la actualizacin y el proceso.
Esta estructura repetitiva exige que las instrucciones de
proceso se realicen por lo menos una vez, pues primero
se ejecutan las instrucciones de proceso y luego recin se
verifica la validez de la condicin en el test de salida.
19

ALGORITMOS CON ESTRUCTURAS


CICLICAS
Formato de Codificacin a C++ : Estructura do/while
do
<sec_sent>
while (<expres_bool>)

do
{
cout << "Introduzca un numero entre 1 y
10" << endl;
cin >> numero;
}
while (!((1<=numero) && (numero <= 10)));

Expresado en palabras , esto significa : ejecute las


sentencias, luego repita la ejecucin mientras
expres_bool d un resultado CIERTO. Para el ejemplo: si
esta condicin (numero>=1) && (numero <=10) es cierta
al negarla el ciclo se rompe.
20

Ejemplo: Calcula la suma de los cuadrados de los nmeros


naturales.
#include<conio.h>
#include<iostream.h>
void main()
{clrscr();
int N;
int R;
do
{cout<<"Ingrese La Cantidad de Nmeros:";
cin>>N;}
while(N<0);
R=N*(N+1)*(2*N+1)/6;
cout<<"La Suma de los Cuadrados de los Nmeros
Es:\a"<<R<<endl;
getch();
}
21

ALGORITMOS CON ESTRUCTURAS


CICLICAS

Ejemplo: Calcula si un numero es primo o compuesto.


#include<conio.h>
#include<iostream.h>
void main()
{ clrscr();
int N;
int i=2;
int C=0;
do
{ cout<<"Ingrese Un Numero:";
cin>>N;}
while(N<=0);

i= 1;
do
{ if (N%i==0)
C++;
}
i++;
while (i<N);
if (C==1)
cout<<"El Numero es
Primo";
else
cout<<"El Numero es
Compuesto";
getch();
}

22

ESTRUCTURAS CICLICAS
BUCLE FIJO: ESTRUCTURA REPETIR DESDE
La estructura Repetir desde es utilizada en aquellos
algoritmos en los que se conoce previamente el numero de
veces que se deben repetir la ejecucin de un bloque de
instrucciones.
DESDE Variable =Vinicio HASTA Vfin, INCRE/ DECRE HACER
INICIO
Bloque de instrucciones del bucle
FIN // Algunos autores tambin utilizan:

DESDE Variable = Vinicio HASTA Variable=Vfin HACER


INICIO
Bloque de instrucciones de bucle
FIN
23

ESTRUCTURAS CICLICAS
ESTRUCTURA
REPETIR-DESDE. Esta estructura
corresponde a las denominadas estructuras repetitivas
fijas y especialmente diseadas para simplificar la
escritura de los ciclos controlados por un contador.
Repetir desde Contador = 1 Hasta 5, INCRE 1
Inicio
Escribir PERU
Fin
Cada vez que se ejecuta la instruccin escribir PERU, la
variable
de
control
Contador
se
incrementa
automticamente en 1, de manera que se escribir 5 veces
la cadena de caracteres PERU
24

ESTRUCTURAS CICLICAS
IMPORTANTE. La estructura Repetir desde no es de
propsito general, por lo que al momento de usarla se debe
recordar lo siguiente:
La variable de control del ciclo no puede cambiarse
desde dentro del ciclo, pero si puede utilizarse.
Despus de ejecutarse el bloque de instrucciones de
proceso, la variable de control se incrementa o
decrementa automticamente.
Se debe verificar que al momento de iniciarse el ciclo el
valor inicial de la variable de control debe ser menor o
igual al valor final que debe de tomar
No se debe poner una condicin adicional de terminacin
25
del ciclo.

ESTRUCTURAS CICLICAS
Formato de codificacin en C++:
for (<expres_ini>;<expres_bool>;<expres_inc>)
<sec_sent>
PARTES:
Parte de inicializacin (<expres_ini>), que inicializa las
variables de control del bucle. Se puede utilizar variables
de control de bucle simples o mltiples. Lo mas normal es
inicializar en este punto una sola variable cuyo valor varia
luego en la parte de incremento. Si se inicializan varias
variables de control, cada inicializacin se separa de la
anterior con una coma.

26

ESTRUCTURAS CICLICAS
Formato de codificacin en C++:
Parte de iteracin (<expres_bool>), que contiene una
expresin lgica que hace que el bucle realice las
iteraciones de las sentencias, mientras que a expresin
sea verdadera.
Parte de incremento (<expres_inc> ), que modifica la
variable o variables de control de bucle. Si se modifican
varias variables de control, cada operacin se separa de la
anterior por una coma.
Sentencias (secsent), acciones o sentencias que se
ejecutaran por cada iteracin del bucle.

27

ESTRUCTURAS CICLICAS
Codificacin en C++ Ej.:
int limite = 1;
int i;
for (i=0; i<=limite; i++)
{
cout << i << endl;
limite++;
}
Nota: Debemos asegurarnos que la expresin de
inicializacin del bucle y la expresin de incremento haran
que la condicin del bucle se convierta en falsa en algn
momento.

28

ESTRUCTURAS CICLICAS
Codificacin en C++ Ej. :
for (v = valor1; v<=valor2; v=v+paso)
{
// sentencias
}
Otra forma:
for (v1=valor1, v2=valor2; v1+v2<=100; v1++, v2++){
// sentencias
}

29

ESTRUCTURAS REPETIR DESDE


Ejemplo 1. Desarrolle un algoritmo que calcule el mayor
y menor numero de un grupo de 8 nmeros.
Inicio Algoritmo
Entero num, mayor, menor, x
mayor=0
menor=10000
Repetir desde x=1, hasta x=8, INCRE 1
Inicio
Escribir Indique el nro, x
Leer num
Si mayor <num entonces mayor=num
Si menor > num entonces menor=num
Fin
Escribir El mayor es: , mayor, El menor es:, menor
Fin_Algoritmo
30

ESTRUCTURAS REPETIR DESDE


Codificacion en C++.
#include<iostream.h>
int main()
{int num,mayor,menor,x;
mayor=0;
menor=10000;
for(x=1; x<=8;x++)
{cout<<"INGRESAR NMERO <<x;
cin>> num;
if(mayor<num) mayor=num;
if(menor>num) menor=num;
}
cout<<"NMERO MAYOR: <<mayor << \n<< El menors
es<<menor;
return 0;
}

31

ESTRUCTURAS REPETIR DESDE


Ejemplo 2. Desarrolle un algoritmo en el cual se pide al
usuario ingresar el nombre, sexo, nmero de horas de
trabajo y el sueldo por hora para cada uno de seis
empleados. La primera parte de la impresin debe dar el
nombre y el pago para cada empleado. La segunda parte
debe dar totales separados y pagos promedios separados
para hombres y para mujeres. El programa puede suponer
que hay al menos un empleado de cada sexo.
Algoritmo
Se tienen las siguientes variables a usar
x: asume valores de 1 hasta 6.
pht: pago por hora trabajada.
nht: nmero de horas trabajadas.
sexo: sexo.
ptt: pago total.

32

sumasm: suma de pagos de las hombres.


sumasf: suma de pagos de las mujeres.
sm: nmero de hombres cuyos datos se ingresaron.
sf: nmero de mujeres cuyos datos se ingresaron.
nombre: nombre de los trabajadores.
Inicio
Entero x, sexo
Real pht, nht, ptt, sumasm, sumasf, sm, sf
Cadena nombre
Sumasm=0;
sumasf=0;
sm=0;
sf=0;
Repetir desde x=1 hasta x=6, INCRE 1
Inicio
33

leer nombre,nht, pht


ptt=nht*pht;
leer sexo
si sexo=1 entonces
inicio
sm:sm+1
sumasm=sumasm+ptt
sino
sf=sf+1;

sumasf=sumasf+ptt
fin si
Escribir Empleado: ,nombre, Pago total:, ptt
Fin-Desde
Escribir El total de sueldos a pagar a los hombre es:.
sumasm, El promedio es:, sumasm/sm
Escribir El total de sueldos a pagar a las mujeres es :,
sumasf, El promedio de sueldos es: , sumasf/sf
Fin

34

Codificacin en C++:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main(void)
{ int x,pht,nht,ptt,sumasm,sumasf, sexo;
float sm,sf;
char nombre[20];
sumasm=0;
sumasf=0;
sm=0;
sf=0;
for(x=1; x<=6;x++)
{cout<<"ingrese sexo 1 varn, 2 mujer\n ";
cin>>sexo;
cout<< "ingrese nombre \n ;
cin>>nombre;
cout<<"ingrese nro. de horas trabajadas \n;

35

Continuacin:
cin>>nht;
cout<<"ingrese pago por hora trabajada\n";
cin>>pht;
ptt=nht*pht;
cout<<Nombre :<<nombre <<Gana: << ptt<< Bs.f\n\n,;
if(sexo==1)
{sm=sm+1;
sumasm=sumasm+ptt;}
else

{sf=sf+1;
sumasf=sumasf+ptt;}
}
cout<<"los HOMBRES GANAN TOTAL: <<sumasm<< Bs.
F<< ELPROMEDIO ES:<<sumasm/sm<< \n\n;
cout<<" las MUJERES GANAN TOTAL:<<sumasf<< Bs. F<<
ELPROMEDIO ES:<<sumasf/smf< \n\n;
36
}

ESTRUCTURAS REPETIR DESDE


Ejemplo 3. Programa para tabular la funcin y = Sen(x)
#include<iostream.h>
#include<math.h>
main()
{float a=0;
float b=1.6;
float c=0.1;
float x,y;
for(x=a; x<=b; x=x+c)
{y=sin(x);
cout<< setprecision(6)<<x<< << setprecision(6) <<y);
}
cout<<" Presiona una tecla ";
getch();
}
37

ESTRUCTURAS REPETIR DESDE


Ejemplo 4. Escribaun programa que imprima la suma de 15
elementos de la serie: 1/2 +3/4 +7/8 +15/16...
#include<stdio.h>
void main(void)
{ float a,c,suma;
a=1;
suma=0.5;
for(c=1;c<15;c++)
{a=a*2+1;
suma=suma+(a/(a+1));}
cout<< La suma es:<<suma;
}

38

ESTRUCTURAS CICLICAS
ESTRUCTURA REPETIR MIENTRAS
{Inicializacin de la variable del test de salida}
MIENTRAS Condicin HACER
INICIO
{Instrucciones de Proceso}
{Actualizacin de las variables del test de salida}
FIN

La estructura repetitiva mientras es aquella en


la cual el cuerpo del bucle se repite mientras se
cumple una determinada condicin.
39

ESTRUCTURAS CICLICAS
ESTRUCTURA REPETIR MIENTRAS.

Primero se procede a la inicializacin de las


variables que involucran el test de salida; luego se
procede a verificar la condicin o test de salida,
entrando al bucle si esta condicin es verdadera.
Si la condicin no es verdadera se termina la
ejecucin del bucle, pasando a ejecutarse la
primera instruccin que sigue al bucle.
Las instrucciones de actualizacin y las
instrucciones de proceso pueden permutarse, al
igual que en el bucle repetir.
40

ESTRUCTURAS CICLICAS
ESTRUCTURA REPETIR MIENTRAS. Ej.: Escribir un
algoritmo que escriba los n primeros enteros positivos.
inicio {Escribir los N primeros nmeros enteros}
leer N

{Escribir los N primero nmeros enteros}


Numero = 1

MIENTRAS Numero <= N HACER {Test de salida}


Inicio
Escribir Nmero {Instrucciones de proceso}
Numero = Numero + 1 {Actualizacin}
Fin
fin
41

ESTRUCTURAS CICLICAS
DIFERENCIA DE LAS ESTRUCTURAS MIENTRAS Y
REPETIR HASTA

En la estructura mientras la condicin se evala


al inicio, antes de entrar al bucle, por tanto es
ms general y permite la posibilidad de que el
bucle pueda no ejecutarse. Mientras que en la
estructura repetir la condicin se evala al final,
por tanto el bucle se ejecutar al menos una vez
bajo cualquier circunstancia.
Ambas estructuras PUEDEN utilizarse cuando
no se conoce de antemano el nmero de veces que
debe ejecutarse el bucle.
42

ESTRUCTURAS CICLICAS
Formato de codificacin en C++:Estructura while

while (<expres_bool>)
<sec_sent>;

while(expresin)
{ proposicin 1 ;
proposicin 1 ;
proposicin2;
...............
proposicin n ; }

Lo mas importante a recordar de la sentencia while es que


su condicin de terminacin (<expres_bool>) se
comprueba cada vez antes de que el cuerpo del bucle
(<sec_sent>) sea ejecutado. El cuerpo se ejecuta
mientras se cumpla la condicin de control. Si la condicin
es false (0), entonces el cuerpo no se ejecuta. Una
sentencia while se ejecutara cero o mas veces.

43

ESTRUCTURAS CICLICAS
Formato de codificacin en C++:Por ejemplo, si queremos
leer una serie de enteros y encontrar su suma, parando
cuando se lea un numero negativo, podemos hacer
sum = 0;
cin >> i;
while (i >= 0)
{
sum = sum + i;
cin >> i;
}

44

Ejemplo: Calcula la potencia de un numero


#include<conio.h>
#include<iostream.h>
void main ()
{
clrscr();
int b;
int exp;
int i=1;
double resultado=1;
cout<<"Ingrese Base:";
cin>>b;
cout<<"Ingrese Exponente:";
cin>>exp;

while (i<=exp)
{resultado=resultado*b;
i++; }
cout<<"El Resultado
Es:"<<resultado;
getch();
}

45

Ejemplo: Muestra los nmeros de la tabla de multiplicar.

#include <iostream.h>
#include <stdlib.h>
int main() {
int inumtab, i;
cout << "\n Numero de la Tabla de Multiplicar:<<endl;
cin >> inumtab;
i=1;
while (i<=10)
{cout<< inumtab <<" * "<<i<< "<<i*inumtab<<endl;
i++;
}
system("PAUSE");
return 0;
46
}

Ejemplo: Calcula la suma de nmeros pares comprendida en un


determinado rango.
#include<conio.h>
#include<iostream.h>
void main()
{clrscr();
int vi,vf,i,pares;
int suma=0;
cout<<"Ingrese Numero Inicial:";
cin>>vi;
cout<<"Ingrese Segundo Final:";
cin>>vf;
i=vi+1;

while ((i>vi) && (i<vf))


{ if ((i%2)==0)
{ suma=suma+i;
i++;}
else
i++;
}
cout<<"La suma de los
Numeros Comprendidos
en ese Rango es:"<<suma;
getch();
}
47

Ejemplo: Programa que Calcula el mnimo comn mltiplo


#include<conio.h>
#include<iostream.h>
void main()
while (menor>0)
{clrscr();
{
int N1,N2,menor,mayor,r;
r=mayor%menor;
cout<<"Ingrese Primer Numero:";
mayor=menor;
cin>>N1;
menor=r;
cout<<"Ingrese Segundo Numero:";
}
cin>>N2;
cout<<"El MCM
if(N1>N2)
es:"<<N1*N2/mayor;
{mayor=N1;
menor=N2;}
getch();
else
}
{mayor=N2;
menor=N1;}

48

Ejemplo: Programa que Calcula el mximo comn divisor


#include<conio.h>
#include<iostream.h>
while (menor>0)
void main()
{
{clrscr();
r=mayor%menor;
int N1,N2,menor,mayor,r;
mayor=menor;
cout<<"Ingrese Primer Numero:";
menor=r;
cin>>N1;
}
cout<<"Ingrese Segundo Numero:";
cout<<"El MCD
cin>>N2;
es:"<<mayor;
if(N1>N2)
{mayor=N1;
getch();
menor=N2;}
}
else

{mayor=N2;
menor=N1;}

49

ESTRUCTURAS CICLICAS ANIDADAS


Una estructura cclica puede estar anidada dentro de
otra estructura cclica o de decisin sin problemas. Hay
que tener en cuenta que el anidamiento debe ser total.
En el siguiente ejemplo se simula un reloj digital.
Anidando un for dentro de otro for:
#include<conio.h>
#include<iostream.h>
void main()
{clrscr();
unsigned h,m,s;
for(h=0;h<1;h++)
for(m=0;m<60;m++)
for(s=0;s<60;s++)
cout<<h<<":"<<m<<":"<<s<<endl;
getch();}

50

Otro Ejemplo: Calcula La Mnima Unidad de Un numero. ej.


546=5+4+6=15=1+5=6.
while (N>0)
Se ejecuta
en cada
iteracion de
do-while
(r>9)

#include<iostream.h>
#include<conio.h>
void main()
{clrscr();
unsigned N,r;
gotoxy(4,4);
cout<<"Ingrese Numero:";
cin>>N;

do
{ r=0;
while(N>0)
{r=r+N%10;
N=N/10;}
N=r;
}
while(r>9);
gotoxy(4,8);
cout<<"Lo Min Es:"<<r;
getch ();
}

51

Otro Ejemplo. El programa encuentra el primer numero


perfecto mayor que 28, que es 496 .
#include <iostream.h>
if (suma == intento)
#include <cstdlib.h>
encontrado = true;
int main()
else
intento = intento + 1;
{bool encontrado;
}
unsigned int intento, cont, suma;
cout << "Numero perfecto
encontrado = false;
mayor que 28 = " <<
intento = 29;
intento << endl;
while (!encontrado)
return 0;
// Hasta que encontremos el numero
}
{ suma = 1;
for (cont = 2; cont<intento; cont++)
{ if (!(intento%cont)) // Si es un divisor
suma = suma + cont;
}

52

SENTENCIA BREAK Y E
ESTRUCTURAS CICLICAS
El BREAK, sirve para terminar loops producidos por
WHILE , DO-WHILE y FOR antes que se cumpla la
condicin normal de terminacin. En el EJEMPLO siguiente
vemos su uso para terminar un WHILE indeterminado:
#include <iostream.h>
#include <conio.h>
main() { char c ;
cout<<"ESTE ES UN LOOP INDEFINIDO ;
while(1)
{ cout<< "DENTRO DEL LOOP INDEFINIDO (presiona una tecla): ;
if( (c = getch()) == 'Q' )
break;
cout<<"\nNO FUE LA TECLA CORRECTA PARA ABANDONAR EL LOOP
"; }
cout<<"\nTECLA CORRECTA : FIN DEL WHILE ; }
53

SENTENCIA BREAK Y E
ESTRUCTURAS CICLICAS
Obsrvese que la expresin while(1) SIEMPRE es cierta ,
por lo que el programa correr imparable hasta que el
operador oprima la tecla "secreta" Q . Esto se consigue en
el IF , ya que cuando c es igual al ASCII Q se ejecuta la
instruccin BREAK ,dando por finalizado el WHILE.
.
El mismo criterio podra aplicarse con el DO-WHILE con
FOR , por ejemplo haciendo
for (;;) { /* loop indefinido */
............
if( expresin ) break ; /* ruptura del loop cuando
expresin sea verdadera */ }
54

SENTENCIA CONTINUE Y
ESTRUCTURAS CICLICAS
La sentencia CONTINUE es similar al BREAK con
la diferencia que en lugar de terminar
violentamente un loop, termina con la realizacin
de una iteracin particular, permitiendo al
programa continuar con la siguiente.

55

ALGUNOS EJEMPLOS

56

Ejemplo 1:
Elaborar un programa que muestre los nmeros pares

comprendidos
entre 20 y 10 inclusive(orden descendente).
# include<iostream.h>
int main()
{int i;
cout<<"Los numeros pares entre 20 y 10 inclusive son:\n;
for(i=20;i>=10;i=i-2)
cout<<i;
return 0;
}

57

Ejemplo 2:
Mostrar la tabla de caracteres ASCII a partir del Cdigo
(el espacio en blanco) hasta el Cdigo 164 (o sea la )
32
sin incluir las minsculas (rango del 97 al 122)
# include<iostream.h>
int main()
{
int i;
cout<<"Los Caracteres ASCII son: \n;
for(i=32;i<=164;i++) {
if(i<97 || i>122)
cout<<i<<\t<<i;
}
return 0;
}
58

Ejemplo 3:Elaborar un programa que calcule la suma de


los nmeros mltiplos de 3 y 7 a partir del nmero 9 y
finaliza en el numero 45, no deben incluirse en la suma los

nmeros
comprendidos entre 21 y 27.
# include<stdio.h>
main()
{int i,m3,m7,s;
m3=0;
m7=0;
printf("Suma de los mltiplos de 3 y 7: \n");
for(i=9;i<=45;i++) {
if(i<21 || i>27) {
if (i%3 == 0) { m3 +=i;}
if (i%7 == 0) { m7 +=i;}
}}
s = m3 + m7;
cout<<"la suma es:<< s< < \n;
return 0;}

59

You might also like