CAPÍTULO 8 CONTROL DE FLUJO (Estructuras selectivas) 2 http://www.itnuevolaredo.edu.mx/takeyas 1
Preguntas detonadoras Qué es una estructura selectiva? Para qué sirve? Cuántos tipos existen de estructuras selectivas? Cuál es la diferencia entre las diversas estructuras selectivas? Cuándo se recomienda utilizar una estructura selectiva simple? cuándo una doble? cuándo una múltiple? 3 Estructuras selectivas Una computadora puede tomar decisiones evaluando expresiones lógicas y estructuras selectivas El resultado de una expresión lógica es de tipo boolea Una expresión lógica puede tener: Operadores relacionales Operadores lógicos 4 http://www.itnuevolaredo.edu.mx/takeyas 2
Tipos de estructuras selectivas Simples ESTRUCTURAS SELECTIVAS Dobles Múltiples 5 Estructura selectiva simple Se coce como Si-Entonces (IF-THEN) Pseudocódigo Diagrama de flujo SI expresión_lógica ENTONCES {FIN DE LA CONDICIÓN} yes 6 http://www.itnuevolaredo.edu.mx/takeyas 3
Ejemplo de estructura selectiva simple Pseudocódigo Diagrama de flujo SI Edad>=18 ENTONCES Edad >= 18 yes "Mayor de edad" IMPRIMIR Mayor de edad {FIN DE LA CONDICIÓN} 7 Ejemplo de estructura selectiva simple en C# Edad >= 18 "Mayor de edad" yes if(edad >= 18) { Console.Write( Mayor de edad ); } 8 http://www.itnuevolaredo.edu.mx/takeyas 4
Estructura selectiva doble Se coce como Si-Entonces-Si (IF-THEN-ELSE) Pseudocódigo Diagrama de flujo SI expresión_lógica ENTONCES SINO {FIN DE LA CONDICIÓN} yes 9 Ejemplo de estructura selectiva doble Pseudocódigo Diagrama de flujo SI Edad>=18 ENTONCES IMPRIMIR Mayor de edad SINO IMPRIMIR No es mayor de edad {FIN DE LA CONDICIÓN} yes Edad >= 18 "No es mayor de edad" "Mayor de edad" 10 http://www.itnuevolaredo.edu.mx/takeyas 5
Ejemplo de estructura selectiva doble en C# Edad >= 18 yes "Mayor de edad" "No es mayor de edad" if(edad >= 18) { Console.Write( Mayor de edad ); } else { Console.Write( No es mayor de edad ); } 11 Operador condicional?: a > b c = 1 F c = 0 V int a=3, b=2, c; c = (a>b)? 1 : 0; 12 http://www.itnuevolaredo.edu.mx/takeyas 6
Estructura selectiva múltiple Se coce como Si-Caso (SWITCH-CASE) Pseudocódigo Diagrama de flujo SI expresión CASO c1: CASO c2: CASO c3: DEFAULT: {FIN DE LA CONDICIÓN} 13 Ejemplo de estructura selectiva múltiple Pseudocódigo Diagrama de flujo SI Mes CASO 1:IMPRIMIR Ene CASO 2:IMPRIMIR Feb CASO 3:IMPRIMIR Mar DEFAULT: IMPRIMIR Error {FIN DE LA CONDICIÓN} Mes 1 2 3 Default "Ene" "Feb" "Mar" "Error" 14 http://www.itnuevolaredo.edu.mx/takeyas 7
Ejemplo de estructura selectiva múltiple en C# Mes 1 2 3 Default "Ene" "Feb" "Mar" "Error" switch(mes) { case 1 : Console.Write( Ene ); break; case 2 : Console.Write( Feb ); break; case 3 : Console.Write( Mar ); break; default : Console.Write( Error ); break; } 15 Ejercicio Una compañía de telefonía necesita un sistema orientado a objetos que tenga una clase con los atributos, métodos y propiedades necesarios para imprimir el costo de una llamada telefónica, capturando la duración de la llamada en minutos y cociendo lo siguiente: Todallamadaqueduretresminutosomestieneuncosto de$5. Cada minuto adicional cuesta $3 NOTA: No imprima el resultado dentro del método que calcula el costo de la llamada, si desde el método principal Main(). 16 http://www.itnuevolaredo.edu.mx/takeyas 8
Análisis a) Investigación preliminar Diseñar una clase que contenga un atributo (con su respectiva propiedad) para almacenar la duración de una llamada (expresada en minutos) y un método que calcule y devuelva el costo correspondiente de acuerdo a lo siguiente: Si la llamada dura 3 minutos o mes, entonces el costo esde$5 Si lallamadaexcede3minutos, cadaminutoadicional se cobraa$3 17 Análisis (cont.) b) Definición del problema Diseñarunaclasequetengaunatributoyunapropiedad para controlar la duración de una llamada y un método que calcule y devuelva el costo correspondiente. Declararycrearubjetodedichaclase Solicitar al usuario que teclee la duración (en minutos) de la llamada e introduzca este valor al objeto creado. Ejecutar el método del objeto creado que calcula y devuelve el costo de la llamada Recibirelvalordelcostodelallamada Imprimir el resultado 18 http://www.itnuevolaredo.edu.mx/takeyas 9
Análisis (cont.) c) Datos de entrada Duración de la llamada expresada en minutos (Atributo: _intduracion, Propiedad: Duracion) d) Información de salida Costo de la llamada(intcostollamada: entero) e) Variables(datos) auxiliares Clase para administrar la llamada (LlamadaTelefonica) Objeto (millamadatelefonica : LlamadaTelefonica) 19 Diseño Diagrama de clase 20 http://www.itnuevolaredo.edu.mx/takeyas 10
Diseño (cont.) Diagrama de flujo del método de la clase LlamadaTelefonica.CalcularCosto() : entero yes Duracion <= 3 return( 5 ) return( (Duracion - 3) * 3 + 5) 21 Diseño (cont.) Diagrama de flujo del método principal INICIO Declarar millamadatelefonica como LlamadaTelefonica Declarar intcostollamada como entero millamadatelefonica = new LlamadaTelefonica() "Teclee la duración de la llamada en minutos" millamadatelefonica.duracion intcostollamada = millamadatelefonica.calcularcosto( ) "Costo = "+intcostollamada FIN 22 http://www.itnuevolaredo.edu.mx/takeyas 11
Otros títulos del autor http://www.itnuevolaredo.edu.mx/takeyas/libro takeyas@itnuevolaredo.edu.mx Bru López Takeyas http://www.itnuevolaredo.edu.mx/takeyas 12