Programación III Clase #04 Estructuras de Control.

26
Programación III Clase #04 Estructuras de Control

Transcript of Programación III Clase #04 Estructuras de Control.

Page 1: Programación III Clase #04 Estructuras de Control.

Programación III

Clase #04

Estructuras de Control

Page 2: 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

Page 3: Programación III Clase #04 Estructuras de Control.

if / else

• Sintaxisif (expr)

bloque

else

bloque

Page 4: Programación III Clase #04 Estructuras de Control.

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;

Page 5: Programación III Clase #04 Estructuras de Control.

if / else [Ejemplo 2]

int p = 3;

if (!(p%3))

{

cout<<“Múltiplo de 3”<<endl;

cout<<“Hurra”<<endl;

}

Page 6: Programación III Clase #04 Estructuras de Control.

if / else

if (a == b)

cout<<“Hola”<<endl;

cout<<“Coca Cola es Así”<<endl;

Page 7: Programación III Clase #04 Estructuras de Control.

if / else

int p = 3, q = 5;

if (p = q)

cout<<“Albóndiga”<<endl;

Page 8: Programación III Clase #04 Estructuras de Control.

if / else

if (a > b)

if (b > c)

cout<<“Manzanas”<<endl;

else

cout<<“Peras”<<endl;

Page 9: Programación III Clase #04 Estructuras de Control.

while

• Sintaxiswhile (expr)

bloque

expr

bloque

V

F

Page 10: Programación III Clase #04 Estructuras de Control.

while [Ejemplo 1]

int p = 3, x;

while (p > 2)

{

x = p * 4;

cin>>p;

cout<<x;

}

Page 11: Programación III Clase #04 Estructuras de Control.

while [Ejemplo 2]

while (1)

cout<<“Hola!”;

Page 12: Programación III Clase #04 Estructuras de Control.

do / while

• Sintaxisdo

{

stmt_list;

}while (expr);

expr

bloque

V

F

Page 13: Programación III Clase #04 Estructuras de Control.

do / while [Ejemplo]

char c;

int x;

do{

cin>>x;

cout<<x * 2<<endl;

cin>>c;

}while (c == ‘s’ || c == ‘S’);

Page 14: Programación III Clase #04 Estructuras de Control.

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

Page 15: Programación III Clase #04 Estructuras de Control.

Diagrama de Flujo for

expr2

bloque

V

F

expr1

expr3

Page 16: Programación III Clase #04 Estructuras de Control.

for [Ejemplo 1]

for (int i=0; i<10; i++)

cout<<i<<endl;

for (int i=10; i>=0; i--)

cout<<i<<endl;

Page 17: Programación III Clase #04 Estructuras de Control.

for [Ejemplo 2]

for (;;)

cout<<“Arañas”<<endl;

for (i=0, j=10;i<5||j>5;i++,j--)

cout<<i<<j<<endl;

Page 18: Programación III Clase #04 Estructuras de Control.

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;

Page 19: Programación III Clase #04 Estructuras de Control.

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.

Page 20: Programación III Clase #04 Estructuras de Control.

Ciclo while

expr

VF

continue

expr

VF

break

Page 21: Programación III Clase #04 Estructuras de Control.

exprV

F

Ciclo do / while

continue break

exprV

F

Page 22: Programación III Clase #04 Estructuras de Control.

Ciclo for

expr2

V

F

expr1

expr3

expr2

V

F

expr1

expr3

continue break

Page 23: Programación III Clase #04 Estructuras de Control.

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.

Page 24: Programación III Clase #04 Estructuras de Control.

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.

Page 25: Programación III Clase #04 Estructuras de Control.

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á.

Page 26: Programación III Clase #04 Estructuras de Control.

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.