cuadernillo introducciÓn a la programaciÓn estructuradablopez/programacionestructurada/... ·...
TRANSCRIPT
UNIVERSIDAD DEL PAPALOAPAN
Campus Tuxtepec – Loma Bonita
Cuadernillo
INTRODUCCIÓN A LA
PROGRAMACIÓN ESTRUCTURADA
M. C. Bertha López Azamar Profesor-Investigador
Tuxtepec, Oaxaca
6 Expresiones condicionales
M.C. Bertha López Azamar 53
6 Expresiones condicionales
Las expresiones condicionales, son llamadas también lógicas o booleanas1, se componen de
números, constantes, variables, y operadores relacionales y lógicos. (Cairo, 2003). El valor que
pueden tomar estas expresiones es el de verdadero o falso. Las condiciones se usan en las sentencias
de control, siendo en si el corazón de éstas, ya que permiten determinar la decisión final de que
camino tomar para ejecutar el código dentro de la sentencia de control.
Las expresiones condicionales sirven para plantear condiciones o comparaciones y dan como
resultado un valor booleano (valor de verdad: verdadero o falso), es decir, se cumple o no se cumple
la condición (López R., 2003).
Las expresiones condicionales se pueden clasificar en simples y complejas.
Figura 1 Expresiones condicionales
6.1 Expresiones lógicas simples
Se forman con operandos (variables y/o constantes) y operadores relaciónales. Permiten
hacer comparaciones entre dos valores de tipo numérico o entre dos de tipo carácter.
Para escribirlas se emplea la forma:
operando1 OperadorRelacional Operando2
Donde: operando1 y Operando2 son variables o constantes del mismo tipo de dato
1 llamadas así en honor del matemático George Boole
Expres ión condic ional Se pueden
considerar
Simple Compleja
Proposic iones
lógicas
Usan
Variables Constantes
Unidas por
Operadores
relacionales
Resultados de
la evaluación
Valores
de verdad
(V ó F)
Unen
Expres iones
condic ionales s imples
Con
Operadores lógicos
Usan Valores de
6 Expresiones condicionales
M.C. Bertha López Azamar 54
Ejemplo 1 Operaciones condicionales simples empleando valores constantes
6 < 8 al evaluarla el resultado es verdadero
6 > 8 al evaluarla el resultado es falso
“c” == “d” al evaluarla el resultado es falso
“c” <> “d” al evaluarla el resultado es verdadero
Algo que debe aclararse es que todos los operadores relacionales pueden ser aplicados para
comparar valores numéricos, sin embargo los valores de tipo caracter solo pueden emplearse los
operadores de igualdad (==) o de diferencia (< >).
Ejemplo 2 Escritura de expresiones condicionales simples usando variables y constantes
Condición Ejemplo de evaluación asignando valores
a < b
10 > c
a = b
c > 10
Evaluando podemos ver que, si a vale 5, b vale 6 y c vale 9, las expresiones
dan como resultado valores de verdad:
Condición Resultado
a < b Verdadero
10 > c Verdadero
a == b Falso
c > 10 Falso
r <= d
s >= w
x == 10
x <> y
Evaluando podemos ver que, si “d” vale 5, “r” vale 6, “s” vale 9, “w” vale 5,
“x” vale 3, “y” vale 8, las expresiones al ser evaluadas dan los siguientes
valores de verdad como resultado:
Condición Resultado
r <= d falso
s >= w verdadero
x == 10 falso
x <> y verdadero
6.2 Expresiones lógicas complejas
Se formulan relacionando operandos booleanos (condiciones simples) mediante operadores
lógicos. Esto es necesario cuando se quieren hacer varias comparaciones para que se pueda tomar
una decisión final basada en esas determinaciones particulares.
Para escribirlas se emplea la forma:
OperandoBooleano1 OperadorLogico OperandoBooleano2
Donde: OperandoBooleano1 y OperandoBooleano2 son expresiones lógicas simples que
proporcionan un valor verdadero (V) o falso (V)
Para evaluar las expresiones que emplean operadores lógicos, es necesario seguir las
reglas de verdad de los operadores lógicos correspondientes. En la siguiente tabla pueden verse,
en resumen global, las expresiones simples representadas por las letras “p” y “q” para simplificar
el entendimiento de los operadores lógicos.
6 Expresiones condicionales
M.C. Bertha López Azamar 55
10 > 1 + 2
3
V
Tabla 1 La tabla de verdad para los operadores lógicos
p q p Y q p O q NO p
V V V V F
V F F V F
F V F V V
F F F F V
Donde: p, q, son expresiones condicionales simples.
V es verdadero, F es falso.
Ejemplo 3 Sentencia condicional compleja: 6 < 8 Y „c‟ == „d‟; usando valores constantes
la primera contiene constantes enteras, 6 < 8 al evaluarla su resultado es verdadero
(este será p)
la segunda contiene constantes de carácter, „c‟ == „d‟ al evaluarla su resultado es
falso(este será q)
p Y q, por lo tanto, “verdadero” Y “falso” da como resultado “falso”.
Ejemplo 4 Escritura de expresiones condicionales complejas usando variables
a < b Y 10 > c Si a vale 5, b vale 6 y c vale 9, la expresión: Al ser evaluada
da como resultado un valor lógico: verdadero (V).
10 > 5 Y NO(10 < 9) O 3 <= 4 Este ejemplo es un poco más complicado. Se evalúan los
niveles de precedencia, y se encuentra que el resultado es
verdadero (V).
Los operadores relacionales y lógicos tienen un nivel de precedencia menor que los
operadores aritméticos, por lo tanto, en una condición cuando se encuentra una expresión aritmética
debe evaluarse primero, para después, usar ese resultado para evaluar la condición. Como se muestra
en el siguiente ejemplo.
10 > 1 + 2 se evalúa como si se hubiera escrito 10 > (1+2).
Primero se resuelve 1 + 2 y da como resultado 3, y luego se evalúa la
condición 10>3 el resultado, es verdadero, ya que en efecto 10 es
mayor que 3.
10 > 5 Y NO(10 < 9) O 3 <= 4
V F
V V
V V
6 Expresiones condicionales
M.C. Bertha López Azamar 56
6.3 Obtener rangos de valores de condiciones que implican variables numéricas.
Algo que debemos tener presente al evaluar las expresiones condicionales en las que
intervienen variables de tipo numérico, es que darán como resultado un valor de verdad “verdadero”
solo son algunos valores, por lo que es posible determinar anticipadamente rangos de valores para
las variables que intervienen en la condición, así será verdadera mientras las variables tome un valor
que se encuentre en el rango que delimita la condición.
Sin embargo, al tener condiciones donde comparan valores de dos variables entre si, como
por ejemplo la condición: a < b; los rangos de valores que hacen valida la condición son imposibles
de establecer, ya que la condición depende de dos variables, razón por la cual debe verificarse la
condición hasta el momento en el cual cada una de las variable tome algún valor.
Es importante aprender a obtener los rangos de valores debido a que es posible:
1. Saber por anticipado cuales valores harán verdadera la condición y cuales falsa.
NOTA: Las sentencias de control de la programación estructurada usan las
condiciones y son las que requieren que la condición se cumpla para
poder ejecutar las sentencias que contiene.
2. Poder obtener posteriormente condiciones a partir de rangos de valores
NOTA: En los enunciados de problema, la condición no esta escrita como tal,
y es el programador quien va a observar, probablemente, un rango de
valores y a partir de eso debe escribir la condición o condiciones
pertinentes.
A continuación se analizaran los casos principales implicados en condiciones simples y en
condiciones complejas.
Al evaluar las expresiones condicionales simples en las que interviene una variable y un
valor constante, estas se hacen verdaderas solo con un rango de valores que van desde la constante
indicada hasta el infinito negativo (-) o hacia el infinito positivo (), todo determinado por el
operador relacional de que se trate (<, <=, >, >=)
Una herramienta de la cual podemos hacer uso para determinar el rango de valores
particulares que intervienen en la condición, es la recta numérica.
< >
- 0 +
En esta recta los valores se encuentran acordes con lo siguiente:
< manda el rango de valores a infinito negativo, sin incluir el valor de la condición
> manda el rango de valores a infinito positivo, sin incluir el valor de la condición
<= manda el rango de valores a infinito negativo, incluyendo el valor de la condición
>= manda el rango de valores a infinito positivo, incluyendo el valor de la condición
== es el valor exacto indicado por la comparación.
<> todos los valores menos el indicado en la comparación
6 Expresiones condicionales
M.C. Bertha López Azamar 57
NOTA: No olvide el tipo de dato de la variable, si es un entero o si es un real
(flotante). Ya que por ejemplo si el tipo de dato es entero, el número
menor que 10 es el 9, pero si el tipo de dato es flotante, el número
menor que 10 es el 9.9. En la mayoría de los ejemplos presentados se
utilizan únicamente valores numéricos enteros.
6.3.1 Obtención de rangos de condiciones simples
Ejemplo 5 Condición empleando igualdad x == 10
- 0 9 10 11 +
Rango para x: 10
Ejemplo 6 Condición empleando diferencia y <> 10
- 0 9 10 11 +
- a 9 11 a
Rango para y:
todos menos el 10
(de - a 9, y de 11 a )
Ejemplo 7 Rango para la condición z >= -3
- -4 -3 -2 0 +
Rango para z: -3 a
Ejemplo 8 Rango para la condición z <= -3
- -4 -3 -2 0 +
Rango para z: de - a -3
x <> 10
F
10 x <> 10
-3
V
x <> 10
V
9
z >= -3
456
V
z >= -3
-452
F
z >= -3
-4
F
z >= -3
9
V
z >= -3
0
V
z >= -3
-3
V
x == 10
F
11
x == 10
V
10
x == 10
9
F
6 Expresiones condicionales
M.C. Bertha López Azamar 58
Ejemplo 9 Rango para la condición z < -3
- -4 -3 -2 0 +
Rango para z: de - a -4
Comparando los dos ejemplos anteriores vemos que la diferencia en la condición solo radica
en el signo igual (=), y con esto la segunda condición excluye al número -3 del rango de valores
indicados como validos para la condición.
El cambio de signo de < a > ó de <= a >=, implica un cambio radical en el rango de valores
aceptados por una condición. Así mismo, el intercambiar de posición los operadores implicados
dentro de la condición, trae como consecuencia un cambio en el rango de valores aceptados como
verdaderos para la condición que se ha alterado.
La forma común de escribir una condición simple es colocar:
la variable del lado izquierdo del operador relacional, y
del lado derecho el valor constante.
Sin embargo no es una norma, por lo que se debe poner especial atención a la comparación
que se esta realizando ya que el cambio de posición de los participantes en la condición altera
considerablemente el resultado a obtener. Cuando se trata de == o < >, el intercambio de la
posición no afecta el resultado final, pero con <, <=, >, >=, el intercambio de la posición si es
significativo ya que altera el valor resultante.
Figura 2 Condiciones contrarias y equivalentes (debido al orden de variables y sentido del signo relacional)
Observemos las condiciones: c > 10, c < 10, mostradas en la figura en donde con el
simple hecho de cambiar de posición los operandos, o con el hecho de invertir los signos, las
condiciones se vuelven contrarias a la original. Por lo tanto, si cambio de posición los operandos de
una condición, también debo invertir el signo, para que la condición alternativa siga indicando el
mismo rango de valores que acepta la condición original.
z >= -3
456
F
z >= -3
-452
V
z >= -3
-4
V
z >= -3
9
F
z >= -3
0
F
z >= -3
-3
F
z >= -3
456
F
z >= -3
-452
V
z >= -3
-4
V
z >= -3
9
F
z >= -3
0
F
z >= -3
-3
V
C < 10
10 > C
10 < C
equiva lente
contrar ia
contrar ia
C > 10
equiva lente
contrar ia
contrar ia
6 Expresiones condicionales
M.C. Bertha López Azamar 59
Ejemplo 10 Rango para la condición 10 > c
Para 10 > c, los valores que puede tomar c son aquellos que sean menores a 10, para que de
un resultado verdadero, es decir, el rango de valores es de - a 9. Esto gráficamente lo
representamos con:
- a 9
- 0 9 10 +
La variable C debe tomar valores menores que 10 para que sea verdadera. Si comprobamos
la condición podemos ver que cuando c tome valores como: -3, 0, 9 dará verdadero y cuando tome
valores como: 10, 15, 456 dará falso.
Casi siempre, la mejor forma de escribir una condición que implica comparación contra una
constante, es colocar primero la variable y luego la constante, para esto la condición 10 > c tendría
su equivalente con la condición c < 10, la cual no cambia el rango de la original, tomando c
valores menores que 10 para poder hacer verdadera la condición.
Ejemplo 11 Rango para la condición c > 10
Sin embargo para el caso de c > 10, el rango de valores que puede tomar c y que darán un
resultado verdadero es de 11 a (valores mayores que 10). Esto gráficamente lo representamos
con:
11 a
- 0 9 10 11 +
Actividad 1 Escriba las condiciones contrarias y las equivalentes para las siguientes condiciones y compruebe indicando con la recta numérica los rangos que abarcan cada una de ellas.
a < 30 b >= -2 c <= -50 d > 18
10 > c
10
F
10 > c
9
V
10 > c
0
V
10 > c
-3
V
10 > c
15
F
10 > c
456
F
6 Expresiones condicionales
M.C. Bertha López Azamar 60
6.3.2 Obtención de rangos de condiciones complejas
Al evaluar condiciones complejas (con dos condiciones simples o mas unidas por operadores
lógicos) podemos observar ciertos casos particulares.
Cuando se trata de dos o más variables distintas en una misma condición compleja
Cuando se tienen condiciones complejas con la misma variable en cada condición
simple
Cuando se trata de dos o más variables distintas en una misma condición compleja, los
valores que pueden tomar las variables de cada condición simple son independientes, y ahí solo
importa el valor de verdad que resulte en cada una, para con este poder obtener el resultado de
verdad de la condición general, para esto se emplea la tabla de verdad de operadores lógicos.
Ejemplo 12 Rango para la condición compleja: a < 10 Y c < 10
a
- 0 9 10 11 +
c
Rango para a: de - a 9
Rango para c: de - a 9
Ahora bien, si se tienen condiciones complejas con la misma variable en cada condición
simple, entonces, lo que se tiene es delimitación de rangos. Y los operadores lógicos “Y” y “O”,
pueden actuar como las operaciones sobre conjuntos: “intersección” y “unión”.
Con “Y” uniendo dos condiciones simples (para la misma variable),
se actuará como la operación de intersección de conjuntos, esto es debido a
que cada condición simple establece un rango de valores particular (dos
conjuntos) y con la intersección de los conjuntos se obtendrá el rango final
para poder hacer verdadera a la condición total, con esos valores.
Ejemplo 13 Expresión compleja a < 10 Y a > 5
- a 9
- 0 5 6 9 10 +
6 a
a < 10 Y c < 10
18
F
8
V
F
a < 10 Y c < 10
10
F
10
F
F
a < 10 Y c < 10
8
V
8
V
V
a < 10 Y c < 10
-3
V
9
V
V
a < 10 Y c < 10
-3
V
11
F
F
6 Expresiones condicionales
M.C. Bertha López Azamar 61
La primera condición determina el rango de - a 9, la segunda condición el rango de 6 a ,
por lo tanto la intersección de esos dos conjuntos y el rango final para la condición es: de 6 a 9.
Ejemplo 14 Condición: r >2 Y r <= 7
3 a
- 0 1 2 3 7 8 20 21
- a 7
Rango de general de la condición: de 3 a 7
Ejemplo 15 Expresión compleja a < 10 Y a > 15, todos los valores son rechazados
- a 9
- 0 9 10 15 16 +
16 a
Vemos claramente que la primera condición determina el rango de - a 9, y la segunda
condición el rango de 16 a , claramente vemos que no hay intersección de esos dos conjuntos y el
rango final para la condición es: NINGUNO.
NOTA: Este tipo de condiciones deben evitarse, ya que ningún valor hará
verdadera la condición y nunca ejecutará el código de la sentencia de
control donde se use por lo que no tiene caso incluirla. Ejemplo si es
una sentencia cíclica, nunca se podrá ejecutar el ciclo.
Ejemplo 16 Condición: r < 8 Y r > 20, sin intersección y por lo tanto sin rango de valores válidos
21 a
- 0 1 2 3 7 8 20 21
- a 7
a < 10 Y a > 15
-6
V
-6
F
F
a < 10 Y a > 15
8
V
8
F
F
a < 10 Y a > 15
16
F
16
V
F
a < 10 Y a > 15
10
F
10
F
F
a < 10 Y a > 5
6
V
6
V
V
a < 10 Y a > 5
8
V
8
V
V
a < 10 Y a > 5
5
V
5
F
F
a < 10 Y a > 5
10
F
10
V
F
6 Expresiones condicionales
M.C. Bertha López Azamar 62
Ejemplo 17 Condición: r <= 2 Y r > 7, sin intersección, todos los valores son rechazados
8 a
- 0 1 2 3 7 8 20 21
- a 2
Vemos claramente, en los ejemplos, que en los casos con condiciones simples unidas por Y,
se tienen dos constantes númericas (una mayor que la otra) que delimitan cada condición; si la
condición donde actúa la constante menor tiene un operador menor (<) o menor igual ( <=), el
conjunto se va hacia el infinito negativo; y, si la constante donde actúa la constante mayor tiene un
operador mayor (>) o mayor igual ( >=), el conjunto se va hacia el infinito positivo; por lo tanto los
dos conjuntos nunca se cruzan, haciendo imposible encontrar una intersección (dando siempre un
conjunto vacío). Es decir, ningún valor hará valida la condición.
Figura 3 Forma correcta de escribir las condiciones complejas con el operador lógico Y para lograr una
intersección en un conjunto númerico e impedir que de conjunto vacio.
Con “O” uniendo dos condiciones simples (para la misma
variable), se actuará como la operación de unión de conjuntos, esto es
debido a que cada condición simple establece un rango de valores
particular (dos conjuntos) y la unión de los conjuntos permite obtener el
rango final para poder hacer verdadera a la condición total.
Ejemplo 18 Expresión compleja a < 10 O a > 15
- a 9
- 0 9 10 15 16 +
16 a
var iab le var iab le Constante
menor
Constante
mayor >
Sino >=
<
Sino
<=
Y
6 Expresiones condicionales
M.C. Bertha López Azamar 63
Vemos claramente que la primera condición determina el rango de - a 9, y la segunda
condición el rango de 16 a +, por lo tanto la unión de esos dos conjuntos y el rango final para la
condición es: de - a 9 y de 16 a (es decir todos menos del 10 al 15).
Ejemplo 19 Expresión compleja a < 10 O a > 5
- a 9
- 0 5 6 9 10 +
6 a
Vemos claramente que la primera condición determina el rango de - a 9, y la segunda
condición el rango de 6 a +, por lo tanto la unión de esos dos conjuntos y el rango final para la
condición es: de - a (es decir todos los valores).
NOTA: Este tipo de condiciones deben evitarse, debido a que siempre
ejecutará la sentencia de control donde se use, porque la condición
acepta todos los valores que pueda tomar la variable, y ninguno la
hará falsa. Ejemplo si es una sentencia cíclica, nunca se podrá salir
del ciclo, y el programa trabajará infinitamente.
Ejemplo 20 Condición: r > 7 O r <= 20, todos los valores son aceptados
8 a
- 0 1 2 3 7 8 20 21
- a 20
Ejemplo 21 Condición: r >= 2 O r < 8, todos los valores son aceptados
r >= 2
- 0 1 2 3 7 8 20 21
r < 8
a < 10 O a > 5
8
V
8
V
V
a < 10 O a > 5
6
V
6
V
V
a < 10 O a > 5
5
V
5
F
V
a < 10 O a > 5
10
F
10
V
V
a < 10 O a > 15
10
F
10
F
F
a < 10 O a > 15
16
F
16
V
V
a < 10 O a > 15
8
V
8
F
V
a < 10 O a > 15
6
V
6
F
V
6 Expresiones condicionales
M.C. Bertha López Azamar 64
Vemos claramente, en los ejemplos, que en los casos con dos condiciones simples unidas por
O, se tienen dos constantes númericas (una mayor que la otra) que delimitan cada condición; si la
condición donde actúa la constante menor tiene un operador mayor (>) o mayor igual ( >=), el
conjunto se va hacia el infinito positivo; y, si la constante donde actúa la constante mayor tiene un
operador menor (<) o menor igual ( <=), el conjunto se va hacia el infinito negativo; por lo tanto los
dos conjuntos siempre se cruzarán (siempre habrá intersección) lo que hace que la unión de esos
conjuntos abarque, invariablemente, un rango desde infinito negativo hasta infinito positivo. Es
decir, cualquier valor hará valida la condición.
Figura 4 Forma correcta de escribir las condiciones complejas con el operador lógico O para impedir que haya
una intersección en un conjunto númerico y logre dar los rangos de valores.
Es importante poder saber cuales son los valores que acepta una condición, sin embargo si se
tiene una condición compleja que implique el uso de dos o más variables, con más de dos
condiciones simples unidas por sus respectivos operadores lógicos, debe analizarse el conjunto de
valores que realmente permitirán hacer verdadera cada condición. No importa cuantas condiciones
simples se tengan, cada una define un rango, y cuando se trata de la misma variable, esos rangos se
delimitan con los operadores lógicos hasta encontrar el rango de valores final para esa variable, Ya
cuando se tienen los rangos de las condiciones con una variable, se puede obtener el valor de verdad
de cada condición y se compararán en el orden de prioridad adecuado, esos valores de verdad con la
tabla de verdad de los operadores lógicos.
Ejemplo 22 Condición (x < 1 O x > 20) Y (r >2 Y r <8)
Observamos en primer lugar dos variables participantes: x, r; cada una se define su propio
rango de valores.
x < 1 O x > 20
- a 0 21 a
x < 1 x > 20
- 0 1 2 3 7 8 20 21
Rango para x: de - a 0, de 21 a
var iab le var iab le Constante
menor
Constante
mayor <
Sino <=
>
Sino
>=
O
6 Expresiones condicionales
M.C. Bertha López Azamar 65
r <8
- 0 1 2 3 7 8 20 21
r > 2
r >2 Y r <8
Rango para r: de 3 a 7
Como se trata de condiciones con variables distintas y su propio rango de valores definidos,
unidas por el operador Y, debe obtenerse el valor de verdad correspondiente usando la tabla de
verdad, la cual indica que ambas condiciones deben cumplirse (dar Verdadero) para que todo el
resultado sea verdadero, si uno no se cumple (da falso) toda la condición se hace falsa
Evaluando la condición con valores tenemos por ejemplo:
Es importante tener cuidado con los paréntesis de la condición, porque si en el ejemplo
anterior quitamos los paréntesis en la segunda condición, cambian los resultado en la evaluacion de
los operadores lógicos, ya que los Y se evalúan de izquierda a derecha.
Ejemplo 23 Condición (x < 1 O x > 20) Y r >2 Y r <8
En este caso Y tiene mayor prioridad, por lo que se verificará la condición (x < 1 O x > 20),
con ese resultado de verdad, verificará despues la condición r>2, y de ahí la condicion r<8.
Observemos los resultados, y ahora dependen de la verificación de los valores intermedios para r y
al final otra vez compara contra r.
Primero se tiene: x < 1 O x > 20
- a 0 21 a
x < 1 x > 20
- 0 1 2 3 7 8 20 21
Rangos para x: de - a 0, de 21 a
21 21 6 6
F V V V
V V
V
(x < 1 O x > 20) Y (r > 2 Y r < 8)
21 21 2 2
F V F V
V F
F
(x < 1 O x > 20) Y (r > 2 Y r < 8)
10 10 6 6
F F V V
F V
F
(x < 1 O x > 20) Y (r > 2 Y r < 8)
6 Expresiones condicionales
M.C. Bertha López Azamar 66
Para la segunda condición se tiene: r > 2
- 0 1 2 3 7 8 20 21
Primer rango para r (en r > 2): de 3 a
Después se verifica la última condición:
r < 8
- 0 1 2 3 7 8 20 21
Segundo rango para r (en r < 8): de 7 a -
Evaluando la condición con valores tenemos por ejemplo:
En el caso de que se trate de una sola variable, y se tienen delimitaciones de valores
marcados por varias condiciones simples unidas con los operadores lógicos, debe encontrarse el
rango global de valores para esa variable.
Ejemplo 24 Condición r <=10 Y r >4 O r > 20
Observando la condición y respetando la prioridad de operadores, primero de encuentra el
rango que une Y (r <=10 Y r >4). Marcamos los rangos en la recta numérica:
- a 10
r <= 10
- 0 4 5 10 11
r > 4
5 a
Se tiene por tanto una intersección que da un rango con los valores de 5 a 10.
Para la última condición simple (r > 20) se observa un rango de 21 a
21 21 6 6
F V V V
V V
V
(x < 1 O x > 20) Y r > 2 Y r < 8
21 21 2 2
F V F V
V
F F
(x < 1 O x > 20) Y r > 2 Y r < 8 10 10 6 6
F F V V
F
F F
(x < 1 O x > 20) Y r > 2 Y r < 8
6 Expresiones condicionales
M.C. Bertha López Azamar 67
21 a
r > 20
- 0 19 20 21
Por lo tanto, al aplicar el operador O, se obtiene el rango final de valores que puede tomar la
variable r, el cual es: de 5 a 10 y de 21 a
21 a
r > 20
- 0 5 10 19 20 21
Actividad 2 Realice la determinación de los rango para las siguientes condiciones. Emplee la recta númerica para marcar los rangos y verificar que efectivamente se cumpla lo que indica la condición. Además indique al menos tres ejemplos de comprobación de la condición con valores para la variable indicada.
Hijos >= 10
Hijos > 10
Hijos < 10
Hijos <= 3
Hijos ==3
Hijos <> 3
Hijos > 10 y Hijos <= 3
Hijos <= 3 o Hijos > 10
Hijos > 10 y Hijos >= 3
Hijos > 10 o Hijos >= 3
Casas <> 10 O casas <= 5
Casas <> 10 Y casas <= 5
Casas <> 10 Y casas >= 5
Casas <> 10 O casas >= 5
Casas == 10 O casas <= 5
Casas == 10 Y casas <= 5
Casas == 10 Y casas >= 5
Casas == 10 O casas >= 5
Casas > 20 Y casas < 50 O Casas > 100 y Casas < 150
Casas < 20 0 casas > 50 O Casas < 100 O Casas > 150
(Casas < 20 0 casas > 50) Y (Casas < 100 O Casas > 150)
6 Expresiones condicionales
M.C. Bertha López Azamar 68
6.4 Obtener condiciones a partir de rangos de valores numéricos.
Los enunciados de problema incluyen proposiciones que en algunos casos indican rangos de
valores, se deben analizar estas, para poder determinar la condición adecuada que lo delimite. Debe
prestarse especial atención a las comparaciones para poder determinar la o las condiciones simples
que formaran la condición final.
Al tratarse de un caso que implica igualdad (==) con un valor, no existe tanto problema al
crear la condición, ya que esta es simple, ejemplo: un número igual a 10, implica escribir r == 10.
La forma común de escribir rangos es colocar la variable a la derecha en aquellos que
incluyan - (infinito negativo), y en los que incluyan (infinito positivo), la variable se colocará a
la izquierda, esto, acordándonos de que en la recta numérica - esta a la izquierda, esta a la
derecha. No obstante puede escribirse de forma contraria, sin embargo se dificulta entender a simple
vista los valores incluidos, por ejemplo escribir z a - o a z
Al tener casos de rangos como - a z o como z a , se trata de una condición simple que
puede emplear los operadores; <, <=, >, >=; para elegir cual se debe usar debe observarse lo
siguiente:
Cuando se trata de (infinito positivo) sabemos que el signo de la condición será > (
mayor) ó >= (mayor igual). Para usar uno u otro sin que el rango se altere, debemos
observar lo siguiente:
o Si se decide usar > entonces se debe buscar el valor inmediato a la izquierda (en
la recta numérica) del valor que se indica en el rango.
>
- 0 ? C
o Si se decide usar >= entonces debemos incluir el valor que se menciona en el
rango.
Cuando se trata de - (infinito negativo) sabemos que el signo de la condición será < ó
<=. Para usar uno u otro sin que el rango se altere, debemos observar lo siguiente:
o Si se decide usar < entonces se debe buscar el valor inmediato a la derecha (en
la recta numérica) del valor que se indica en el rango.
<
- 0 C ?
o Si se decide usar <= entonces debemos incluir el valor que se menciona en el
rango.
6 Expresiones condicionales
M.C. Bertha López Azamar 69
En general al usar <= ó >=, debido a la igualdad (=) implica incluir en el rango el valor
constante indicado en la condición.
Ejemplo 25 Condición para el rango de valores de - a 10
Puede observarse en primer lugar que se trata de una condición simple, y como es - se trata
del signo < ó <=, por lo tanto podemos usar cualquier variable e indicar la condición.
- 0 10 11
Quedando: r < 11 o su equivalente: r <=10
Ejemplo 26 Condición para el rango de valores de 10 a
Se trata de una condición simple ya que vemos se trata del signo > ó >=, por lo tanto
podemos usar una variable e indicar la condición,
- 0 9 10
Quedando: r > 9 o su equivalente: r >= 10
Es importante tener en cuenta que hay ocasiones en las que o se quiere descartar un valor de
un conjunto de valores validos en un rango, o se quieren descartar dos o más valores; para lo cual se
deben observar las siguientes diferencias en los rangos, y asi saber el tipo de condición a emplear:
Tabla 2 Casos de uso de diferente (<>) y O
Rango Observación Usar:
- a 20 y de 22 a solo descarta un valor Por lo que se usa <> (diferente)
- a 20 y de 25 a descarta más de un valor Por lo que se debe usar una condición
compleja unida con O
En los casos que impliquen la exclusión de un valor, tener enunciados con frases como:
aceptar todos los números menos el 500, o descartando el número 500, o a excepción del 500; se
debe usar el operador diferente de (< >), lo que involucra la definición de dos rangos individuales
de valores no contiguos. Debe tenerse cuidado al escribir las condiciones simples que participan en
la condición compleja ya que no debe haber intersección entre los rangos resultantes (puede emplear
la recta numérica para hacerlo visible).
NOTA: Recordemos que las condiciones simples incluyen rangos que
tienden a extenderá desde un valor hacia - o desde un valor hacia
para que se pueda delimitar el rango.
6 Expresiones condicionales
M.C. Bertha López Azamar 70
Ejemplo 27 Condición para números diferentes de 10
- a 9 11 a
- 0 9 10 11
Así vemos que la condición resultante será: r <> 10
Ya no sería bueno manejar una condicón compleja: r<10 O r >10. o sus equivalentes, ya que
solo descarta un valor y eso lo podemos resolver con el operador relacional <>.
En los casos que impliquen la exclusión de dos o más valores, se llegan a tener enunciados
con frases como: aceptar todos los números menos el 10 y el 11, o descartando los números 10 y 11,
o, a excepción del 10 y 11; se deben tener dos condiciones simples unidas por el operador lógico O;
lo que involucra la definición de dos rangos individuales de valores no contiguos. Debe tenerse
cuidado al escribir las condiciones simples que participan en la condición compleja ya que no debe
haber intersección entre los rangos resultantes; ya que se implica la unión de esos conjuntos
excluyentes entre si, y por tanto el uso del operador lógico O para la condición compleja.
Ejemplo 28 Condición para números diferentes de 10 y 11
- a 9 12 a
- 0 9 10 11 12
Para el rango - a 9 la condición es: r < 10 o su equivalente r <= 9
Para el rango 12 a la condición es: r > 11 o su equivalente r >= 12
Así vemos que la condición compleja definitiva será: r < 10 O r >11 o sus equivalentes:
r <= 9 O r >= 12, r < 10 O r >= 12, r <= 9 O r > 11
Ahora bien, para los casos que implican un rango que incluye dos valores como límites,
ejemplo muestra los números del 0 al 500, acepta billetes desde 50 hasta 1000, se tiene que escribir
forzosamente una condición compleja empleando una sola variable. Generalmente se trata de
conjuntos de valores contiguos (en la recta numérica) lo que implica una intersección y por lo tanto
el enlace de las condiciones simples mediante el uso del operador Y.
Ejemplo 29 Rango de valores de 1 a 10
Empleando la recta numérica se indica el rango marcado por el círculo punteado.
- 0 1 10 11
Así delimitamos los rangos individuales para lograr la intersección de esos conjuntos de
valores y obtener el rango indicado con el círculo. Vemos los conjuntos particulares indicados por
las llaves en la recta numérica y sus respectivos rangos.
6 Expresiones condicionales
M.C. Bertha López Azamar 71
- a 10
- 0 1 10 11
1 a
Para el rango - a 10 la condición es: r <= 10 o su equivalente r < 11
Para el rango 1 a la condición es: r >= 1 o su equivalente r > 0
Así vemos que la condición compleja definitiva será: r <= 10 Y r >= 1 o sus equivalentes:
r > 0 Y r < 11, r >= 1 Y r < 11, r > 0 Y r <= 10
Para casos donde se indiquen dos rangos de valores, se realizan las combinaciones
pertinentes siempre analizando la conveniencia de que operador lógico, que generalmente es O,
emplear para la unión de las condiciones complejas que indican ambos rangos.
Ejemplo 30 Rango de valores para a que va de 5 a 10 y de 20 a 28
Empleando la recta numérica se indican los rangos de valores validos para a con círculos
punteados.
- 0 4 5 10 11 19 20 28 29
Trabajando cada rango por separado, delimitamos los rangos individuales que lo componen y
las respectivas intersecciones individuales de cada rango indicado con círculo:
- a 10
- 0 4 5 10 11
5 a
Así tenemos la condición compleja: r < 11 Y r > 4 (la cual incluye los valores del 5 al 10
exclusivamente)
- a 28
- 0 19 20 28 29
20 a
Así tenemos la condición compleja: r <= 28 Y r > 19 (la cual incluye los valores del 20 al
28 exclusivamente).
6 Expresiones condicionales
M.C. Bertha López Azamar 72
Por lo tanto la condición final resultante implica la unión de ambos rangos con el operador
O, así tenemos:
r <=10 Y r >5 O r <28 Y r >20
Recordemos que el operador Y tiene mayor prioridad que el operador O por lo que no es
obligatorio incluir paréntesis para separar las condiciones, sin embargo para una mejor lectura de la
condición pueden indicarse los paréntesis para asegurar la evaluación de la condición y no alterar el
orden que deseamos con los rangos que estamos analizando. Así la condición anterior puede ser
escrita como sigue:
(r <=10 Y r >5) O (r <28 Y r >20)
En el caso de “O”, los conjuntos de valores nunca deben cruzarse, por lo tanto la forma
adecuada de escribir la condición compleja sería:
En el caso de “Y”, los conjuntos de valores deben cruzarse para que de un rango, por lo tanto
la forma adecuada de escribir la condición compleja sería:
Figura 5 Esquema general del uso adecuado de los operadores lógicos “Y” y “O”.
Observese que los elementos de la condición compleja se encuentran siempre igual, esto es,
preferentemente la constante menor a la izquierda y la constante mayor a la derecha; la única
diferencia es el sentido de los signos relacionales.
Ejemplo 31 Rango de 5 a 10 y de 20 a
Empleando la recta numérica se indican los rangos:
- 0 4 5 10 11 19 20
Observamos que el segundo rango ya esta determinado con una expresión condicional
simple: r >= 20
Trabajando el primer rango por separado, delimitamos los rangos individuales que lo
componen y la intersección indicada con círculo:
- a 10
- 0 4 5 10 11
5 a
Variable Constante
menor > Y Variable Constante
mayor <
Variable Constante
menor < O Variable Constante
mayor >
6 Expresiones condicionales
M.C. Bertha López Azamar 73
Así tenemos la condición compleja: r >5 Y r <10 (la cual incluye los valores del 5 al 10
exclusivamente)
Por lo tanto la condición final resultante implica la unión de ambos rangos con el
operador O, así tenemos:
r >5 Y r <10 O r > 20
Ejemplo 32 Se requiere saber la tanto cantidad de alumnos que tienen calificaciones reprobatorias como la
cantidad de alumnos que tienen calificaciones mayores a 9.
En primer lugar, el rango contemplado para calificaciones válidas va de 0 a 10, lo que de
primera instancia limita nuestros valores para los rangos indicados en el enunciado de problema, ya
que no va a irse hasta - sino que se limitara hasta 0, ni tampoco va a llegar hasta , sino que se
limitará hasta 10. El tipo de dato de este valor es flotante, entonces tenemos los dos rangos:
Para calificaciones reprobatorias es: de 0 a 5.9
Para calificaciones mayores a 9 es: de 9.1 a 10
Por lo tanto, tenemos una unión de dos rangos (O) en la misma condición.
Análisis de rangos empleando la recta numérica:
calif <= 5.9
- -1 0 1 4 5 6 9 10
5.9
calif >= 0
La primera condición es: calif >= 0 Y calif <= 5.9
calif <= 10
- -1 0 1 4 5 6 9 10
9.1
calif >= 9.1
La segunda condición es: calif >= 9.1 Y calif <= 10
Así se tiene entonces una condición final que une a ambos rangos:
(calif >= 0 Y calif <= 5.9) O (calif >= 9.1 Y calif <= 10)
Ejemplo 33 Una maquina expendedora solo acepta billetes de denominaciones de $20 a $200
Este no es un rango abierto como en el caso anterior, sino que se tienen, en el caso de
México, denominaciones de billetes de: $20, $50, $100 y $200s, por lo tanto la condición quedará:
billete == 20 O billete == 50 O billete == 100 O billete == 200