T004: Algoritmos condicionales

publicado a la‎(s)‎ 17 sept 2012, 15:29 por Hernan Nina Hanco   [ actualizado el 15 nov 2012, 5:44 ]
Los programas de modo secuencial, se ejecutan una sentencia después de otra. La ejecución comienza con la primera sentencia y prosigue hasta la Última sentencia, cada una de las cuales se ejecuta una sola vez. Esta forma de programación es adecuada para resolver problemas sencillos. Sin embargo, para la resolución de problemas de tipo general se necesita la capacidad de controlar cuáles son las sentencias que se ejecutan, en qué momentos. Las estructuras o construcciones de control controlan la secuencia o flujo de ejecución de las sentencias. Las estructuras de control se dividen en tres grandes categorías en función del flujo de ejecución: secuencia, selección y repetición. En este apartado se considera las estructuras selectivas o condicionales.

Estructuras de control
Las estructuras de control controlan el flujo de ejecución de un programa o función. Las estructuras de control permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida.

La Sentencia Si o if
La estructura de control de selección principal es una sentencia "Si" (if). La sentencia "Si" tiene dos alternativas o formatos posibles. El formato más sencillo tiene la sintaxis siguiente:


PseudocódigoPascal             
Si (Expresión) Entonces
Inicio
    Acción
Fin
If (Expresion) then
begin
    Accion
end 

La sentencia if o si funciona de la siguiente manera. Cuando se alcanza la sentencia if dentro de un programa, se evalúa la expresión entre paréntesis que viene a continuación de if. Si Expresión es verdadera, se ejecuta Acción; en caso contrario no se ejecuta Acción (en su formato más simple, Acción es una sentencia simple y en los restantes formatos es una sentencia compuesta). En cualquier caso la ejecución del programa continúa con la siguiente sentencia del programa.

Sentencia if o si de dos alternativas if-else

Un segundo formato de la sentencia if es la sentencia if-else, Esta formato de la sentencia If tiene la siguiente sintaxis:
if (Expresion) then Acción1 else Acción2 
Expresión: Expresión lógica que determina la acción a ejecutar
Acción1: Acción que se realiza si la expresión lógica es verdadera
Acción2: Acción que se ejecuta si la expresión lógica es falsa

Acción 1 y 2 son sentencias individuales o compuestas 

Sentencia if-else Anidadas

Hasta este punto, las sentencias if implementan decisiones que implican una o dos alternativas. En esta sección, se mostrará como se puede utilizar la sentencia if para implementar decisiones que impliquen diferentes alternativas. Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia if. Una sentencia if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas.

Sintaxis
 Pseudocódigo
Si (Condición) Entonces
    Sentencia
Caso Contrario si (Condición) entonces
                        
sentencia
Caso Contrario si (condición) entonces
                        sentencia
caso contrario
                        sentencia        


Ejemplo: Incrementar contadores de números positivos, números negativos o ceros.
Formato 1

Si (x>0) entonces
    numpos=numpos+1
caso contrario si (x<0) entonces
        numneg=numneg+1
caso contrario
        numcero=numcero+1


Formato 2

Si (x>0) entonces
    numpos=numpos+1
    caso contrario
        si (x<0) entonces
            numneg=numneg+1
        caso contrario
            numceros=numceros+1

La sentencia if anidada tiene tres alternativas. Se incrementa una de las tres variables (numpos,numneg y numceros) en 1, dependiendo de que x sea mayor que cero, menor que cero o igual a cero, respectivamente. Las cajas muestran la estructura lógica de la sentencia if anidada; la segunda sentencia if es la acción o tarea falsa (a continuación de else) de la primera sentencia if. La ejecución de la sentencia if anidada se realiza como sigue: se comprueba la primera condición (x > O); si es verdadera, numpos se incrementa en 1 y se salta el resto de la sentencia if. Si la primera condición es falsa, se comprueba la segunda condición (x < O); si es verdadera numneg se incrementa en uno; en caso contrario se incrementa nunceros en uno. Es importante considerar que la segunda condición se comprueba sólo si la primera condición es falsa.

Comments