Tema 6. Estatutos de decisión Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Explicar el funcionamiento de los estatutos de decisión de C++. D.R. Universidad TecMilenio 1
Introducción del tema Una capacidad importante, que puede llevar a cabo un programa de computadora, es tomar decisiones. De esta manera es posible realizar programas que consideren diferentes casos; por ejemplo, cuando vas a un establecimiento de renta de películas y muestras tu credencial de cliente frecuente, la computadora de la caja tiene que hacer procedimientos diferentes para calcular tu pago, que los que hace con otros clientes que no cuentan con dicha credencial. Introducción del tema Que utilidad tendría el programa si no permitiera trabajar con los diferentes tipos de clientes que existen? Imagina tener que cambiar de programa cada vez que llega un cliente con diferentes características (cliente frecuente, cliente de mayoreo, cliente empleado de la empresa, cliente normal, etc.). En esta sesión, conocerás las instrucciones que te permitirán tomar decisiones dentro de un programa de C++. 4 D.R. Universidad TecMilenio 2
Estatutos o estructuras de control Se ha demostrado que todo programa se puede escribir en términos de solo 3 estructuras de control: Estructura de secuencia, el lenguaje ejecuta las instrucciones una después de otra, en el orden a como fueron escritas. Estructura de condición o decisión, son aquellas instrucciones que controlan con base en una condición o expresión booleana, una serie de instrucciones a ejecutar. Estructura de repetición, son aquellas que controlan la repetición de un conjunto de instrucciones que cumplen con una condición o expresión. Estatutos de decisión En C++ existen 3 estatutos de decisión: Instrucción condicional if Instrucción condicional if- Instrucción condicional switch D.R. Universidad TecMilenio 3
Estatuto de decisión if Instrucción condicional if Es una instrucción que evalúa una condición (expresión booleana) en donde, al cumplirse dicha condición, ejecuta una instrucción o serie de instrucciones, de lo contrario no las ejecuta. Estatuto de decisión if Estructura algorítmica Sintaxis de la instrucción if de una instrucción if ( Expresión_booleana ) instrucción; si Expresión booleana no Sintaxis de la instrucción if de varias instrucción Instrucción(es)_Si if ( Expresión_booleana ) instruccion_1; instrucción_n D.R. Universidad TecMilenio 4
Estatuto de decisión if Ejemplo: // IF con una instrucción #include <iostream> int main() int x, c = 0; cin >> x; if (x==0) c += 1; cout << c; return 0; //IF con múltiples instrucciones #include <iostream> int main() int x, c = 0; cin >> x; if (x==0) c=c + 1; x++; cout << c; cout << x; return 0; Estatuto de decisión if- Instrucción condicional if- Es una instrucción que elige entre dos alternativas, en la que se evalúa una condición o expresión booleana que si cumple con la condición, evalúa una instrucción o serie de instrucciones y si no cumple evalúa otra instrucción o serie de instrucciones. D.R. Universidad TecMilenio 5
Estatuto de decisión if- Estructura algorítmica si Instrucción(es)_Si Expresió n booleana no Instrucción(es)_No Sintaxis de la instrucción if de una instrucción if ( Expresión_booleana ) instrucción_si; instrucción_no; ió Estatuto de decisión if- Sintaxis de la instrucción if con múltiples instrucción if ( Expresión_booleana ) instrucción_si_1; Instrucción_si_n instrucción_ no_ 1; Instrucción_no_n D.R. Universidad TecMilenio 6
Estatuto de decisión if- Ejemplo // IF ELSE con una instrucción #include <iostream> int main() if( mi_marcador > su_marcador) cout<< Yo gane! ; cout<< Tu ganaste! ; // IF ELSE con múltiples instrucciones #include <iostream> int main() if( mi_marcador > su_marcador) cout<< Yo gane! ; apuesta= apuesta +100; cout<< Tu ganaste! ; apuesta=0; Estatuto de decisión (if- anidados) Estructura algorítmica si Expresión booleana no Instrucción(es)_Si si Expresión booleana no Instrucción(es)_Si Instrucción(es)_No D.R. Universidad TecMilenio 7
Sintaxis de la instrucción if anidada if (Expresion_booleana1) instrucción_1; if (Expresion_booleana2) instrucción_2; if (Expresion_booleana3) instrucción_3; instrucción_4; Estatuto de decisión (if- anidados) // IF ELSE anidado if( mi_marcador marcador > su_marcador) cout<< Yo gane! ; apuesta= apuesta +100; if(mi_marcador==su_marcador) cout<< Empatamos! ; apuesta=0; cout<< Tu ganaste! ; apuesta=0; Estatuto de decisión switch Instrucción condicional switch Conocida también como una estructura de selección o decisión múltiple, ya que esta instrucción de C++ compara una variable con varios posibles valores y para cada valor tiene una serie de instrucciones a ejecutar. D.R. Universidad TecMilenio 8
Estatuto de decisión switch Estructura algorítmica constante_1 Expresión Controladora Sucesion_de_instrucciones constante_2 Sucesion_de_instrucciones constante_n Sucesion_de_instrucciones. Estatuto de decisión switch Sintaxis de la instrucción switch switch(expresion_controladora) ( p _ ) case constante_1: sucesion_de_instrucciones_1 break; case constante_2: sucesion_de_instrucciones_2 break; case constante_n: sucesion_de_instrucciones_n break; default: Sucesion_de_instruciones_por_omision Cuando la computadora encuentra una instrucción break, la instrucción switch termina. Si ninguna de las opciones case tiene una constante que coincida con el valor de la expresión controladora, se ejecutará la instrucción default. D.R. Universidad TecMilenio 9
Ejemplo: #include <iostream> int main () Estatuto de decisión switch cin>> cantidad; d switch (cantidad) case 1: cout << La cantidad introducida es 1 ; break; case 2: cout << La cantidad introducida es 2 ; break; default: cout << La cantidad introducida es <<cantidad; return 0; Cierre Refuerza los conocimientos que adquiriste en esta actividad por medio de la siguiente reflexión: actividad por medio de la siguiente reflexión: En esta sesión aprendiste a utilizar los estatutos de decisión disponibles en C++. Ahora serás capaz de realizar programas que tomen decisiones. D.R. Universidad TecMilenio 10
Instrucciones de control: Para aprender más En esta liga encontrarás la definición, sintaxis y estructura algorítmica de las instrucciones de control condicionales (if, if-, switch) y repetitivas (for, while, do-while). Bustinduy,C. (2004). Instrucciones de control. Recuperado el 1 de Diciembre de 2008, de Nebrija Universidad: http://www.nebrija.es/~abustind/informatica/metodologiai/c / b ti ti /M t d i I/C ontrol.pdf 21 Referencias bibliográficas Libro de texto: Savitch, Walter. (2007) Resolución de problemas con C++. Quinta Edición. Pearson. Libros de apoyo: Deitel, H. & Deitel P. (2003) Cómo programar en C++. Cuarta Edición. Pearson Educación, México. Liga de internet: Bustinduy,C. (2004). Instrucciones de control. Recuperado el 1 de Diciembre de 2008, de Nebrija Universidad: http://www.nebrija.es/~abustind/informatica/metodologiai/contr ol.pdf D.R. Universidad TecMilenio 11
Créditos Diseño de contenido: Ing. Edgar Isaac Meléndrez Rivera, MATI Coordinador académico del área: L. I. Oscar Andrés Rodríguez Múgica, MATI Edición de contenido: Lic. Cintia Esquivelzeta Rabell Edición de texto: Lic. Dulce Fátima Camacho, MEE Diseño Gráfico: Ing. Felipe Leyva Silva D.R. Universidad TecMilenio 12