Fundamentos de Programación
CAPÍTULO 8
CONTROL DE FLUJO
(Estructuras selectivas)
2
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
1
Fundamentos de Programación
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 estructuras
selectivas
El resultado de una expresión lógica es de
tipo booleano
Una expresión lógica puede tener:
Operadores relacionales
Operadores lógicos
3
4
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
2
Fundamentos de Programación
Tipos de estructuras selectivas
Simples
ESTRUCTURAS
SELECTIVAS
Dobles
Múltiples
Estructura selectiva simple
Se conoce como “Si-Entonces” (IF-THEN)
Pseudocódigo
Diagrama de flujo
SI expresión_lógica ENTONCES
……
{FIN DE LA CONDICIÓN}
yes
no
5
6
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
3
Fundamentos de Programación
Ejemplo de estructura selectiva
simple
Pseudocódigo
Diagrama de flujo
SI Edad>=18 ENTONCES
IMPRIMIR “Mayor de edad”
{FIN DE LA CONDICIÓN}
yes
"Mayor de edad"
Edad >= 18
no
Ejemplo de estructura selectiva
simple en C#
Edad >= 18
no
yes
"Mayor de edad"
if(Edad >= 18)
{
Console.Write(“Mayor de edad”);
}
7
8
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
4
Fundamentos de Programación
Estructura selectiva doble
Se conoce como “Si-Entonces-Sino” (IF-THEN-ELSE)
Pseudocódigo
Diagrama de flujo
SI expresión_lógica ENTONCES
yes
SINO
……
……
{FIN DE LA CONDICIÓN}
no
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}
Edad >= 18
no
"No es mayor de edad"
yes
"Mayor de edad"
9
10
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
5
Fundamentos de Programación
Ejemplo de estructura selectiva
doble en C#
yes
"Mayor de edad"
Edad >= 18
no
"No es mayor de edad"
if(Edad >= 18)
{
Console.Write(“Mayor de edad”);
}
else
{
}
Console.Write(“No es mayor de edad”);
Operador condicional ?:
V
c = 1
a > b
F
c = 0
int a=3, b=2, c;
c = (a>b) ? 1 : 0;
11
12
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
6
Fundamentos de Programación
Estructura selectiva múltiple
Se conoce 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
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
7
Fundamentos de Programación
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
conociendo lo siguiente:
Toda llamada que dure tres minutos o menos tiene un costo
de $5.
Cada minuto adicional cuesta $3
NOTA: No imprima el resultado dentro del método que
calcula el costo de la llamada, sino desde el método
principal Main().
16
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
8
Fundamentos de Programación
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 menos, entonces el costo
es de $5
Si la llamada excede 3 minutos, cada minuto adicional se
cobra a $3
17
Análisis (cont.)
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étodo
que 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 y
devuelve el costo de la llamada
Recibir el valor del costo de la llamada
Imprimir el resultado
18
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
9
Fundamentos de Programación
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)
Diseño
Diagrama de clase
:
19
20
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
10
Fundamentos de Programación
Diseño (cont.)
Diagrama de flujo del método de la clase
LlamadaTelefonica.CalcularCosto() : entero
Duracion <= 3
yes
return( 5 )
no
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
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
11
Fundamentos de Programación
Otros títulos del autor
http://www.itnuevolaredo.edu.mx/Takeyas/Libro
[email protected]
Bruno López Takeyas
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
12
Comentarios de: 04b.- Control de flujo (Estructuras Selectivas) - Programación Orientada a Objetos en C# .NET (0)
No hay comentarios