ALGORITMOS – BLOQUES CONDICIONALES


En la entrada introductoria al Diseño y Desarrollo de software, explicamos las etapas básicas para esta labor, en el punto de la programación mostramos que se requiere plasmar la lógica mediante un seudo-código a esto lo llamamos algoritmo, el cual mas adelante se debe “traducir” a un lenguaje de programación para convertirse en un programa de computador; a esta acción se le denomina CODIFICACIÓN. En ese entonces dimos ejemplos y planteamos problemas que podían ser solucionados mediante ALGORITMOS cuyos pasos seguían un orden estricto desde la primera hasta la última instrucción.

Sin embargo, la mayoría de los problemas exigen que dependiendo de las circunstancias, se tome uno de varios posibles caminos para llegar a la solución, debido a que una de las posibilidades que entregan los procesadores está en la de comparar y tomar decisiones basadas en el álgebra BOOLEANA (sobre proposiciones falsas o verdaderas), existe un conjunto de instrucciones que permiten evaluar condiciones simples o compuestas, y a partir de esa evaluación lógica tomar el camino mas adecuado para solucionar el problema, a este conjunto de instrucciones se les denomina BLOQUES CONDICIONALES, el nombre de Bloque lo reciben porque por lo general la decisión tomada implica que en el proceso se ejecuten varias instrucciones por lo tanto su estructura contiene un Inicio y un fin que las delimita.

Una CONDICIÓN SIMPLE es una Proposición consistente de la comparación entre CONSTANTES, VARIABLES o EXPRESIONES ALGEBRAICAS, la cual puede tener uno de dos valores lógicos después de su evaluación (Falso o Verdadero), los operadores para efectuarlos en esencia son los mismos del algebra a saber:
SÍMBOLO                CORRESPONDE A
=                                  Igual a
                                  Diferente de
>                                 Mayor que
<                                 Menor que
≥                                 Mayor o igual a
                                 Menor o igual a
¬                                 Negación (Es falso que)

A continuación tenemos tres ejemplos de condiciones simples:
A>B , PRECIO5000 , ¬(NOTA=FINAL+2)

Observemos que posibilidades se dan para la evaluación de la primera condición:
Será evaluada como verdadera si la variable A tiene asignado un valor mayor que el de la variable B.
Será evaluada como falsa si la variable A tiene asignado un valor igual al de la variable B
Será evaluada como falsa si la variable A tiene asignado un valor menor al de la variable B.
Este análisis se efectúa porque el sistema numérico utilizado por el computador digital es el sistema de los números Reales y estos cumplen con la PROPIEDAD O AXIOMA DE TRICOTOMÍA.

Una CONDICIÓN COMPUESTA, está formada por dos o más condiciones simples, unidas por la conjunción Y ( AND, ^), la conjunción O (OR, V) y la conjunción O exclusivo (XOR), estas condiciones se evalúan siguiendo las tablas de verdad del álgebra booleana, por supuesto que se utilizan los paréntesis para establecer el orden para la aplicación de los operadores lógicos.

Tablas de Verdad del Or, And y Xor.

Ejemplos: (A>B) y (B<C) (PRECIO=1000000) O (DESCUENTO>PRECIO*0,1)

BLOQUE SI-FIN SI:
Al utilizar el bloque SI-FIN SI, el procesador evalúa la condición al inicio del mismo, si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran incluidas dentro del bloque, en caso que la condición sea falsa no ejecuta las instrucciones dentro del bloque y pasa al fín del bloque.

La estructura del bolque sí para el algoritmo sería la siguiente:

SI (condición) ENTONCES
                       “instrucciones que se ejecutan solamente si la condición es VERDADERA”
FIN SI

Observemos la dinámica del bloque en el siguiente algoritmo.
ALGORITMO QUE LEE UN NÚMERO , SI ESTE ES MENOR QUE CERO ENTREGA COMO RESULTADO EL INVERSO ADITIVO DEL MISMO, EN CASO CONTRARIO MUESTRA COMO RESULTADO EL MISMO NÚMERO.

Inicio
Lea NUMERO
RESULTADO NUMERO
Si (NUMERO <0) entonces
               RESULTADO (-1) * NUMERO
Fin Si
Imprima RESULTADO
Fin


Observemos las posibilidades del proceso, si en la instrucción Lea se le asigna a la variable NUMERO el valor de 4, en la siguiente instrucción a la variable RESULTADO le asigna el mismo valor que trae la variable NUMERO( el número 4), al llegar al inicio del bloque SI-FIN SI se evalúa la condicón, que en este caso es FALSA, dado que el valor de la variable NUMERO en este caso es 4 y es falso que cuato sea menor que cero, por lo tanto el ordenador salta hasta el fin del bloque y continúa con la instrucción siguiente mostrando con resultado el valor de 4,

En caso tal que el número que se le entregue como entrada a este algoritmo sea un número negativo, el resultado será el mismo número pero positivo.

Si el número es cero, el resultado que entregará será cero.


BLOQUE SI-SINO-FIN SI:
Esta estructura lógica permite dentro de un proceso evaluar una condición y emprender dos posibles caminos, es decir indicar dentro del proceso un conjunto de instrucciones que se ejecutarán cuando la condición resulte verdadera y otro conjunto de instrucciones que se ejecutarán cuando la condición resulte falsa.

SI (condición) ENTONCES
       “instrucciones que se ejecutan solamente si la condición es VERDADERA”
SINO
       “instrucciones que se ejecutan solamente si la condición es FALSA”
FIN SI

Ejemplo:
Algoritmo que recibe una pareja ordenada de números reales ( dividendo y divisor) y entrega como resultado el cociente que se obtiene de dividir esos números.

ALGORITMO PARA LA DIVISIÓN DE DOS NÚMEROS REALES.
Inicio
Lea DIVIDENDO
Lea DIVISOR
Si ( DIVISOR = 0 ) entonces
              Imprima “Operación no definida en los reales”
Sino
              COCIENTE = DIVIDENDO / DIVISOR
              Imprima COCIENTE
Fin si
Fin.

La lógica indica que si el divisor entregado es cero, se enviará como salida un letrero que dice que no es una operación definida en los reales, en caso contrario se efectúa la operación y se entrega el resultado.

BLOQUE DEPENDIENDO DE (DD):
Este blóque se utiliza cuando se pueden tomar muchos caminos a partir del valor que tenga asignado una variable, es muy util en algunos casos pero su uso está condicionado a que la herramienta de programación lo acepte, su estructura es la siguiente

DD ( variable )
[valor 1]:
“instrucciones que se ejecutan cuando la variable tiene asignado el valor 1”
[valor 2]:
“instrucciones que se ejecutan cuando la variable tiene asignado el valor 2”
.
.
[valor n]:
“instrucciones que se ejecutan cuando la variable tiene asignado el valor n”
FIN DD


Ejemplo:
Inicio
Lea “Ingrese una opción numérica de 1 a 4”;OP
DD (OP)
1: Imprima “usted seleccionó la opción uno”
2: Imprima “usted seleccionó la opción dos”
3: Imprima “usted seleccionó la opción tres”
4: Imprima “usted seleccionó la opción cuatro”
Fin DD
fin

Este algoritmo solicita al usuario ingresar un número entre 1 y 4, y entrega un letrero que indica cual opción seleccionó el usuario.

EJERCICIOS:Elaborar algoritmos con bloques condicionales que solucionen los siguientes problemas:

  1. Calcule la raiz cuadrada de un número real.
  2. Determine si un número real es positivo, negativo o cero
  1. Conocida la longitud de dos lados adyacentes de un paralelepípedo rectangular, determine si el mismo es un cuadrado.
  2. Dados los coeficientes numéricos de una ecuación de segundo grado en una incógnita, determinar si tiene dos raíces reales diferentes, las raíces son reales e iguales o las raíces son complejos (imaginarias).
  3. Determine si un numero entero es par o impar.
  4. Dada la longitud de los lados de un triángulo, determine si ese triángulo es equilatero, isósceles o escaleno.
  5. Dada una pareja de números naturales, determinar si el segundo es factor del primero, o lo que es lo mismo si el primero es divisible por el segundo.

Comentarios

Entradas populares de este blog

Portafolio de evidencias digital

LENGUAJE DE PROGAMACIÓN JAVA- SUBPROGRAMAS Y PARÁMETROS.