Está en la página 1de 14

Algoritmos Cuarta Semana

IS 141

Estructuras de Decisión
Las estructuras de decisión o también llamadas de selección permiten que el algoritmo
tome decisiones y ejecute u omita algunos procesos dependiendo del cumplimiento de
una condición, permitiendo seleccionar la próxima sentencia a ejecutarse y en función
del resultado de la valuación, se bifurcará a un determinado punto para continuar la
ejecución del programa.

 Condición
Expresión lógica o una variable lógica.

 Resultado
Verdadero o falso.

 Flujo de control
Habilidad de definir el orden en el cual las sentencias de un programa son ejecutadas.

Se pueden manejar tres tipos de decisiones: simple, doble y múltiple.

a. Decisión simple.
Se ejecuta una determinada acción, cuando se cumple una determinada condición.

Esta estructura evalúa la condición, luego:


 Si la condición es cierta entonces ejecuta el conjunto de sentencias definidas por
Si.
 Si la condición es falsa entonces no ejecuta el conjunto de sentencias definidas
por Si.

Una decisión es simple (Si / if), cuando solo se tiene determinado los pasos a seguir si
el resultado de la condición es verdadero, mientras que si es falso, la ejecución del
algoritmo continúa después de la estructura condicional.

Diagrama de Flujo

Verdad Falso
?
Condición
Condición

Acciones

Ingeniería de Sistemas – UNSCH Página 1


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Cuarta Semana
IS 141

Pseudocódigo en Español

Si ˂ condición ˃ Entonces
˂ Acción S1 ˃
˂ Acción S2 ˃
.
.
.
˂ Acción Sn ˃
Fin_si

Código en Java
if (<condición>)
{
˂ Acción S1 ˃
˂ Acción S2 ˃
.
.
.
˂ Acción Sn ˃
}

Ejemplos
Pseudocódigo Código java
Realizar un algoritmo que lea un número por
teclado y escriba en pantalla positivo si es mayor
que cero.

1. Inicio
2. Leer numero
3. Si (numero > 0) Entonces If ( numero >0)
4. Escribir “ Número positivo” {
System.out.println(“El número es positivo”);
5. Fin_Si. }
6. Fin.
Realizar un algoritmo que lea dos número por
teclado (a y b). Si a es menor que b, entonces
imprima en pantalla la suma de los números.

1. Inicio
2. Leer a,b
3. Si (a <b) Entonces
4. Escribir (a+b) If ( a<b)
System.out.println(“La suma” + (a+b));
Ingeniería de Sistemas – UNSCH Página 2
Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Cuarta Semana
IS 141

5. Fin_Si.
6. Fin
Otra forma

1. Inicio
2. Leer a,b
If ( a<b)
3. Si (a <b) Entonces
{
4. s=a+b
s=a+b;
5. Escribir “La suma” s
System.out.println(“La suma es” +s);
}
6. Fin_Si.
7. Fin

NOTA:
Cuando hay una sola instrucción a ejecutarse
dentro del if, las llaves son opcionales.

b. Decisión doble.
Permite elegir entre dos opciones o alternativas posibles, en función del cumplimiento o
no de la condición:
 Si el resultado de evaluar la condición el CIERTO se ejecutará un
determinado grupo de instrucciones S1,
 Si el resultado de evaluar la condición es FALSO se ejecutará otro grupo de
instrucciones S2,

Una decisión es doble (Si- Si_no / if - else), cuando se tiene un curso de acción para el
caso que el resultado de la comparación sea verdadero y otro para cuando sea falso.

Pseudocódigo en Español

Si ˂ condición ˃ Entonces
˂ Acción S1 ˃
Si_no
˂ Acción S2 ˃
Fin_si

Código en Java

if (condición )
˂ Acción S1 ˃
else
˂ Acción S2 ˃

Ingeniería de Sistemas – UNSCH Página 3


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Cuarta Semana
IS 141

Diagrama de Flujo

Verdad Falso
?
Condi?ción
Condición

Acción S1 Acción S2

Ejemplos
Pseudocódigo Código java
Realizar un algoritmo que lea la nota (n) de un
alumno y escriba en pantalla si está aprobado o
desaprobado.

7. Inicio
8. Leer n
9. Si (n > 10) Entonces if ( n >10)
10. Escribir “ Aprobado” {
11. Si_no System.out.println(“Aprobado”);
12. Escribir “ Desaprobado” }
Else
13. Fin_Si. {
14. Fin. System.out.println(“Desaprobado”);
}

c. Decisión múltiple (según_sea, caso de / switch case)


Muchas decisiones deben tomarse, no solo entre dos alternativas, sino de un conjunto
mayor. Estos casos bien pueden solucionarse utilizando condicionales dobles anidados;
sin embargo, en favor de la claridad del algoritmo y la facilidad para el programador, es
mejor utilizar una estructura de decisión múltiple, la cual es fácil de llevar a un lenguaje
de programación, ya que éstos incluyen alguna instrucción con este fin.

La decisión múltiple determina el valor de una variable y dependiendo de éste sigue un


curso de acción. Es importante tener en cuenta que solo se verifica la condición de
igualdad entre la variable y la constante.

Ingeniería de Sistemas – UNSCH Página 4


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Pseudocódigo en Español

Según_sea expresión (E) Hacer


E1: accion S11
accion S12
accion S13
.
.
.
E2: accion S21
accion S22
accion S23
.
.
.
En: accion Sn1
accion Sn2
accion Sn3
.
.
.
accion Snn
Si_no: accion Sx
Fin_segun

Diagrama de Flujo

condicion
E

E1 E2 E3 E4 En

Accion S1 Accion S2 Accion S3 Accion S4 … Accion Sn

Ingeniería de Sistemas – UNSCH Página 5


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Estructuras de decisión anidadas.

Las estructuras de decisión anidadas están contenidas unas dentro de otras.

Pseudocódigo en Español código en Java

if (condición1)
Si (condición1) entonces sentencia1
sentencias1
Si no else
if (condición2)
sentencia2
Si (condición2) entonces
sentencias2 else
Si no if (condición3)
Si (condición3) entonces sentencia3
sentencias3
Fin_Si
Fin_Si

Fin_Si

Ejemplos:
1. Se desea un algoritmo para obtener el valor absoluto de un número

Definición del problema


Encontrar el valor absoluto de un número

Análisis del problema


Para encontrar el valor absoluto del número es necesario recordar que para los enteros
positivos el valor es el mismo, mientras que para los enteros negativos es necesario
cambiarlos de signo.
Datos de entrada: número
Datos de salida: valor absoluto
Proceso: número = número * (-1)

Diseño de la solución

Pseudocódigo

Inicio
Leer Num
Si (Num ˂ 0) Entonces
Absnum= Num * (-1)
Si_no
Absnum= Num
Fin_si
Escribir Absnum
Fin

Ingeniería de Sistemas – UNSCH Página 6


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Diagrama de Flujo

Inicio

Leer Num

Verdadera Falsa
Condición
Num ˂ 0

Absnum= Num*(-1) Absnum= Num

Escribir Absnum

Fin

2. diseñar un algoritmo que dados dos números identifique: ¿cuál es mayor? y


¿cuál es menor?

Definición del problema


Identificar el mayor y menor de dos números

Análisis del problema


Datos de entrada: num1, num2
Datos salida: mayor, menor
Proceso: comparación

Diseño de la solución
Ingeniería de Sistemas – UNSCH Página 7
Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Pseudocódigo Diagrama de Flujo

Inicio
Leer N1,N2

Si (N1˂ N2 Entonces
Escribir N1 Menor
Escribir N2 Mayor

Si_no
Escribir N2 Menor
Escribir N1 Mayor

Fin_si

Fin

3. Una empresa desea calcular los nuevos salarios de sus empleados de la siguiente
forma: quienes ganan hasta $ 1500.00 tendrán un incremento del 10%, quienes
devengan más de $ 1500.000 y hasta 1800.000 recibirán un aumento del 8% y los
demás del 5%. ¿Cuál será el valor del aumento? ¿Cuál será el valor del nuevo sueldo?

Definición del problema


Calcular el valor a incrementar y el valor del nuevo sueldo de los empleados.

Análisis del problema


El porcentaje de incremento en el sueldo depende del valor del sueldo actual, los
sueldos más bajos tienen un mayor incremento:
10% para sueldo <= $ 1500.000
8% para $ 1500.000 < sueldo <= $ 1800.000
5% para sueldo > 1800.000
Datos de entrada: sueldo
Datos de salida: aumento, nuevo sueldo
Proceso:
aumento = sueldo * porcentaje ; donde porcentaje = 5, 8 o 10%
nuevo sueldo = sueldo + aumento

Diseño de la solución

Ingeniería de Sistemas – UNSCH Página 8


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Pseudocódigo Diagrama de Flujo

Inicio
Leer Sue

Si (Sue˂= 1500) Entonces


Por=10
Si_no

Si (Sue˂= 1800) Entonces


Por=8
Si_no
Por=5
Fin_si

Fin_si

Aum=Sue * Por /100


Nsue=Sue +Aum
Escribir Nsue, Aum
Fin

4. Una distribuidora de motocicletas tiene una promoción de fin de año que consiste en
los siguiente. Las motos marca HONDA tienen un descuento del 5%, las de marca
Yamaha del 8% y las Suzuki el 10%, las de otras marcas el 2%

Definición del problema


Calcular el valor del descuento y el valor a pagar por la motocicleta.

Análisis del problema


Porcentaje descuento = 5% para motos Honda
Porcentaje descuento = 8% para motos Yamaha
Porcentaje descuento = 10% para motos Suzuki
Porcentaje descuento = 2% para motos otras marcas
Datos de entrada: marca, valor
Datos de salida: descuento, valor a pagar
Proceso:
descuento = valor * porcentaje
Valor neto = valor - descuento

Diseño de la solución
Pseudocódigo

Inicio
Leer Marca, Valor
Ingeniería de Sistemas – UNSCH Página 9
Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Según_sea (Marca) Hacer


“Honda” : Por_des = 5
“Yamaha” : Por_des = 8 .
“Suzukia” : Por_des = 10 .
Si_no : Por_des = 2 .

Fin_segun
Val_des =Valor *Por_des /100
Val_neto=Valor - Valdes
Escribir Marca, Valor, Valor_des, Val_neto
Fin

Diagrama de Flujo

Ingeniería de Sistemas – UNSCH Página 10


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Inicio

Leer
Marca, valor

Marca

Honda Yamaha Suzuki Si_no

Por_des=5 Por_des=8 Por_des=10 Por_des=2

Val_des =Valor *Por_des /100


Val_neto=Valor - Valdes

Escribir
Marca, Valor,
Val_des, Val_net

Fin

5. En una Universidad, los pagos por curso desaprobado son de 50 soles, con un cargo
máximo de 300 soles independiente del número de cursos tomados. Ejemplo si un
alumno desaprueba 3 cursos pagaría 150 soles, mientras que uno que desaprueba 7
cursos paga 300 soles. Escriba el algoritmo de un programa en el que las entradas sean
el número de cursos desaprobados y la salida sea el valor del pago total que el alumno
haga por los cursos desaprobados

6. De los estudiantes que se matriculan en la UNSCH, los ex soldados pagan 30 soles


por curso en el que se matriculen, mientras que los demás (regulares), pagan 50 soles
por curso. Diseñe el algoritmo para escribir un programa en el que el usuario introduce
los datos del estudiante (ex soldado o regular) y el número de cursos y las salidas sean
la categoría del estudiante (ex soldado o regular), número de cursos y los costos totales
por los cursos a llevar.
Ingeniería de Sistemas – UNSCH Página 11
Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Pseudocódigo
Inicio
Leer categoría, numcursos
Si (categoría es exsoldado) entonces
Pago: nc*30
Escribir "ex soldado", numcursos, Pago
Si_no
Pago: nc*50
Escribir "ex soldado", numcursos, Pago
Fin_si
Fin

7. En la ciudad de Ayacucho, una agencia de seguros para automóviles asigna costos


basados en el sexo y la edad del conductor. Los varones menores de 25 años pagan los
precios más altos, 1000 soles. Los varones de 25 años o más años pagan 700 soles. Las
mujeres de menos de 21 años pagan 800 soles, mientras que las mujeres de 21 años o
más pagan 500 soles. Escribir el algoritmo del programa que imprima la edad del
conductor, sexo, y el pago correspondiente para los clientes de la aseguradora.

Pseudocódigo
Inicio
Leer sexo, edad
Si (sexo es masculino) entonces
Si (edad<25) entonces
Pago:1000
Escribir edad, sexo, pago
Si_no
Pago:700
Escribir edad, sexo, pago
Fin_si
Si no
Si (edad<21) entonces
Pago:800
Escribir edad, sexo, pago
Si_no
Pago:500
Escribir edad, sexo, pago
Fin si
Fin si
Fin

8. En una tienda donde se venden sillas, si se compran más de 8 el costo por cada una es
de 10 soles; entre 4 y 8 es de 11 soles cada una, si la compra es menor de 4 el costo es
de 15 soles cada una. Escriba el algoritmo para escribir un programa y saber cuanto
pagará un cliente según el número de sillas que compra. Debe imprimirse el número de
sillas que compra y el total a pagar.

Ingeniería de Sistemas – UNSCH Página 12


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

Pseudocódigo

Inicio
Leer num
Si (num<=8) entonces
Si (num<=4) entonces
tot =num*15
Si_no
tot=num*11
Fin si
Si_no
tot=num*10
Fin si
Escribir tot
Fin

9. Hacer un algoritmo para escribir un programa que devuelva el nombre del día de la
semana siguiendo un orden de correspondencia (1, 2, 3...7) para (lunes, martes,
miércoles... domingo) respectivamente.

Pseudocódigo
Inicio
Leer número
Según_sea (número) hacer
1: Escribir " LUNES"
2: Escribir "MARTES"
3: Escribir "MIERCOLES"
4: Escribir "JUEVES"
5: Escribir "VIERNES"
6: Escribir "SABADO"
7: Escribir "DOMINGO"
Si no
Escribir "SOLO NÚMEROS ENTRE 1 Y 7........ "
Fin selección
Fin

10. Hacer el algoritmo para un programa que calcule:


- El valor del área de un triángulo, dada la base y la altura.
- El valor de la base de un triángulo dada la altura y el área.
- El valor de la altura de un triángulo dada la base y el área.

Pseudocódigo

Inicio
Leer opcion
Según_sea (opcion) Hacer
Caso 1:
Leer base, altura
Ingeniería de Sistemas – UNSCH Página 13
Elinar Carrillo Riveros
Jennifer Pillaca De La cruz
Algoritmos Tercera Semana
IS 141

area: (base*altura)/2
Escribir area
Caso 2:
Leer area, altura
base: 2*area/altura
Escribir base
Caso 3:
Leer area,base
altura: 2*area/base
Escribir altura
Si_no
Escribir " ESO ES TODO AMIGO
Fin selección
Fin

Ejercicios.
1. Dado 5 notas de un alumno, eliminar la menor y calcular el promedio. Imprimir si
el alumno esta aprobado o desaprobado.
2. Determine las raíces reales o imaginarias que pueda obtener de la ecuación
ax2+bx+c
3. Ingresar un número entero e imprimir su respectivo valor en romana.
4. Ingresar un número entero e imprimir su respectivo valor en letras.

Ingeniería de Sistemas – UNSCH Página 14


Elinar Carrillo Riveros
Jennifer Pillaca De La cruz

También podría gustarte