Y MULTIPLES
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.
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>
< // menor que
<= // menor que o igual a
== // igual a
!= // distinto de
> // mayor que
>= // mayor que o igual a
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
Ha aprobado No ha aprobado
Sentencias
compuestas
if (puntuacionPrueba < 6.0)
{
cout<<“No ha aprobado“;
cout<<“Inténtelo otra vez“;
}
else
{
cout<<“Ha aprobado“;
cout<<“Siga trabajando”;
}
if (<expresion booleana>) {
}
else {
Estilo 1
}
if (<expresion booleana>)
{
}
Estilo 2
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.
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:
FORMATO EN C++
JAVA
OBSERVACIÓN:
if (condición1) {
sentencias1...
} else { El presente código desarrollado
if (condición2) { en C++ es la traducción del
sentencias2... pseudocódigo de la diapositiva
} else { anterior.
if (condición3) {
sentencias3…
}
}
}
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: INICIO
base, altura
NUMERO base, altura, area
SALIDA: TEXTO mensaje
area, mensaje LEER base, altura
area = base * altura
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Tipo Monto
Sueldo < 2000 20%
2000 < =Sueldo < =3000 13%
Sueldo > 3000 9%
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: sueldo
SALIDA: nuevoSueldo
INICIO
LEER sueldo
FINSI
ESCRIBIR nuevoSueldo
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
INICIO
NUMERO num1, num2
TEXTO mensaje
LEER num1, num2
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
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;
Tres operadores booleanos son AND, OR y NOT.
En Java, los símbolos &&, ||, y ! representan los operadores
AND, OR y NOT respectivamente.
Operadores booleanos y su
significado.
A B A&&B A||B !A
F F F F V
F V F V V
V F F V F
V V V V F
V = verdadero, F = falso
(2 == (5-3)) || !(3 < 2) && (27%4 == 3)
(2 == (2) ) || !( F ) && ( 3 == 3)
V || !( F ) && V
V || V && V
V || V
V
Acción del
caso b caso b
break;
Acción del
caso z caso z
break;
Acción por
omisión
El siguiente fragmento de código imprime un letrero si un
número es primo y mayor que cero y menor que 10, otro
letrero si es no primo y mayor 1ue cero y menor que 10 y otro
letrero si es menor que 1 o mayor que 10.
switch (num){
case 1:case 2:case 3:case 5:case 7:
cout<<“primo, >0 y <10”;break;
case 4:case 6:case 8:case 9:
cout<<“No primo, >0 y <10”;break;
default: cout<<“<1 o >10”;
}
Escriba una sentencia switch que para desplegar un
mensaje con el día de la semana dada una variable dia con
valores de 0 a 6.
switch (dia){
case 0:cout<<“Domingo”; break;
case 1:cout<<“Lunes”; break;
case 2:cout<<“Martes”;break;
case 3:
case 4:
case 5:
case 6:
default:cout<<“día incorrecto”;
}
2. Escriba un a sentencia switch para desplegar el letrero “día
habil” si una variable diaSemana vale de 1 a 5, desplegar
“sabado” si vale 6 y “domingo” si vale 0.
switch (dia){
case 0:System.out.println(“Domingo”); break;
case 1:case 2:case 3:case 4:case 5:
cout<<“día hábil”; break;
case 6:cout<<“Sabado”; break;
default: cout“día incorrecto”;
}
Escriba un sentencia switch para calcular el pago de horas extra a un trabajador.
Si las horas son entre semana se le pagará el doble por hora extra, si es el sábado el triple
y si es domingo el cuádruple.
Suponga las variables horas, para las horas, dia para el día de la semana, pagoPorHora
para el pago por hora normal y pagoTotal para el pago total.
switch (dia){
case 0:pagoTotal = 4*pagoPorHora*horas; break;
case 1:case 2:case 3:case 4:case 5:
pagoTotal = 2*pagoPorHora*horas; break;
case 6:pagoTotal = 3*pagoPorHora*horas;
}
if(dia == 0)
pagoTotal = 4*pagoPorHora*horas;
if(dia == 1 || dia == 2 || dia==3 || dia == 4 || dia == 5)
pagoTotal = 2*pagoPorHora*horas;
if(dia == 6)
pagoTotal = 3*pagoPorHora*horas;