República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda
PNFSI http://aldeafraypedrodeagreda.wordpress.com Elaborado por Prof. Elías Cisneros
[email protected] 23/12/09
Introducción a lenguaje C++. Parte IV Ciclos iterativos
Creative Commons Usted es libre de:
• Copiar, distribuir y comunicar públicamente la obra . • Hacer obras derivadas .
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).
Contenido
1.Introducción a Bucles o Ciclos Repetitivos...2
2. Ciclos con un número determinado de iteraciones (HacerPara o For)...2
Elementos del Ciclo For...3
3. Ciclos con un número indeterminado de iteraciones...5
3.1 HacerMientras o While...5
3.2. RepetirHasta ( Do while) ...6
4. Referencias...8
1.Introducción a Bucles o Ciclos Repetitivos
Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se clasifican en:
2. Ciclos con un número determinado de iteraciones (Hacer-Para o For)
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al límite superior.
Elementos del Ciclo For
Variable de control: es la estructura que almacena el paso del bucle, esta debe ser inicializada. En esta caso es la variable i.
for (int i = 0 ; i < 10; i=i+1) {
Conjunto de sentencias }
• Inicialización de la variable de control: se pide que se inicialice de forma explicita, es el valor inicial de la variable de control.
int i = 0
• Condición de control: se ve representado por el valor final que puede tomar la variable de control .
i < 10
• Incremento: indica el paso con que avanza el bucle, puede ser cualquier número entero. i = i + 1
• Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. {
Ejemplo
1. #include <iostream> 2. using namespace std; 3. int main()
4. {
5. cout << "Ejercicio de ejemplo ciclo For" << endl; 6. for( int i=0; i<20;i=i+1)
7. {
8. cout << "El valor de i es: " <<i; 9. if( i%2==0)
10. {
11. cout << " - El contador i es par" << endl; 12. }
13. else 14. {
15. cout << " - El contador i es impar" << endl; 16. }
17. }
18. return 0; 19. }
Cuerpo Ciclo For
3. Ciclos con un número indeterminado de iteraciones
Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa.
3.1 Hacer-Mientras o While
Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:
while (condición a cumplir) { acciones a ejecutar; }
Condición
La condición ha de ser una sentencia que devuelva un valor booleano, y esta puede ser el valor booleano en sí, verdadero(1) si la condición se cumple, o falso si esta no se cumple(0). También puede contener el nombre de una variable booleana, y el valor de la expresión dependerá de su contenido.
Sentencias Comparativas
La forma más obvia tal vez, y la más usada sin duda, son las sentencias comparativas, que usan los operandos igual, diferente, menor o igual, mayor o igual, menor y mayor.
Ejemplo
int piso_edificio=10; while (piso_edificio > 0 )
cout <<”Bajando”<<endl;
Inicio
Declarar variables e inicializarlas Mientras (no se hagan 10 iteraciones){ Leer una calificación
Sumarla al total
Determinar que se ha hecho una iteración }
calcular el promedio mostrar el promedio Fin
El programa queda como sigue:
1. using namespace std; 2. #include <iostream> 3. int main(){
4. int calificacion, suma=0, iteracion=1; 5. float promedio;
6. while( iteracion<=6 ){
7. cout<<"Teclea tu calificacion "<<iteracion<<endl; 8. cin>>calificacion;
9. suma=suma + calificacion; 10. iteracion=iteracion+1; 11. }
12. promedio=(float)suma/(iteracion-1);
13. cout <<"El promedio de calificaciones es: " <<promedio<<endl; 14. cin.ignore();
15. cin.get(); 16. return 0; 17. }
El programa es sencillo, quizá una parte que pudiese causar dudas es el cálculo del promedio. Lo que sucede es que se realiza un cast para convertir temporalmente la variable suma de int a float, así se hará la división y se tendrá un resultado decimal cuando sea necesario.
3.2. Repetir-Hasta ( Do - while)
Esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el Hacer-Mientras puede ser que nunca llegue a entrar si la condición no se cumple desde un principio. La forma de esta estructura es la siguiente:
do {
acciones a ejecutar; } while (condición a cumplir) ; Ejemplo
1. using namespace std; 2. #include <iostream> 3. int main()
4. {
5. int x=1;
6. // instruccion do while 7. do{
8. cout<<"ESTUDIANTE"<<x<<endl; 9. x=x+1;
10. } while(x<=10); 11. return 0; 12. }
Otro ejemplo es un menú de opciones. Se necesita que por lo menos una vez lea la opción que elige el usuario, y en caso de que elija una no disponible, en lugar de aparecer el mensaje “es una opción no válida” y termine el programa, espere a que el usuario escoja una de la lista. El programa de ejemplo:
1. using namespace std; 2. #include <iostream> 3. int main(){
4. int opcion; 5. do{
6. cout<<"elije una opcion de la lista"<<endl; 7. cout<<"1.opcion 1"<<endl;
8. cout<<"2.opcion 2"<<endl; 9. cout<<"3.opcion 3"<<endl; 10. cin>>opcion;
11. }while((opcion<1)||(opcion>3));
12. cout<<"esta opcion si fue valida"<<endl;
Cuerpo del bucle Do
4. Referencias
http://es.wikipedia.org/wiki/Bucle_for http://es.wikipedia.org/wiki/Bucle_while
•C++ Manual Teórico Práctico. Alan D. Osorio Rojas. Versión Digital. •Guía de Algoritmia, Javier Jiménez Pacheco. Versión Digital.
•Tutorial de C++, Peter Class. Pello Xabier Altadill Izura. Versión Digital.
•Aprenda C++ como si estuviera en primero. Javier García de Jalón, José Ignacio Rodríguez, José María Sarriegui, Alfonso Brazález. Versión Digital.
String :