Estructuras de Control: Condicionales
Estructuras Condicionales
En un algoritmo se tiene una lista de enunciados o instrucciones que se van ejecutando a medida que se van interpretando secuencialmente. Sin embargo, en ocasiones nos interesa controlar el flujo de la ejecución estableciendo alternativas, es decir, que una serie de enunciados se ejecuten en algunas ocasiones y en otras no. Para permitir esto existen las estructuras condicionales.
No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando hay que tomar una decisión aparecen las estructuras condicionales.
En nuestra vida diaria se nos presentan situaciones donde debemos decidir.
¿Elijo la carrera A o la carrera B?
¿Me pongo este pantalón?
Para ir al trabajo, ¿elijo el camino A o el camino B?
Al cursar una carrera, ¿elijo el turno mañana, tarde o noche?
Por supuesto que en un problema se combinan estructuras secuenciales y condicionales.
Las estructuras condicionales 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. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.
Selección simple o condicional
Es una estructura de control que permite ejecutar un grupo de acciones dependiendo de alguna condición lógica. Las estructuras de control permiten controlar el flujo del programa para determinar cuáles acciones se ejecutan y cuáles no. En este tipo de estrucuta se ejecutan un conjunto de acciones si y sólo si, se cumple o se hace verdadera la condición.
La notación que usaremos es:
if <condición> then
...
Endif
La representación gráfica a través de un diagrama de flujo es la siguiente:
Ejemplo: dados dos números determinar cuál es el mayor
Procedure Main()
Integer A, B, Max;
Read(A);
Read(B);
Max = A;
if (B > A) then
Max = B;
endif
Write(Max);
EndProcedure
Selección doble o condicional doble
La estructura selectiva simple es muy fácil de usar y muy común pero en ocasiones tenemos necesidad de decirle al programa para si no se cumple una condición que nos realice una determinada tarea y si se cumple nos haga otra. El punto principal de esta estructura es que es posible también indicar que acciones llevar a cabo en caso de que la condición sea falsa.
La notación que usaremos es:
if <condición> then
...
else
...
endif
La representación gráfica a través de un diagrama de flujo es la siguiente:
Por ejemplo, otra forma de buscar el máximo de dos números:
Procedure Main()
Integer A, B, Max;
Read(A);
Read(B);
if (B > A) then
Max = B;
else
Max = A;
endif
Write(Max);
EndProcedure
Condicionales Anidados
Es posible también anidar varios condicionales para expresar condiciones más complejas. Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional.
Ejemplo de notación:
if <condici_on1> then
...
else
...
if <condici_on2> then
...
else
...
if <condici_on3> then
...
else
...
endif
...
endif
...
endif
La representación gráfica a través de un diagrama de flujo es la siguiente:
Selección Múltiple
Es una estructura de control, que se utiliza en problemas donde es necesario realizar un análisis por casos, es decir, permite tratar problemas donde las acciones a tomar dependan de la evaluación de ciertas condiciones. La notación que vamos a utilizar, es la siguiente:
Select
<condición1>: ...
<condición2>: ...
...
<condiciónN>: ...
EndSelect
De esta forma es posible plantear varias condiciones distintas. Es necesario que una sola de los posibles condiciones puede satisfacerse en un momento, y deben contemplarse todos los casos posibles.
La representación gráfica a través de un diagrama de flujo es la siguiente:
Por ejemplo, para hallar el máximo entre dos valores:
Select
A > B : Max = A;
A == B : Max = A;
A < B : Max = B;
EndSelect