ESTRUCTURA DECISIÓN
La estructura
decisión, usada correctamente en un algoritmo permite revisar si se cumple o no
una condición y luego definir un grupo de instrucciones que se ejecutarán si la
condición se cumple, y otro grupo distinto de instrucciones que se ejecutarán
si la condición no se cumple. Esta funcionalidad permite que el computador
pueda usarse para desarrollar soluciones a problemas de la vida real donde se
actúa de diferente manera con respecto al resultado de la evaluación de una
condición.
Para comprender más
fácilmente la utilidad la estructura decisión, considere el siguiente ejemplo:
Situación:
Suponga que usted y
7 de sus amigos (en total 8 personas) vistan una pizzería, al revisar el menú
encuentran que
existen dos tamaños de pizzas: la pizza pequeña que tiene 4 porciones y la
pizza
grande que tiene 8
porciones. Luego, al momento de decidir cuál será su pedido, deberán analizar
la siguiente
condición:
Pregunta:
¿Es
mas económico pedir 2 pizzas pequeñas (total 8 porciones), o pedir solo 1 pizza
grande (total
8
porciones)?
La respuesta
dependerá del precio de la pizza pequeña y del precio de pizza grande así:
Condición:
2*precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
La
cual se lee así: ¿dos veces el precio de la pizza pequeña es mayor que el
precio de la pizza mediana?
Cuando la respuesta
es esta pregunta sea SI (verdadero), entonces se deben pedir 2 pizzas pequeñas, pero si la respuesta es NO (falso)
entonces se debe pedir solo 1 grande.
En este sencillo
ejemplo se ha utilizado un proceso de racionamiento muy simple:
1. Definir cuál es
la pregunta que se debe responder
2. Definir la
condición que expresa la pregunta que se debe responder
3. Definir que se
debe hacer si la condición es verdadera
4. Definir que se
debe hacer si la condición es falsa
Si se llegara a
utilizar el computador ofrecer una solución al problema de seleccionar el menú
que
se les ha
presentado a los 8 amigos que visitaron la pizzería, la estructura decisión
jugaría un papel fundamental. A continuación se presenta un algoritmo que
podría ser útil:
Algoritmo
SelecciónDeMenu
Variables:
precio_de_la_pizza_pequena, precio_de_la_pizza_grande: numericaReal
INICIO
LEA(precio_de_la_pizza_pequena)
LEA(precio_de_la_pizza_grande)
SI2* precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
ESCRIBA(“Se
debe pedir una pizza grande”)
DE_LO_CONTRARIO
ESCRIBA(“Se
debe pedir una pizza pequeña”)
FIN(SI)
FIN
FIN(SelecciónDeMenu)
Como se puede
observar, utilizar la estructura decisión es un algoritmo es muy sencillo,
basta con apegarse a este formato de escritura
SI
(Incluir en este espacio la condición que se va a evaluar)
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la condición
la respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la condición
la respuesta fue NO)
FIN(SI)
Debe tenerse en
cuenta que la condición que se incluye después de la palabra SI, debe ser una expresión
que al ser evaluada deberá producir como resultado cierto o falso. Por lo tanto
se debe corresponder a una expresión booleana, o a una expresión en la que se
relacionan algunas de las variables del algoritmo a través de los operadores
relacionales.
Relaciones
entre las estructuras decisión
En un algoritmo
puede utilizarse más de una vez la estructura decisión, por lo que se pueden
dar dos tipos de relaciones entre ellas según la posición relativa que ocupen
unas con respecto a otras.
Estructuras
de decisión secuenciales
Esta relación se da
cuando dos o más estructuras de decisión son completamente independientes y no
dependen para nada entre sí. Retomando el ejemplo del grupo de amigos que
visitan una pizzería, si en la misma situación el grupo también de debiera
decidir si es más económico comprar 1 gaseosa de tamaño grande en lugar de 8
gaseosas de tamaño personal, entonces estas dos decisiones son secuenciales,
pues no tienen ninguna relación entre sí. El comprar uno u otro tipo de pizza
no tiene nada que ver con el tamaño de gaseosa que compra el grupo.
A continuación se
presenta un algoritmo en el que se combina una decisión relacionada con el tipo
de pizza que compra el grupo y adicionalmente una decisión relacionada con el
tamaño de la gaseosa. Se comprara si es más económico comprar 8 gaseosas tamaño
personal o una gaseosa de 2 litros que posee el mismo contenido.
Algoritmo
SelecciónDeMenuYGaseosa
Variables:
precio_de_la_pizza_pequena, precio_de_la_pizza_grande,
precio_gaseosa_personal,
precio_gaseosa_2_litros: numericaReal
INICIO
LEA(precio_de_la_pizza_pequena)
LEA(precio_de_la_pizza_grande)
SI2*precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
ESCRIBA(“Se debe
pedir una pizza grande”)
DE_LO_CONTRARIO
ESCRIBA(“Se debe
pedir una pizza pequeña”)
FIN(SI)
LEA(precio_gaseosa_personal)
LEA(precio_gaseosa_2_litros)
SI8*precio_gaseosa_personal>precio_gaseosa_2_litros
ESCRIBA(“Se debe
pedir una gaseosa 2 litros”)
DE_LO_CONTRARIO
ESCRIBA(“Se deben
pedir 8 gaseosas personales”)
FIN(SI)
FIN
FIN(SelecciónDeMenuYGaseosa)
Note que las
estructuras de decisión secuenciales aparecen en los algoritmos en forma
consecutiva
(primero una y después otra), aunque eventualmente pueden estar separadas por
otras instrucciones
lo importante es que las instrucciones de cada una de las decisiones son
totalmente
independientes.
Estructuras
de decisión anidadas
Esta relación se da
cuando dos o más estructuras de decisiones son interdependientes, es decir una
o varias decisiones hacen parte de las instrucciones que deben ejecutarse
cuando la evaluación de una condición anterior fue verdadera o falsa. De una
forma un poco mas practica,
se pude decir que
una o varias decisiones están anidadas cuando unas están al interior de otras.
Retomando el
ejemplo de la pizzería, suponga que el día que el grupo salió a comer se estaba
ofreciendo una
promoción en la cual las pizzas pequeñas venían una gaseosa personal gratis.
Por
lo tanto la
decisión sobre el tipo de gaseosa que se debe pedir va a ser afectado por el
tamaño de
tipo pizza que se
haya elegido, pues si se llegan a pedir dos pizzas pequeñas, entonces se tiene
2
gaseosas personales
gratis y solo seria necesario comprar 6 adicionales.
A continuación se
presentan un algoritmo que incluye las nuevas condiciones que implica la
promoción ofrecida.
Note que cuando las
instrucciones decisión están anidadas, existen unas que están al interior de
otras de niveles
superiores por lo que están desplazadas hacia la derecha.
La
instrucción decisión en Matlab
La forma de
representar la instrucción decisión en Matlab y bastante sencilla y corresponde
directamente a
sintaxis que se describe en los algoritmos anteriores, con la diferencia de que
las
palabras que
componen la instrucción se escriben en el idioma ingles. La instrucción
decisión en
Matlab se presenta
a continuación:
if
(Incluir en este espacio la condición que se va a evaluar)
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la
respuesta fue SI)
else
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la
respuesta fue NO)
end
Que en los
algoritmos corresponde a la siguiente instrucción decisión:
SI
(Incluir en este espacio la condición que se va a evaluar)
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la
respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este
espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la
respuesta fue NO)
FIN(SI)
RESUMEN Y EJEMPLOS
La estructura decisión permite instruir al computador para
que ejecute ciertas acciones (instrucciones) según alguna condición.
Forma general
SI condición
Instrucciones cuando la condición
es verdadera
DE_LO_CONTRARIO
Instrucciones cuando la condición
es falsa
Fin(SI)
Pasos para la estructura decisión
Definir
cuál es la pregunta que se debe responder
Definir
la condición que expresa la pregunta que se debe responder
Definir
qué se debe hacer si la condición es verdadera
Definir qué se debe hacer si la condición es falsa
Ejemplos de condiciones
A
= 4
B
= 6
A
> B Falsa
(A
+ B) >= 2 Verdadera
Nombre
== “pepe”
Tipo == “A”
Ejemplo
Elabore un algoritmo que lea el salario actual de un
empleado y calcule e imprima el nuevo salario de acuerdo a la siguiente
condición: si el salario es menor que 1000 pesos, aumentar el 10%, de lo
contrario no hacer aumento.
solución:
Ejemplo 2
Elabore un algoritmo que lea 2 números y diga cual es el
mayor de ambos. Ambos números deben ser diferentes.
solución:
Entrada:
•Primer
número: a
•Segundo
número: b
Salida:
•Número mayor
Análisis:
•La condición es a > b, también b > a o
cualquier expresión relacional que compare ambos números.
Algoritmo mayor
Variables:
a,
b : enteros
INICIO
ESCRIBA(“Ingrese
el primer número”)
LEA(a)
ESCRIBA(“Ingrese
el segundo número”)
LEA(b)
SI
a > b
ESCRIBA(“el
mayor es”, a)
DE_LO_CONTRARIO
ESCRIBA(“el
mayor es”, b)
Fin(SI)
FIN
Fin(mayor).
Ejemplo 3
Solución:
Ejemplo 4
Solución:
Dentro de la estructura decisión SI que representa una condición hay instrucciones con la estructura decisión (SI, DE_LO_CONTRARIO). Así:
Ejemplo 5
Ejemplo 6
Escriba un algoritmo que dados los datos a y b, escriba un mensaje diciendo si a es mayor, menor o igual a b.
Solución:
El actual trabajo se realizo con la ayuda de las notas obtenidas de la clase de algoritmos y programación dictada por el docente Angel rey de la universidad de Antioquia en el el siguiente Link
No hay comentarios:
Publicar un comentario