Sunteți pe pagina 1din 59

ALGORITMOS CON

ESTRUCTURAS CICLICAS

1
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Es todos los algoritmos realizados hasta este punto, cada
instrucción se ha ejecutado sólo una vez ya sea en forma
secuencias o en forma selectiva. Sin embargo, con
frecuencia, cierto tipo de problemas requieren de la
ejecución reiterada o repetida de un grupo de
instrucciones.

Para la ejecución repetida de un conjunto de


instrucciones, los lenguajes de programación ofrecen una
variedad de sentencias o códigos, los que se denominan
estructuras repetitivas, estructuras iterativas o
simplemente bucles.

2
ALGORITMOS CON ESTRUCTURAS
CICLICAS

 Contadores y acumuladores
Existen dos conceptos asociados a las estructuras
repetitivas: Contadores y Acumuladores.

Un contador es una variable auxiliar o de proceso, cuyo


propósito es llevar la cuenta del número de veces que se
está ejecutando un conjunto de sentencias o un
determinado proceso. Estas variables generalmente se
verifican para salir del bucle.

3
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 fácil’.
INICIO {escribir 5 veces la frase – Programar computadoras es
facil-}
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
FIN
4
ALGORITMOS CON ESTRUCTURAS
CICLICAS
AL programa anterior, le podemos agregar un contador,
K, el cual nos servirá para contar el número de veces que
se va repitiendo la instrucción que nos permite mostrar el
mensaje ‘Programar computadoras es fácil’.
Inicio
{Escribir la frase por primera vez}
K=1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por segunda vez}
K=2
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por tercera vez}
K=3
5
ALGORITMOS CON ESTRUCTURAS
CICLICAS

Escribir ‘Programar computadoras es fácil’


{Escribir la frase por cuarta vez}
K=4
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por quinta vez}
K=5
Escribir ‘Programar computadoras es fácil’
Fin

6
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Para mejorar la presentación, podemos uniformar el
esquema de presentación de este algoritmo,
modificándolo 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 fácil’
{Escribir la frase por segunda vez (K= 1+1)}
K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por tercera vez (K= 2+1)}
K = K +1
7
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por cuarta vez (K= 3+1)}
K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por quinta vez (K= 4+1)}
K = K +1
Escribir ‘Programar computadoras es fácil’
Fin

Recordemos que en la instrucciones de asignación tal como


K=K+1, primero se ejecuta la expresión del lado derecho (en
este caso: K+1), por tanto, si K tiene el valor inicial de cero,
entonces el resultado de la expresión K + 1 será igual a 1 y este
valor se asignará a la variable del lado izquierdo, en este caso,
también K. Ahora K tiene el valor 1. 8
ALGORITMOS CON ESTRUCTURAS
CICLICAS
En conclusión con la instrucción: 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 instrucción K= K + 1, al final K tendrá el valor
de 5.
A esta variable auxiliar K se le denomina contador.

Acumulador El acumulador es también una variable


auxiliar o de proceso, cuyo propósito es sumar
(acumular) diferentes valores del mismo tipo.

9
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Generalmente la implementación de los procesos con un
acumulador tiene el siguiente formato.

S = S + <Variable>

En esta expresión, 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. 10


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

Bucles variable:
Estructura Repetir Hasta que
Estructura Mientras Hacer
Bucles fijos
Estructura Para .
11
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Toda estructura repetitiva tiene las siguientes partes:

Inicialización, en la cual se asigna valores iníciales a las


variables que intervienen en el test de salida.
Actualización, en la que se actualizan las variables que
intervienen en el test de salida.
Instrucción de proceso, parte del bucle en el que se
escriben las instrucciones que se deben repetir.
Test de salida, es la que se controla si el bucle
continua o se sale del bucle.

12
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Bucles variables
Son estructuras repetitivas en las que no se conoce el
número de veces que se ejecutarán las instrucciones que
se encuentran dentro del bucle. Por ejemplo, si se trata se
contar el numero de dígitos de un número entero positivo
no sabemos cuántos dígitos tendrá el número;
consiguientemente no se sabe cuantas veces se realizara
el proceso de contar. Otro ejemplo es el número de
clientes que debe atender un cajero de banco, quien no
sabe a priori cuantas personas existen e cola para ser
atendidos.

13
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Bucles fijos

Son estructuras repetitivas en la cual se conoce a priori


el número de veces que se ejecutaran las instrucciones que
se encentran 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.

14
ALGORITMOS CON ESTRUCTURAS
CICLICAS

15
ALGORITMOS CON ESTRUCTURAS
CICLICAS
ALGORITMOS CON ESTRUCTURA REPETIR-HASTA
QUE
{Inicialización de las variables del test de salida}
REPETIR

{Actualización de las variables del test de salida}


Instrucciones de actualización

{Instrucciones de proceso}
Instrucciones de proceso

HASTA QUE Condición {Evaluación del test de salida}

16
ALGORITMOS CON ESTRUCTURAS
CICLICAS
EJEMPLO
{Inicialización de la variable K del test de salida}
K =0
REPETIR
{Actualización de la variable K del test de salida}
Escribir ‘Programar computadoras es fácil’
HASTA QUE QUE K==5 {Evaluación del test de salida}

La Condición tiene que ser una variable booleana o


expresión relacional, cuyo valor será verdadero o falso.

17
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Generalmente la implementación de algoritmos con
contador, tiene la siguiente estructura:
{Inicializar el contador}
K=0
REPETIR
{Actualizar contador}
K=K+1
{Instrucciones de proceso}
HASTA QUE (K=Número 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, asignación, salida, estructuras
selectivas e incluso por otras estructuras repetitivas.
18
ALGORITMOS CON ESTRUCTURAS
CICLICAS
ALGORITMOS CON ESTRUCTURA REPETIR-HASTA
QUE
Las instrucciones de actualización y las instrucciones de
proceso pueden permutarse, es decir, si la lógica del
programa lo requiere, primero puede ejecutase las
instrucciones de proceso y a continuación las instrucciones
de actualización. En algunos casos, es posible que en una
sola instrucción se realice la actualización 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 recién se
verifica la validez de la condición en el test de salida.
19
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Formato de Codificación a C++ : Estructura do/while
do {
do cout << "Introduzca un numero
<sec_sent> entre 1 y 10" << endl;
cin >> numero;
while (<expres_bool>) }while (!((1<=numero) &&
(numero <= 10)));

Expresado en palabras , esto significa : ejecute las


sentencias, luego repita la ejecución mientras
expres_bool dé un resultado CIERTO. La diferencia
fundamental entre esta iteración y el WHILE es que el
DO-WHILE se ejecuta siempre AL MENOS una vez , sea
cual sea el resultado de expresión. 20
Ejemplo: Calcula la suma de los cuadrados de los números
naturales.
#include<conio.h>
#include<iostream.h>
void main()
{clrscr();
int N;
int R;
do
{cout<<"Ingrese La Cantidad de Números:";
cin>>N; }
while(N<0);
R=N*(N+1)*(2*N+1)/6;
cout<<"La Suma de los Cuadrados de los Números
Es:\a"<<R<<endl;
getch();
} 21
ALGORITMOS CON ESTRUCTURAS
CICLICAS
Ejemplo: Calcula si un numero es primo o compuesto.

#include<conio.h> for (i=1;i<=N;i++)


{
#include<iostream.h>
if (N%i==0)
void main() C++;
{ clrscr(); }
int N; if (C==1)
int i=2; cout<<"El Numero es
int C=0; Primo";
do else
{ cout<<"Ingrese Un Numero:"; cout<<"El Numero es
cin>>N;} Compuesto";
while(N<=0); getch();
}
22
ESTRUCTURAS CICLICAS
ESTRUCTURA PARA HASTA
La estructura PARA es utilizada en aquellos algoritmos en
los que se conoce previamente e numero de veces que se
deben repetir la ejecución de un bloque de instrucciones.
Esta estructura corresponde a las denominadas
estructuras repetitivas fijas y especialmente diseñadas
para simplificar la escritura de los ciclos controlados por
un contador.
PARA Variable desde Vinicio HASTA Vfin, INCRE/ DECRE HACER
INICIO
Bloque de instrucciones del bucle
FIN // Algunos autores también utilizan:

DESDE Variable = Vinicio HASTA Vfin HACER


INICIO
Bloque de instrucciones de bucle
FIN
23
ESTRUCTURAS CICLICAS
ESTRUCTURA PARA -HASTA. De forma mas detallada

Para Contador Desde 1 Hasta 5, INCRE Hacer


Inicio
Escribir ‘PERU’
Fin

Cada vez que se ejecuta la instrucción escribir ‘PERU’, la


variable de control Contador se incrementa
automáticamente en 1, de manera que se escribirá 5 veces
la cadena de caracteres ‘PERU’

24
ESTRUCTURAS CICLICAS
IMPORTANTE. La estructura para no es de propósito
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.
Después de ejecutarse el bloque de instrucciones de
proceso, la variable de control se incrementa
automáticamente.
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 condición adicional de terminación
del ciclo.

25
ESTRUCTURAS CICLICAS
Formato de codificación en C++:

for (<expres_ini>;<expres_bool>;<expres_inc>)
<sec_sent>

PARTES:

Parte de inicialización (<expres_ini>), que inicializa las


variables de control del bucle. Se puede utilizar variables
de control de bucle simples o múltiples. 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 inicialización se separa de la
anterior con una coma.
26
ESTRUCTURAS CICLICAS
Formato de codificación en C++:

Parte de iteración (<expres_bool>), que contiene una


expresión lógica que hace que el bucle realice las
iteraciones de las sentencias, mientras que a expresión
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 operación se separa de la
anterior por una coma.

Sentencias (secsent), acciones o sentencias que se


ejecutarían por cada iteración del bucle.

27
ESTRUCTURAS CICLICAS
Codificación en C++ Ej.:

int limite = 1;
int i;
for (i=0; i<=limite; i++)
{
cout << i << endl;
limite++;
}

Nota: Debemos asegurarnos que la expresión de


inicialización del bucle y la expresión de incremento harían
que la condición del bucle se convierta en falsa en algún
momento.
28
ESTRUCTURAS CICLICAS
Codificación 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 PARA-HASTA
Ejemplo 1. Desarrolle un algoritmo que calcule el mayor
y menor numero de un grupo de 8 números.
Inicio
Entero num, mayor, menor, x
mayor=0
menor=10000
PARA 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-Para
Escribir “El mayor es: ”, mayor, “El menor es:”, menor
fin
30
ESTRUCTURAS PARA-HASTA
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 NÚMERO “<<x;
cin>> num;
if(mayor<num) mayor=num;
if(menor>num) menor=num;
}
cout<<"NÚMERO MAYOR: “<<mayor << “ \n“<< “El menors
es”<<menor;
return 0;
} 31
ESTRUCTURAS PARA-HASTA
Ejemplo 2. Desarrolle un algoritmo en el cual se pide al
usuario ingresar el nombre, sexo, número de horas de
trabajo y el sueldo por hora para cada uno de seis
empleados. La primera parte de la impresión 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 : número de horas trabajadas.
sexo : sexo.
ptt : pago total. 32
sumasm : suma de pagos de las hombres.
sumasf : suma de pagos de las mujeres.
sm : número de hombres cuyos datos se ingresaron.
sf : número 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;
Para 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-Para
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
Codificación 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 varón, 2 mujer\n ";
cin>>sexo;
cout<< "ingrese nombre \n “;
cin>>nombre;
cout<<"ingrese nro. de horas trabajadas \n“; 35
Continuación…:
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 PARA-HASTA
Ejemplo 3. Programa para tabular la función 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 PARA-HASTA
Ejemplo 4. Escriba un programa que imprima la suma de 15
elementos de la serie: 1/2 +3/4 +7/8 +15/16...

#include<stdio.h>
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 MIENTRAS-HACER.

{Inicialización de la variable del test de salida}


MIENTRAS Condición HACER
INICIO
{Instrucciones de Proceso}
{Actualización 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 condición.

39
ESTRUCTURAS CICLICAS
ESTRUCTURA MIENTRAS-HACER.
Primero se procede a la inicialización de las variables que
involucran el test de salida; luego se procede a verificar la
condición o test de salida, entrando al bucle si esta
condición es verdadera. Si la condición no es verdadera se
termina la ejecución del bucle, pasando a ejecutarse la
primera instrucción que sigue al bucle.

Las instrucciones de actualización y las instrucciones de


proceso pueden permutarse, al igual que en el bucle
repetir.

40
ESTRUCTURAS CICLICAS
ESTRUCTURA MIENTRAS-HACER. Ej.: Escribir un
algoritmo que escriba los n primeros enteros positivos.
inicio {Escribir los N primeros números enteros}
leer N

{Escribir los N primero números enteros}


Numero = 1

MIENTRAS Numero <= N HACER {Test de salida}


Inicio
Escribir Número {Instrucciones de proceso}
Numero = Numero + 1 {Actualización}
Fin
fin

41
ESTRUCTURAS CICLICAS
DIFERENCIA DE LAS ESTRUCTURAS MIENTRAS Y
REPETIR HASTA
En la estructura mientras la condición se evalúa al inicio,
antes de entrar al bucle, por tanto es más general y
permite la posibilidad de que el bucle pueda no ejecutarse.
Mientras que en la estructura repetir la condición se
evalúa al final, por tanto el bucle se ejecutará al menos
una vez bajo cualquier circunstancia.
La estructura mientras termina cuando la condición es
falsa, en tanto que la estructura repetir termina cuando la
condición es verdadera.
Ambas estructuras PUEDEN utilizarse cuando no se
conoce de antemano el número de veces que debe
ejecutarse el bucle.
42
ESTRUCTURAS CICLICAS
Formato de codificación en C++:Estructura while

while(expresión)
{ proposición 1 ;
while (<expres_bool>)
proposición 1 ;
<sec_sent>; proposición2;
...............
proposición n ; }

Lo m ́as importante a recordar de la sentencia while es que


su condición de terminación (<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
condición de control. Si la condición es false (0), entonces
el cuerpo no se ejecuta. Una sentencia While se ejecutara
cero o mas veces.
43
ESTRUCTURAS CICLICAS
Formato de codificación 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; while (i<=exp)
int exp; {resultado=resultado*b;
int i=1; i++; }
double resultado=1; cout<<"El Resultado
cout<<"Ingrese Base:"; Es:"<<resultado;
cin>>b; getch();
cout<<"Ingrese Exponente:"; }
cin>>exp;

45
Ejemplo: Muestra los números de la tabla de multiplicar.

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

46
Ejemplo: Calcula la suma comprendida de números en un
determinado rango.

#include<conio.h>
while ((i>vi) && (i<vf))
#include<iostream.h>
{ if ((i%2)==0)
void main()
{ suma=suma+i;
{clrscr();
i++;}
int vi,vf,i,pares;
else
int suma=0;
i++;
cout<<"Ingrese Numero Inicial:";
}
cin>>vi;
cout<<"La suma de los
cout<<"Ingrese Segundo Final:";
Numeros Comprendidos
cin>>vf;
en ese Rango es:"<<suma;
i=vi+1;
getch();
}

47
Ejemplo: Programa que Calcula el mínimo común múltiplo

#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 máximo común 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 cíclica puede estar anidada dentro de
otra estructura cíclica o de decisión 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 Mínima Unidad de Un numero. ej.
546=5+4+6=15=1+5=6.
do
while (N>0)
{ r=0;
Se ejecuta
en cada while(N>0)
#include<iostream.h> iteracion de {r=r+N%10;
#include<conio.h> do-while N=N/10;}
void main() (r>9) N=r;
{clrscr(); }
unsigned N,r; while(r>9);
gotoxy(4,4); gotoxy(4,8);
cout<<"Ingrese Numero:"; cout<<"Lo Min Es:"<<r;
cin>>N; getch ();
}

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

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
condición normal de terminación. 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
Obsérvese que la expresión 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
instrucción BREAK ,dando por finalizado el WHILE.
.
El mismo criterio podría aplicarse con el DO-WHILE ó con
FOR , por ejemplo haciendo

for (;;) { /* loop indefinido */


............
if( expresión ) break ; /* ruptura del loop cuando
expresión 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 realización
de una iteración particular, permitiendo al
programa continuar con la siguiente.

55
EJERCICIOS RESUELTOS

56
Ejemplo 1:
Elaborar un programa que muestre los números 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 Código
32 (el espacio en blanco) hasta el Código 164 (o sea la ñ)
sin incluir las minúsculas (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 números múltiplos de 3 y 7 a partir del número 9 y
finaliza en el numero 45, no deben incluirse en la suma los
números comprendidos entre 21 y 27.

# include<stdio.h>
main()
{int i,m3,m7,s;
m3=0;
m7=0;
printf("Suma de los múltiplos 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

S-ar putea să vă placă și