Programación III
Clase #04
Estructuras de Control
Bloques / Ambitos
• Un bloque está constituido por una línea de código ó por varias líneas de código agrupadas por llaves.
cout<<“Hola Mundo”<<endl;
{
cout<<“Hola Mundo”;
cout<<endl;
}
Un bloque de una sola línea de código
Un bloque de más líneas de código
if / else
• Sintaxisif (expr)
bloque
else
bloque
if / else [Ejemplo 1]
int x = 4;
if (x ==4)
cout<<“Si es cuatro”<<endl;
int x = 4;
if (x ==4)
cout<<“Si es cuatro”<<endl;
else
cout<<“No es cuatro”<<endl;
if / else [Ejemplo 2]
int p = 3;
if (!(p%3))
{
cout<<“Múltiplo de 3”<<endl;
cout<<“Hurra”<<endl;
}
if / else
if (a == b)
cout<<“Hola”<<endl;
cout<<“Coca Cola es Así”<<endl;
if / else
int p = 3, q = 5;
if (p = q)
cout<<“Albóndiga”<<endl;
if / else
if (a > b)
if (b > c)
cout<<“Manzanas”<<endl;
else
cout<<“Peras”<<endl;
while
• Sintaxiswhile (expr)
bloque
expr
bloque
V
F
while [Ejemplo 1]
int p = 3, x;
while (p > 2)
{
x = p * 4;
cin>>p;
cout<<x;
}
while [Ejemplo 2]
while (1)
cout<<“Hola!”;
do / while
• Sintaxisdo
{
stmt_list;
}while (expr);
expr
bloque
V
F
do / while [Ejemplo]
char c;
int x;
do{
cin>>x;
cout<<x * 2<<endl;
cin>>c;
}while (c == ‘s’ || c == ‘S’);
for
• Sintaxisfor (expr1; expr2; expr3)
bloque;
• expr1 es también conocida como expresión de inicialización
• expr2 es también conocida como condición de permanencia
• expr3 es también conocida como acumulador
Diagrama de Flujo for
expr2
bloque
V
F
expr1
expr3
for [Ejemplo 1]
for (int i=0; i<10; i++)
cout<<i<<endl;
for (int i=10; i>=0; i--)
cout<<i<<endl;
for [Ejemplo 2]
for (;;)
cout<<“Arañas”<<endl;
for (i=0, j=10;i<5||j>5;i++,j--)
cout<<i<<j<<endl;
for [Ejemplo 3]
for (int i=0; i<3; i++)
for (int j=0; j<3; j++)
if (i != j)
cout << i << ‘\t’ << j << endl;
break, continue
• break– Palabra reservada que sirve para salirse del
ciclo más interno.
• continue– Palabra reservada que hace que el código del
bloque de un ciclo salte directamente a evaluar la condición.
Ciclo while
expr
VF
continue
expr
VF
break
exprV
F
Ciclo do / while
continue break
exprV
F
Ciclo for
expr2
V
F
expr1
expr3
expr2
V
F
expr1
expr3
continue break
Ejemplo… Número Mágico
• El problema:– Elaborar un programa que calcule un número
al azar entre 1 y 10. Luego le dé tres oportunidades al usuario para adivinarlo. Si el usuario lo logra entonces, gana el juego, sino pierde.
Número Mágico#include <iostream.h>
#include <stdlib.h>
int main()
{
// Declaración de Variables a utilizar
int magic, // Número a ser adivinado
curGuess;// Intento actual del usuario
bool won = false; // Bandera para saber si ha ganado
magic = rand() % 10 + 1;for (int curTry = 0; curTry < 3; curTry++){
cout<<"Este es su Intento #"<<curTry+1<<": ";
cin>>curGuess;
if (curGuess == magic){
won = true;
break;
}
}
int rand() es una función declarada en stdlib.hDevuelve un entero entre 1 y MAXINTAl aplicar módulo se restringe el rango a 0..9Se le suma 1 para que quede de 1..10
Por cada intento que se tiene disponible (3)Leer el númeroVerificar si gano…
si es así… terminar el ciclo.
Número Mágicoif (won) // Si se activo la bandera... Es que ganó
cout<<"Usted Ha Ganado... Yujuuuuu!"<<endl;
else
cout<<"Usted Ha Perdido... Buuuujuu!"<<endl;
system("PAUSE");
return 0;
}
El código completo del ejemploanterior se puede obtener acá.
Tarea
• Modifique el programa del Número Mágico de manera que:– El usuario determine cuál es el número
máximo a adivinar.– El usuario determine cuántos intentos quiere
tener.– El usuario pueda jugar varias veces.
Top Related