Está en la página 1de 15

Estructuras de control repetitivas

Cuando se requiere repetir una o varias instrucciones (sentencias) para llevar a cabo una tarea; se cuenta en la programación con estructuras que permiten realizar este proceso llamados también bucles, iterativas, lazos. Las estructuras repetitivas en C++ son while y for que permiten resolver todo problema que involucre procesos repetitivos. Cuando se trabajan con estas estructuras se utilizan términos como: contadores, acumuladores, forzar la salida del bucle y continuar al inicio del bucle. Contadores: Son variables enteras que se incrementan (+) o decrementan (-) con un valor constante, pej. Una variable cuyo valor se incrementa de 1 en 1 y se conoce como variable contador. c=c+1; i+=2; j--; Acumuladores: Variables de cualquier tipo que almacenan valores variables, pej. La variable c cuyo valor se incrementa por el valor que va tomando otra variable llamada x. c=c+x; i+=c; j-=i; Salir del bucle Instrucción que permite forzar la salida de un bucle, para esto el lenguaje C++ incorpora la sentencia break para realizar dicha operación. break;

Lenguaje de Programación C++

Ing. Ana Lenny Hospinal

: Sentencia n. Ana Lenny Hospinal . } Lenguaje de Programación C++ Ing.Continuar al inicio del bucle Es una instrucción que permite saltar al inicio del bucle para volver a ejecutarse. continue. Lógica Sentencia 1 V Sentencia 1 Sentencia n Sentencia n Fin Mientras While (Exp. Sentencia While Permite repetir una o más instrucciones mientras que la condición (expresión lógica) sea verdadera. para esto C++ incorpora la sentencia continue. Expresión lógica F Mientras Exp. cuando la condición es falsa sale del bucle. lógica)) { Sentencia 1.

n. Ana Lenny Hospinal .Ejemplo Obtener la suma de los primeros n números naturales Inicio i. s : Entero Leer n i 1 F i<=n V s i s+i i+1 Escribir s Fin Lenguaje de Programación C++ Ing.

} Lenguaje de Programación C++ Ing. cout<<"Suma: "<<s<<"\n". while(i <= n){ s = s + i. int _tmain(int argc. //Entrada cout<<"Numero: ". //Proceso i = 1.// Obtener la suma de los primeros n números naturales positivos. Ana Lenny Hospinal .h" #include <iostream> using namespace std. i+= 1.s = 0. } //Salida cout<<"\n". return 0. cin>>n. system ("pause"). _TCHAR* argv[]) { //Variables int i. // #include "stdafx.n.

Lógica Sentencia 1 V Sentencia n Exp. } } V Lenguaje de Programación C++ Ing. lógica) { while (Exp. lógica F Fin Mientras Fin Mientras Sentencia 1 Sentencia n while (Exp. lógica) { Sentencia 1. Ana Lenny Hospinal . Exp.While anidado Dentro de la estructura repetitiva es posible colocar una o más estructuras repetitivas. lógica F Mientras Exp. Lógica Mientras Exp. Sentencia n.

//aumentar i en una unidad } cout <<"\n". int _tmain(int argc. _TCHAR* argv[]) { int i=1.h" #include <iostream> using namespace std. j=1. } system ("pause"). los valores de j<=4 // #include "stdafx. j++. while (i<=3) //mientras i sea menor o igual que 3 { cout << "para i=" <<i <<":"<<"\t". Ana Lenny Hospinal .// mostrar para los valores de i<=3. i++. j=1. return 0. } //avanza una nueva línea //aumentar i en una unidad // iniciar j de Nuevo a 1 Al ejecutar este programa se obtiene el siguiente resultado: Para i = 1 j = 1 j = 2 j = 3 j = 4 Para i = 2 j = 1 j = 2 j = 3 j = 4 Para i = 3 j = 1 j = 2 j = 3 j = 4 Lenguaje de Programación C++ Ing. while (j<=4) //mientras j sea menor o igual que 4 { cout <<"j =" <<j <<"\t".

Observe también que cada vez que finaliza la ejecución de la sentencia while interior. avanzamos a una nueva línea. lógica) . una o más veces dependiendo del valor de una expresión (while).while el bloque de sentencias se ejecuta al menos una vez. lo que ocurrirá siempre que la condición sea inicialmente falsa. Ejemplo: Realice un programa que le obligue a ingresar un número >= 0 Lenguaje de Programación C++ Ing. while (Exp.Este resultado demuestra que el bucle exterior se ejecute tres veces y por cada una de estas. simple o compuesta. cuando se ejecuta una estructura while puede suceder que el bloque de sentencias no se ejecute. Lógica Cuando se utiliza una estructura do . Mientras Exp. De esta forma es como se ejecutan los bucles anidados. el bucle interior se ejecuta cuatro veces. En cambio. porque la condición se evalúa al final. incrementamos el valor de i en una unidad e inicializamos de nuevo j al valor 1. Hacer Sentencia 1. do While La sentencia do ejecuta una sentencia. Ana Lenny Hospinal . Su sintaxis es la siguiente: do sentencia 1.

_TCHAR* argv[]) { double n . system ("pause"). cin>>n . vi valor inicial vf valor final de la variable contador +1 valor de incremento Lenguaje de Programación C++ Ing. do { cout<<"Numero:". int _tmain(int argc.h" #include <iostream> using namespace std. Ana Lenny Hospinal . return 0. i es la variable contador donde se establece el valor inicial. } Sentencia For Permite repetir una o más instrucciones una cantidad de veces.// Programa que obliga a ingresar un número >= 0 #include "stdafx. } while (n<0).

} Lenguaje de Programación C++ Ing. i++) { Sentencias. Ana Lenny Hospinal . i<=vf. for (i=vi. i+1 V Fin Para Sentencias.i i <=vf i vi F Para i vi Hasta vf Inc+1 Sentencias.

Ejemplo Dado un rango de números enteros. nf ni ni+ 1 nf nf-1 i i <=nf i V c c+1 ni F V i+1 Escribir c Fin Lenguaje de Programación C++ Ing. Ana Lenny Hospinal . ni. nf: Entero Leer ni. c. obtener la cantidad de números enteros que contiene. Inicio i.

system ("pause"). cout<<"Cantidad: "<<c<<"\n". //Proceso ni = ni + 1. } Lenguaje de Programación C++ Ing.h" #include <iostream> using namespace std. } cout<<"\n". Final: ".1. //Entrada cout<<"Num. _TCHAR* argv[]) { int i.c = 0. nf = nf . for(i = ni. int _tmain(int argc. cin>>ni. cout<<"Num. Ana Lenny Hospinal .nf. return 0. i<=nf. cin>>nf. Inicial: ". i++) { c += 1.// Dado un rango de números enteros. mostrar la cantidad de número enteros que contiene #include "stdafx.ni.

j++) { Sentencias. i i <=vf i V vi F Para i vi Hasta vf Inc+1 Para j vi Hasta vf Inc +1 i+1 Fin Para Sentencias Fin Para j j <=vf j vi F for (i=vi. Ana Lenny Hospinal . i++) j+1 { for (j=vi. j<=vf. Ejemplo: Determinar cuántos números primos hay en los primeros N números enteros positivos.For anidado Dentro de la estructura repetitiva es posible colocar una o más estructuras repetitivas así como otras estructuras. i<=vf. Lenguaje de Programación C++ Ing. } } V Sentencias.

Inicio n. Ana Lenny Hospinal . i. c. j : entero flag : Lógico Leer n i i <=n i flag verdadero 2 F i+1 j j <=i/2 j V 2 F j+1 F i Mod j=0 V flag salir falso flag c c+1 Escribe c Fin Lenguaje de Programación C++ Ing.

j.i. for(j = 2. system ("pause"). //Entrada cout<<"Numero: ". i<=n. bool flag. j ++) { if(i % j == 0) { flag = false.h" #include <iostream> using namespace std. #include "stdafx. flag = true. //Proceso for(i = 2. int _tmain(int argc. } Lenguaje de Programación C++ Ing. return 0. cin>>n. j <= i / 2. } } if(flag) { c += 1. _TCHAR* argv[]) { //Variables int n. } } //Salida cout<<"\n". cout<<"Cantidad: "<<c<<"\n". Ana Lenny Hospinal . break.c = 0.Ejemplo: // Determine cuántos números primos hay en los primeros n números enteros positivos. i++) { flag = true.

Obtener el factorial de un número. Hallar cuántos múltiplos de M hay en un rango de números enteros (debe ingresar Ni. 7. 6. Obtener la cantidad de los primeros n números múltiplos de 5 (mediante while y for) 3. Ana Lenny Hospinal . Dado un número entero en base 10. Dado un rango de números enteros obtener la cantidad de números pares que contiene. Dado un número determinar cuántos dígitos tiene 4. Nf y M). Lenguaje de Programación C++ Ing.Ejercicios Propuestos 1. Obtener la suma de pares e impares de los primeros N números enteros positivos. 2. convertir el número a otra base menor a 10. 5.