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
, PRECIO≥5000
, ¬(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:
- Calcule la raiz cuadrada de un número real.
- Determine si un número real es positivo, negativo o cero
- Conocida la longitud de dos lados adyacentes de un paralelepípedo rectangular, determine si el mismo es un cuadrado.
- 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).
- Determine si un numero entero es par o impar.
- Dada la longitud de los lados de un triángulo, determine si ese triángulo es equilatero, isósceles o escaleno.
- 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
Publicar un comentario