Está en la página 1de 4

¿Como tomar decisiones en un algoritmo?

Uno de los métodos para el control de la ejecución de los pasos de un algoritmo es la Toma de Decisiones,
las cuales se construyen por medio de las Estructuras Selectivas.

Una estructura selectiva define un conjunto de alternativas de flujo, de las cuales solo se puede elegir una
por medio de la evaluación de una o más condiciones, para continuar con la ejecución del algoritmo. Todas
las alternativas finalizan en un paso común, luego del cual, puede continuar de forma secuencial.

Las estructuras selectivas o alternativas se clasifican en:

Condicional: Se evalúa la condición dada en la estructura SI, si es verdadera se ejecutan las acciones y si es falso
continúa con la ejecución del algoritmo.

Si es necesario, existe el bloque SINO, en el cual se colocan las instrucciones que se ejecutaran cuando “no se cumpla
la condición principal”.
Selectiva: Dada una variable o expresión, su valor/resultado es comparado con toda una lista de valores (v1, v2, v3...
vN) de alternativa.

Cuando el valor evaluado coincide con uno de la lista (vN), se ejecuta solamente el bloque definido para el (bloqueN).

Estructura condicional en un algoritmo

Permite “alterar” la secuencia normal de pasos en un “paso específico” del Algoritmo, para crear “2
alternativas de bloques de ejecución, de manera excluyente entre ambos”. En otras palabras: Solo uno de los
2 bloques se ejecutará, nunca ambos bloques

DECISIONES: Definiendo una condición lógica

Una estructura condicional permite decidir por cuál alternativa seguirá el flujo del programa dependiendo
del resultado de la evaluación de una condición. Para establecer condiciones complejas se utilizan los
operadores relacionales y lógicos.

Según la complejidad de la decisión a definir, hay 2 tipos de condiciones:


a) Condición Simple b) Condición Compuesta

Una condición simple puede comparar entre 3 alternativas de valores (fijo, de una variable, resultado de una
expresión), así:

Al evaluar una condición simple, retorna un valor de Verdadero/True cuando se cumple, de lo contrario,

retorna Falso/False.
Por otra parte, una condición compuesta consta de 2 o más condiciones simples (Cs), las cuales se

evalúan entre sí por medio de los operadores lógicos/boléanos básico and, or y not.
El listado de Operadores Relacionales y los operadores Lógicos/Boléanos utilizados en el software

DFD se muestran en la Imagen 3.1.

Y en la Imagen 3.2 se muestra cómo se representa una estructura condicional en forma de pseudocódigo y
DFD.
Estructuras selectivas dentro de un algoritmo

Una estructura Selectiva divide la ejecución de un Algoritmo en N segmentos de pasos.

Para determinar ¿Cuál segmento de pasos ejecutara la estructura?, se compara el valor de una misma
“variable clave” con un valor diferente por cada segmento y luego:

a) Si se cumple la comparación de ambos valores (valor clave con fijo) de un bloque, solamente se ejecuta el
respectivo segmento de pasos.

b) En caso que el valor de la variable clave no coincida con ninguno de los valores a comparar, se podrá
ejecutar un segmento “extra/por defecto” de pasos.

Una Estructura Selectiva en un algoritmo se puede expresar tanto en pseudocódigo como flujograma,
como lo muestra la Imagen 3.3.
OPERADORES RELACIONALES Y OPERADORES LÓGICOS EN C

Se llaman operadores relacionales o de comparación a aquellos que permiten comparar dos valores evaluando si se
relacionan cumpliendo el ser menor uno que otro, mayor uno que otro, igual uno que otro, etc. Los operadores lógicos
permiten además introducir nexos entre condiciones como “y se cumple también que” ó . “o se cumple que”.

Los operadores de comparación o relacionales básicos en C son:

Operador Significado

Operador < Menor que

Operador <= Menor o igual que

Operador > Mayor que

Operador >= Mayor o igual que

Operador == Igual a

Operador != Distinto de ó no igual que

Es importante tener en cuenta que para comparar si una variable A es igual a otra debemos usar A == B en lugar de A
= B. El doble signo igual se usa en comparaciones mientras que el signo igual sencillo se usa en asignaciones.

Para determinar si una variable A tiene distinto contenido que una variable B debemos usar A != B. En C no se admite la
sintaxis A <> B que usamos en pseudocódigo.

Suponiendo que la variable A tiene un valor A = 5 y la variable B un valor B = 7 podríamos plantear las siguientes
expresiones:

Expresión Resultado Ejemplo código

printf ("A == B vale %d\n", (A ==


A == B 0 (falso)
B) );

1 printf ("A != B vale %d\n", (A !=


A != B
(verdadero) B) );

printf ("A > B vale %d\n", (A >


A>B 0 (falso)
B) );

printf ("A >= B vale %d\n", (A >=


A >= B 0 (falso)
B) );

1 printf ("A < B vale %d\n", (A <


A<B
(verdadero) B) );

1 printf ("A <= B vale %d\n", (A <=


A <= B
(verdadero) B) );

Hay que tener en cuenta que en C al no tener el tipo booleano entre sus tipos predefinidos el resultado de evaluar estas
expresiones es un cero ó un uno, equivaliendo el cero a “falso” y el uno a “verdadero”.
Ejecuta un programa definiendo las variables A y B como de tipo entero, asígnales los valores correspondientes y
comprueba las expresiones usando el código de ejemplo que hemos indicado. Define otras variables y haz algunas
comprobaciones por tu cuenta.

OPERADORES LÓGICOS EN C

Los operadores lógicos básicos en C son los siguientes:

Operador Significado

Operador && Operador lógico and

Operador || Operador lógico or

Operador ! Operador lógico not

Suponiendo que tenemos cuatro variables A, B, C y D cuyos valores se han establecido en A = 5, B = 7, C = 2, D = 5


podríamos evaluar estas expresiones:

Expresión Pregunta equivalente Resultado Ejemplo código

(A == B) && ¿Es A igual a B y A printf ("Pregunta (A == B) && (A < B)


0 (falso)
(A < B) menor que C? vale %d\n", (A == B) && (A < B));

(A == 5) || (A > ¿Es A igual a 5 ó es A 1 printf ("Pregunta (A == 5) || (A > 7)


7) mayor que 7? (verdadero) vale %d\n", (A == 5) || (A > 7));

printf ("Pregunta ! ( A == 5 ) vale %d\n", ! ( A


! ( A == 5 ) ¿A es NO igual a 5? 0 (falso)
== 5 ));

Ejecuta un programa definiendo las cuatro variables A, B, C, D como de tipo entero, asígnales los valores correspondientes
y comprueba las expresiones usando el código de ejemplo que hemos indicado. Define otras variables y haz algunas
comprobaciones por tu cuenta. Es importante que escribas tu propio código y trates de razonar sobre los resultados
esperados y los resultados obtenidos. En muchas ocasiones el resultado obtenido no será el esperado y como programador
deberás de ser capaz de determinar el por qué de estas divergencias.

Iremos adquiriendo soltura en el uso de estos operadores cuando realicemos ejercicios usando expresiones condionales.

Ten en cuenta que C tiene un gran número de operadores, de los que aquí solo hemos expuesto los más básicos o
habituales.

También podría gustarte