ESTRUCTURAS DE DECISION
SIMPLE
Y MULTIPLES
ING. CARLOS MORENO PAREDES
Estructuras de Decisión
Las estructuras de
decisión comparan una
variable contra otro(s)
valor(es), para que, en
base al resultado de esta
comparación, se siga un
curso de acción dentro
del programa.
La sentencia if
Se usa una sentencia if para especificar qué bloque de código
se ejecuta.
Un bloque el código puede contener cero o más sentencias.
Qué bloque de código se ejecuta depende de resultado de la
evaluación de una condición de prueba, denominada
expresión booleana.
Un sentencia if en un programa que tiene el siguiente
formato general:
if ( <expresion booleana> )
<bloque then>
else
<bloque else>
Operadores relaciónales
< // menor que
<= // menor que o igual a
== // igual a
!= // distinto de
> // mayor que
>= // mayor que o igual a
Ejemplos
3 <= 5 //true
6 != 8 //true
5 == 4 //false
6 + 4 > 7 //true
4/5 + 8 == 8.8 //false
4.0/5 + 8 == 8.8 //true
43%5/3 +12/3/2 < 5 //true
Expresión Booleana
Bloque then
if (puntuacionPrueba < 11)
cout<<“No ha aprobado“;
else
cout<<“Ha aprobado”;
Bloque else
Diagrama de flujo
F o false
V o true
puntuacionPrue
ba < 11
Ha aprobado No ha
aprobado
Sentencias compuestas
Sentencias
compuestas
if (puntuacionPrueba < 11.0)
{
cout<<“No ha aprobado“;
cout<<“Inténtelo otra vez“;
}
else
{
cout<<“Ha aprobado“;
cout<<“Siga trabajando”;
}
Estilo
if (<expresion booleana>) {
}
else {
Estilo 1
}
if (<expresion booleana>)
{
}
Estilo 2 else
{
}
Reglas para escribir los
bloques then y else
1. Las llaves izquierda y derecha son necesarias para rodear
a las sentencias si el bloque then o el bloque else contienen
múltiples sentencias.
2. Las llaves no son necesarias si el bloque then o el bloque
else contienen una única sentencia.
3. No se necesita un punto y coma después de la llave
derecha.
Estructuras de Decisión
Decisión Simple
Es la toma de decisiones más sencilla se ejecutan
instrucciones si se cumple una condición.
Sintáxis: Puesto que se ejecuta una
If Condición Then evaluación lógica , la
condición tiene que aportar un
Instrucciones valor booleano de manera que
End if habrá necesariamente una
comparación.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (SI Anidados)
Definición:
Una estructura de decisión múltiple “SI Anidados” permite alterar el flujo
secuencial de una solución ejecutando un conjunto de pasos que dependen del
resultado de evaluar diferentes condiciones lógicas dentro de estructuras de decisión
simple o doble.
PSEUDOCODIGO EXPLICACIÓN:
SI (condición1) ENTONCES En el pseudocódigo mostrado, se
instrucciones1… puede apreciar un ejemplo de una
SINO estructura múltiple “SI Anidados”.
SI (condición2) ENTONCES
FORMATO EN Observe como se combinan
instrucciones2…
PSEUDOCODIGO SINO estructuras de decisión simple y
SI (condición3) ENTONCES estructuras de decisión doble.
instrucciones3… Tenga presente que para formar
FINSI una estructura múltiple “SI
FINSI Anidados” puede utilizar cualquier
FINSI combinación de estructuras de
decisión simple y doble.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (SI Anidados)
FORMATO EN C++
C++
OBSERVACIÓN:
if (condición1) {
sentencias1...
} else { El presente código desarrollado en
if (condición2) { C++ es la traducción del
sentencias2... pseudocódigo de la diapositiva
} else { anterior.
if (condición3) {
sentencias3…
}
}
}
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 1: Calcular el área de un rectángulo conociendo su
base y altura. Si el área es menor que 100, se deberá
visualizar el mensaje “rectángulo pequeño”; si el área es
mayor o igual a 100 y menor que 1000, se visualizará el
mensaje “rectángulo mediano”; y si el área es mayor o igual
que 1000, el mensaje será “rectángulo grande”.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: INICIO
base, altura NUMERO base, altura, area
SALIDA: TEXTO mensaje
LEER base, altura
area, mensaje area = base * altura
SI (area < 100)
ENTONCES
mensaje = “ rectángulo pequeño ”
SINO
SI (area >= 1000)
ENTONCES
mensaje = “ rectángulo grande ”
SINO
mensaje = “ rectángulo mediano ”
FINSI
FINSI
ESCRIBIR area, mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 2: Leer el sueldo de un trabajador y calcule
su aumento por incremento del costo de vida de
acuerdo a la siguiente tabla:
Tipo Monto
Sueldo < 2000 20%
2000 < =Sueldo < =3000 13%
Sueldo > 3000 9%
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: sueldo
SALIDA: nuevoSueldo
INICIO
NUMERO sueldo, nuevoSueldo
LEER sueldo
SI (sueldo < 2000)
ENTONCES
nuevoSueldo = sueldo * 1.2
SINO
SI (sueldo > 3000)
ENTONCES
nuevoSueldo = sueldo * 1.09
SINO
nuevosueldo = sueldo * 1.13
FINSI
FINSI
ESCRIBIR nuevoSueldo
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 3: Determinar si un número es divisor de
otro número; Utilice la expresión
(num1 RESTO num2 > 0)
donde “num1” y “num2” son los dos números.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: num1, num2
SALIDA: mensaje
INICIO
NUMERO num1, num2
TEXTO mensaje
LEER num1, num2
SI (num1 > = num2)
ENTONCES
SI (num1 RESTO num2 = 0)
ENTONCES
mensaje = “El segundo número es divisor del primer número”
SINO
mensaje = “El segundo número no es divisor del primer número”
FINSI
SINO
SI (num2 RESTO num1= 0)
ENTONCES
mensaje = “El primer número es divisor del segundo número”
SINO
mensaje = “El primer número no es divisor del segundo número”
FINSI
FINSI
ESCRIBIR mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 5: Diseñe una solución en C++ y Diagrama de flujo que permita ingresar y convertir
una cantidad en metros a sus equivalentes en centímetros, pulgadas, pies y yardas. Considere la
siguiente información:
1 metro = 100 cm.
1 pulgada = 2.54 cm.
1 pie = 12 pulgadas.
1 yarda = 3 pies.
Problema 6: Elabore una solución en C++ que ingrese un número entero e indique las siguientes
descripciones sobre el número ingresado:
-Si es positivo o negativo.
-Si es par o impar.
-Si es múltiplo de 3 o no.
-Si es menor que 500 o no.
(
Problema 7: Elabore una solución en C++ Calcular y mostrar el costo total que representa un
paciente para un hospital de acuerdo al tipo de enfermedad, según los datos de la tabla.
Adicionalmente, debe considerar que los pacientes de sexo femenino menores de 12 años
implican un costo adicional de 13%.
Enfermedad Tipo Costo diario por
paciente
1 122
2 234
3 345
4 587
Preguntas rápidas
1. Identifique las sentencias if inválidas
a. if(a < b) then c . if(a < b)
x = y; x = y;
else else {
x= z; x= z;
}
b. if ( a < b ) d. if ( a < b ) {
else x = y; x = y; } else
x = z;
2. Exprese las siguientes sentencias if-then usando if-then-else.
a. if ( a < b ) x = y;
b. if ( a < b ) {}
c. if ( a < b ) x = y;
if ( a >= b ) x = z;