12
Fundamentos de Programación Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.mx/Takeyas 1 CAPÍTULO 8 CONTROL DE FLUJO (Estructuras selectivas) 2

CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C. 2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Embed Size (px)

Citation preview

Page 1: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 1

CAPÍTULO 8CONTROL DE FLUJO

(Estructuras selectivas)

2

Page 2: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 2

3

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?

Estructuras selectivas

�Una computadora puede “tomar decisiones”evaluando expresiones lógicas y estructurasselectivas

�El resultado de una expresión lógica es detipo booleano

�Una expresión lógica puede tener:

�Operadores relacionales

�Operadores lógicos

4

Page 3: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 3

Tipos de estructuras selectivas

5

ESTRUCTURASSELECTIVAS

Simples

Dobles

Múltiples

� Se conoce como “Si-Entonces” (IF-THEN)

6

Estructura selectiva simple

Pseudocódigo Diagrama de flujo

SI expresión_lógica ENTONCES

……

{FIN DE LA CONDICIÓN}

yes

no

Page 4: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 4

Pseudocódigo Diagrama de flujo

SI Edad>=18 ENTONCES

IMPRIMIR “Mayor de edad”

{FIN DE LA CONDICIÓN}

7

Ejemplo de estructura selectiva simple

no

Edad >= 18 "Mayor de edad"yes

8

Ejemplo de estructura selectiva simple en C#

no

Edad >= 18 "Mayor de edad"yes if(Edad >= 18)

{

Console.Write(“Mayor de edad”);

}

Page 5: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 5

� Se conoce como “Si-Entonces-Sino” (IF-THEN-ELSE)

9

Estructura selectiva doble

Pseudocódigo Diagrama de flujo

SI expresión_lógica ENTONCES

……

SINO

……

{FIN DE LA CONDICIÓN}

yes

no

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}

10

Ejemplo de estructura selectiva doble

Edad >= 18 "Mayor de edad"

"No es mayor de edad"

yes

no

Page 6: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 6

11

Ejemplo de estructura selectiva doble en C#

Edad >= 18 "Mayor de edad"

"No es mayor de edad"

yes

no

if(Edad >= 18)

{

Console.Write(“Mayor de edad”);

}

else{

Console.Write(“No es mayor de edad”);

}

Operador condicional ?:

int a=3, b=2, c;

c = (a>b) ? 1 : 0;

12

a > b c = 1

c = 0

V

F

Page 7: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 7

� Se conoce como “Si-Caso” (SWITCH-CASE)

13

Estructura selectiva múltiple

Pseudocódigo Diagrama de flujo

SI expresión

CASO c1: …

CASO c2: …

CASO c3: …

DEFAULT: …

{FIN DE LA CONDICIÓN}

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}

14

Ejemplo de estructura selectiva múltiple

Mes

"Ene" "Feb" "Mar" "Error"

1 2 3 Default

Page 8: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 8

15

Ejemplo de estructura selectiva múltiple en C#

Mes

"Ene" "Feb" "Mar" "Error"

1 2 3 Default

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;

}

� Una compañía de telefonía necesita un sistemaorientado a objetos que tenga una clase con losatributos, métodos y propiedades necesarios paraimprimir el costo de una llamada telefónica,capturando la duración de la llamada en minutos yconociendo lo siguiente:

� Toda llamada que dure tres minutos o menos tiene un costode $5.

� Cada minuto adicional cuesta $3

� NOTA: No imprima el resultado dentro del método quecalcula el costo de la llamada, sino desde el métodoprincipal Main().

16

Ejercicio

Page 9: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 9

a) Investigación preliminar

� Diseñar una clase que contenga un atributo (con surespectiva propiedad) para almacenar la duración de unallamada (expresada en minutos) y un método quecalcule y devuelva el costo correspondiente de acuerdo alo siguiente:

� Si la llamada dura 3 minutos o menos, entonces el costoes de $5

� Si la llamada excede 3 minutos, cada minuto adicional secobra a $3

17

Análisis

b) Definición del problema� Diseñar una clase que tenga un atributo y una propiedad

para controlar la duración de una llamada y un métodoque calcule y devuelva el costo correspondiente.

� Declarar y crear un objeto de dicha clase

� 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 ydevuelve el costo de la llamada

� Recibir el valor del costo de la llamada

� Imprimir el resultado

18

Análisis (cont.)

Page 10: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 10

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

Análisis (cont.)

� Diagrama de clase

20

Diseño

Page 11: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 11

� Diagrama de flujo del método de la clase

21

Diseño (cont.)

LlamadaTelefonica.CalcularCosto() : entero

Duracion <= 3 return( 5 )yes

return( (Duracion - 3) * 3 + 5)

no

� Diagrama de flujo del método principal

22

Diseño (cont.)

INICIO

Declarar miLlamadaTelefonica como LlamadaTelefonicaDeclarar intCostoLlamada como entero

miLlamadaTelefonica = new LlamadaTelefonica()

"Teclee la duración de la llamada en minutos"

miLlamadaTelefonica.Duracion

intCostoLlamada = miLlamadaTelefonica.CalcularCosto( )

"Costo = "+intCostoLlamada

FIN

Page 12: CAPÍTULO 8 CONTROL DE FLUJO - … de... · Fundamentos de Programación Ing. Bruno López Takeyas, M.C.  2 3 Preguntasdetonadoras ¿Qué es una estructura selectiva?

Fundamentos de Programación

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 12

Otros títulos del autor

http://www.itnuevolaredo.edu.mx/Takeyas/Libro

Bruno López [email protected]