Professional Documents
Culture Documents
Contenido
La iteracin en C++ Bucles a priori, la instruccin while Bucles a posteriori, la instruccin do.. while Bucles controlados por contador, la instruccin for
Tema 3 - 1
Una condicin, el cdigo (cuerpo del bucle) se ejecuta slo si la condicin es verdadera.
Una instruccin para inicializar correctamente el valor de la condicin. Una instruccin en el cuerpo del bucle que garantice su interrupcin.
Tema 3 - 2
}
Condicin debe ser tipo bool
Tema 3 - 3
Tema 3 - 4
int cuenta = 1; while (cuenta <= 10){ cout << cuenta; cuenta ++; }
Tema 3 - 5
Tema 3 - 6
} return 0; }
Tema 3 - 7
} return 0;
Tema 3 - 8
ejemplo
while
Tema 3 - 9
ejemplo
while
Tema 3 - 10
ejemplo
while
Tema 3 - 11
ejemplo
while
#include <iostream.h> #include <iomanip.h> int main () { int cuenta; double suma = 0.0; int primero, ultimo, temp; cout << Este programa calcula la suma y el promedio del rango de enteros\nintroducidos por Vd. << \n; cout << Introduzca limite inferior del rango: << \n; cin >> primero; cout << Introduzca limite superior del rango: << \n; cin >> ultimo; if (primero > ultimo) { temp = primero; primero = ultimo; ultimo = temp; } cout << Suma de enteros desde << primero << hasta << ultimo << = ; while (primero <= ultimo) { cuenta ++; suma += (double) primero++; } cout << suma << endl; cout << El promedio vale: << suma/cuenta << endl; return 0; } Tema 3 - 12
ejemplo: centinelas
while
// Ejemplo: clculo de la vida media de los circuitos. El usuario introduce valores correspondientes a los tiempos de fallo de las componentes de un circuito electrnico. La vida media del circuito es la media de los tiempos de fallo de sus componentes. Para marcar el fin de la introduccin de datos el usuario introduce un valor negativo.
Tema 3 - 13
ejemplo centinelas
#include <iostream.h> #include <iomanip.h> int main () { int cuenta = 0; double suma = 0.0; int TiempoFallo; cout << Este programa calcula la vida media de un circuito. << \n; //Validez de var control en la 1 vuelta cout << Introduzca tiempo de fallo de componente (0 para terminar): ; cin >> TiempoFallo; while (TiempoFallo != 0) { cuenta ++; suma += (double) TiempoFallo; cout << Introduzca tiempo de fallo de componente (0 para terminar): ; cin >> TiempoFallo; } //Compruebo que al menos hay un dato if (cuenta != 0){ cout << Vida Media del circuito = << suma/cuenta; } else cout << No ha introducido datos; return 0; }
while
Tema 3 - 14
<<
cuenta
Tema 3 - 15
<<
cuenta
Tema 3 - 16
Tema 3 - 17
while(condicin); do {
secuencia de instrucciones
instruccin
} while(condicin); true
El cuerpo del bucle se ejecuta siempre al menos una vez expresin booleana
false
Tema 3 - 18
ejemplo: centinelas
do...while
// Ejemplo: clculo de la vida media de los circuitos. El usuario introduce valores correspondientes a los tiempos de fallo de las componentes de un circuito electrnico. La vida media del circuito es la media de los tiempos de fallo de sus componentes. Para marcar el fin de la introduccin de datos el usuario introduce un valor negativo.
Tema 3 - 19
#include <iostream.h> #include <iomanip.h> int main () { int cuenta = 0; double suma = 0.0; int TiempoFallo; cout << Este programa calcula la vida media de un circuito. << \n; do { cout << Introduzca tiempo de fallo de componente (0 para terminar): ; cin >> TiempoFallo; if ( TiempoFallo != 0) cuenta++; } while (TiempoFallo != 0); if (cuenta != 0) cout << Vida Media del circuito = << suma/cuenta; else cout << No ha introducido datos; return 0; }
ejemplo: centinelas
do...while
Tema 3 - 20
do...while
Tema 3 - 21
Especialmente adecuado cuando se leen datos del teclado hasta detectar un carcter centinela
Diferencia bsica con WHILE: ejecuta el cuerpo del bucle al menos una vez (WHILE puede no llegar a ejecutarse nunca) Cualquier estructura do..while es reemplazable mediante un while con una vuelta adicional del bucle.
Tema 3 - 22
La instruccin continue
do {
cin >> x; if(x < 0) continue; cout << x; } while(x != 100);
Tema 3 - 24