Sei sulla pagina 1di 5

La estructura decisin

Elaborado por:
Carlos Andrs Arbelez Velsquez

La estructura decisin, usada correctamente en un algoritmo permite revisar si se cumple o no una
condicin y luego definir un grupo de instrucciones que se ejecutarn si la condicin se cumple, y
otro grupo distinto de instrucciones que se ejecutarn si la condicin no se cumple. Esta
funcionalidad permite que el computador pueda usarse para desarrollar soluciones a problemas
de la vida real donde se acta de diferente manera con respecto al resultado de la evaluacin de
una condicin.

Para comprender mas fcilmente la utilidad la estructura decisin, considere el siguiente ejemplo:

Situacin:
Suponga que usted y 7 de sus amigos (en total 8 personas) vistan una pizzera, al revisar el men
encuentran que existen dos tamaos de pizzas: la pizza pequea que tiene 4 porciones y la pizza
grande que tiene 8 porciones. Luego, al momento de decidir cul ser su pedido, debern analizar
la siguiente condicin:

Pregunta:
Es mas econmico pedir 2 pizzas pequeas (total 8 porciones), o pedir solo 1 pizza grande (total
8 porciones)?

La respuesta depender del precio de la pizza pequea y del precio de pizza grande as:

Condicin:
2*precio_de_la_pizza_pequea > precio_de_la_pizza_grande

La cual se lee as: dos veces el precio de la pizza pequea es mayor que el precio de la pizza
pequea?
Cuando la respuesta es esta pregunta sea SI (verdadero), entonces se deben pedir 2 pizzas
pequeas, 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 cul es la pregunta que se debe responder
2. Definir la condicin que expresa la pregunta que se debe responder
3. Definir que se debe hacer si la condicin es verdadera
4. Definir que se debe hacer si la condicin es falsa

Si se llegara a utilizar el computador ofrecer una solucin al problema de seleccionar el men que
se les ha presentado a los 8 amigos que visitaron la pizzera, la estructura decisin jugara un papel
fundamental. A continuacin se presenta un algoritmo que podra ser til:

Algoritmo SeleccinDeMenu
Variables: precio_de_la_pizza_pequena, precio_de_la_pizza_grande: numericaReal
INICIO
ESCRIBA(Ingrese el precio de la piza pequea: )
LEA(precio_de_la_pizza_pequena)
ESCRIBA(Ingrese el precio de la piza grande: )
LEA(precio_de_la_pizza_grande)
SI 2*precio_de_la_pizza_pequea > precio_de_la_pizza_grande
ESCRIBA(Se debe pedir una pizza grande)
DE_LO_CONTRARIO
ESCRIBA(Se debe pedir dos pizzas pequea)
FIN(SI)
FIN
FIN(SeleccinDeMenu)

Como se puede observar, utilizar la estructura decisin es un algoritmo es muy sencillo, basta con
apegarse a este formato de escritura

SI (Incluir en este espacio la condicin que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue NO)
FIN(SI)

Debe tenerse en cuenta que la condicin que se incluye despus de la palabra SI, debe ser una
expresin que al ser evaluada deber producir como resultado cierto o falso. Por lo tanto se debe
corresponder a una expresin booleana, o a una expresin en la que se relacionan algunas de las
variables del algoritmo a travs de los operadores relacionales.

Relaciones entre las estructuras decisin
En un algoritmo puede utilizarse ms de una vez la estructura decisin, por lo que se pueden dar
dos tipos de relaciones entre ellas segn la posicin relativa que ocupen unas con respecto a otras.

Estructuras de decisin secuenciales
Esta relacin se da cuando dos o mas estructuras de decisin son completamente independientes
y no dependen para nada entre si. Retomando el ejemplo del grupo de amigos que visitan una
pizzera, si en la misma situacin el grupo tambin de debiera decidir si es ms econmico
comprar 1 gaseosa de tamao grande en lugar de 8 gaseosas de tamao personal, entonces estas
dos decisiones son secuenciales, pues no tienen ninguna relacin entre si. El comprar uno u otro
tipo de pizza no tiene nada que ver con el tamao de gaseosa que compra el grupo.

A continuacin se presenta un algoritmo en el que se combina una decisin relacionada con el tipo
de pizza que compra el grupo y adicionalmente una decisin relacionada con el tamao de la
gaseosa. Se comprara si es ms econmico comprar 8 gaseosas tamao personal o una gaseosa
de 2 litros que posee el mismo contenido.

Algoritmo SeleccinDeMenuYGaseosa
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)
SI 2*precio_de_la_pizza_pequea > precio_de_la_pizza_grande
ESCRIBA(Se debe pedir una pizza grande)
DE_LO_CONTRARIO
ESCRIBA(Se debe pedir una pizza pequea)
FIN(SI)

LEA(precio_gaseosa_personal)
LEA(precio_gaseosa_2_litros)
SI 8* 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(SeleccinDeMenuYGaseosa)

Note que las estructuras de decisin secuenciales aparecen en los algoritmos en forma
consecutiva (primero una y despus 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 decisin anidadas
Esta relacin se da cuando dos o mas estructuras de decisiones son interdependientes, es decir
una o varias decisiones hacen parte de las instrucciones que deben ejecutarse cuando la
evaluacin de una condicin anterior fue verdadera o falsa. De una forma un poco mas practica,
se pude decir que una o varias decisiones estn anidadas cuando unas estn al interior de otras.
Retomando el ejemplo de la pizzera, suponga que el da que el grupo sali a comer se estaba
ofreciendo una promocin en la cual las pizzas pequeas venan una gaseosa personal gratis. Por
lo tanto la decisin sobre el tipo de gaseosa que se debe pedir va a ser afectado por el tamao de
tipo pizza que se haya elegido, pues si se llegan a pedir dos pizzas pequeas, entonces se tiene 2
gaseosas personales gratis y solo seria necesario comprar 6 adicionales.

A continuacin se presentan un algoritmo que incluye las nuevas condiciones que implica la
promocin ofrecida.

Algoritmo SeleccinDeMenuConPromocion
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)

LEA(precio_gaseosa_personal)
LEA(precio_gaseosa_2_litros)

SI 2*precio_de_la_pizza_pequea > precio_de_la_pizza_grande
ESCRIBA(Se debe pedir una pizza grande)
SI 8* 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)
DE_LO_CONTRARIO
ESCRIBA(Se debe pedir una pizza pequea)
SI 6* precio_gaseosa_personal > precio_gaseosa_2_litros
ESCRIBA(Se debe pedir una gaseosa 2 litros)
DE_LO_CONTRARIO
ESCRIBA(Se deben pedir 6 gaseosas personales)
FIN(SI)
FIN(SI)

FIN
FIN(SeleccinDeMenuConPromocion)

Note que cuando las instrucciones decisin estn anidadas, existen unas que estn al interior de
otras de niveles superiores por lo que estn desplazadas hacia la derecha.



La instruccin decisin en Matlab
La forma de representar la instruccin decisin 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 instruccin se escriben en el idioma ingles. La instruccin decisin en
Matlab se presenta a continuacin:

if (Incluir en este espacio la condicin que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue SI)
else
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue NO)
end

Que en los algoritmos corresponde a la siguiente instruccin decisin:

SI (Incluir en este espacio la condicin que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condicin la respuesta fue NO)
FIN(SI)

Potrebbero piacerti anche