Upload
vankhanh
View
234
Download
0
Embed Size (px)
Citation preview
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
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
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
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”);
}
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
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
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
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
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.)
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
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
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]