Está en la página 1de 9

LÓGICA – 22/12/2020

Breve repaso teórico


Tipo de dato: Indica con qué clase de datos se trabaja. Puede ser:
- Boolean (en español es Lógico) - Valores Verdadero o Falso.
- Entero - Valores numéricos enteros (sin decimales)
- Numero - Valores numéricos reales (incluye decimales).
- Cadena - Cadena de caracteres, o sea, texto.

COMPARADORES
a == b “a igual a b” Es Verdadero si los valores de “a” y “b” coinciden.
a<b “a menor a b” Es Verdadero si “a” es más chico que “b”.
a <= b “a menor igual a b” Es Verdadero si “a” es igual o más chico que “b”.
a>b “a mayor a b” Es Verdadero si “a” es más grande que “b”.
a >= b “a mayor igual a b” Es Verdadero si “a” es igual o más grande que “b”.

Práctica con resoluciones


Les ponemos ejercicios resueltos muy fáciles y vamos subiendo de a poco la dificultad.
Los mismos van en concordancia con lo que se pide en la guía.
En todos los casos, se pide resolver los predicados lógicos paso a paso, para obtener el
valor de verdad de la proposición p.

1
Lógica – Resoluciones de ejemplo
1. boolean a = V;
boolean p = a;

Resolución
Como se decía antes, tenemos que determinar qué valor tendrá “p”. Como “p”
está acompañado de la palabra “boolean”, entonces en principio sabemos que
“p” almacenará un valor lógico, también conocido como valor de verdad (o sea,
“p” puede ser Verdadero o Falso). ¿Pero cuál de esos dos valores toma?
En “a” se guarda un valor Verdadero (V) y luego en “p” se guarda el valor que
tiene “a”. Entonces “p” será también Verdadero y esa es la respuesta… la
respuesta es que el valor de “p” será Verdadero.
Pero vamos a seguir el mismo estilo que usan en la guía para resolver estos
ejercicios, que consiste en armar una tabla.
Nos quedaría así:

a p=a
V V

La palabra “boolean” puede aparecer en español como “lógico”. Cuando dice


“boolean a” está indicando que “a” sólo puede almacenar valores lógicos (es
decir, “a” puede ser Verdadero o Falso). Estaría mal si el ejercicio dijera
“boolean a = 5”, ya que 5 es un valor numérico entero.

Info. extra
Podemos referirnos a las “letras” que almacenan un valor boolean
(lógico) como “proposiciones”, ya que (en criollo) una proposición es
aquello que puede tomar un valor de verdad (Verdadero o Falso).
En cambio, si en una letra se almacena un valor numérico, no vamos a
poder referirnos a esa letra como una proposición. Con lo siguiente te
vas a dar cuenta por qué…
Imaginate que tenés esto:

boolean a = F;
entero b = 7;

Si alguien te preguntara: ¿”a” es Verdadero o es Falso? Fijándote,


obviamente responderías que “a” es Falso.
Y si alguien te preguntara: ¿”b” es Verdadero o es Falso? La realidad es
que “b” es simplemente un número 7 y eso no tiene un valor de verdad;
o sea, 7 no es ni Verdadero, ni es Falso; es 7. Punto.

Llamar “variables” a estas letras que estamos viendo es como la forma


más general en la que podemos referirnos a ellas. Cuando hablamos
muy en general podemos decir “la variable ‘a’”, “la variable ‘b’”, etc…

2
Lógica – Resoluciones de ejemplo
Y si somos más específicos, podemos decir “la variable ‘a’ es booleana”,
“la variable ‘a’ es un boolean”, “la variable ‘a’ es lógica”, o bien “’a’ es
una proposición”.
En el caso de “b” podemos decir “la variable ‘b’ es numérica”, “la
variable ‘b’ es un entero”, “‘b’ es un entero”.

2. entero a = 9;
boolean p = (a < 10);

Resolución
En “a” se guarda un valor entero, precisamente el 9. Luego en “p” se guarda el
resultado de la proposición algebraica “a < 10”. ¿Qué valor tendrá “p”? Como
sabemos que “a” es 9, el valor de verdad de “a < 10” es Verdadero.
Efectivamente 9 es menor que 10, por tanto como es cierto decir 9 < 10, en “p”
se guardará Verdadero. La tabla quedará así:

a p = (a < 10)
9 V

Algunos, en lugar de poner “p = (a < 10)” en la última columna de la tabla,


pondrían “a < 10”, que es lo mismo que poner solamente “p”, ya que el ejercicio
dice “p = (a < 10)”. Nosotros acá lo escribimos completo (el “p” junto a lo que
está igualado) y si más adelante no nos quedara espacio en la hoja, vamos a
poner solamente la “p”.
Recordá que “el conjunto de números enteros está formado por los números
naturales (1,2,3...) precedidos del signo mas (+), positivos, o menos (-),
negativos, y el número entero cero.

3. entero a = 6;
boolean p = (a > 21);

Resolución
En “a” se guarda un valor entero, precisamente el 6. Luego en “p” se guarda el
resultado de la proposición algebraica “a > 21”. ¿Qué valor tendrá “p”? Como
sabemos que “a” es 6, el valor de verdad de “a > 21” es Falso. No es cierto que
6 sea mayor que 21, por tanto como es Falso decir 6 > 21, en “p” se guardará
Falso. La tabla quedará así:

a p = (a > 21)
6 F

3
Lógica – Resoluciones de ejemplo
4. entero a = 3;
entero b = 4;
boolean p = (a == b);

Resolución
En “a” se guarda un valor entero, precisamente el 3. En “b” se guarda un valor
entero, precisamente el 4. Luego en “p” se guarda el resultado de la
comparación entre “a” y “b”. En criollo, si las dos cosas que comparás son
iguales, entonces la comparación da Verdadero como resultado. Más elegante,
da Verdadero cuando las dos variables que se comparan tienen el mismo valor
y Falso en el caso contrario. En este escenario, debemos preguntarnos si “a ==
b”, o sea, si “3 == 4”, o sea, “¿3 es igual a 4?”. Por supuesto que no, así que la
comparación dará como resultado Falso y por tanto “p” será Falso. Veamos la
tabla cómo queda:

a b p = (a == b)
3 4 F

Otro ejemplo, si “a” y “b” fueran variables boolean, con “a = F” y “b = F”,


entonces “a == b” sería Verdadero, ya que “a” es Falso al igual que “b”.
Si “a” y “b” fueran variables boolean, con “a = V” y “b = V”, la comparación “a
== b” también sería Verdadera.
Si “a” y “b” fueran variables boolean, con “a = F” y “b = V”, la comparación “a
== b” sería Falsa.

5. boolean a = F;
boolean p = NOT (a);

Resolución
En “a” se guarda un valor Falso (F) y luego en “p” se guarda el valor negado que
tiene “a”, ya que se usa NOT (a). Es decir, como en este escenario “a” es Falso,
entonces en “p” se guardará Verdadero. Obviamente, si “a” hubiera sido
Verdadero, entonces “p” iba a ser Falso. La tabla quedará así:

a p = NOT (a)
F V

El NOT se aplica a una (única) proposición, es decir, lo que va dentro de los


paréntesis del NOT tiene que ser un valor lógico (algo que pueda ser Verdadero
o Falso).
O sea, no tendría sentido hacer un NOT con un número solamente, como por
ejemplo, NOT (5). Pero si tendría sentido algo como NOT (5 > 2), ya que “5 > 2”
tiene valor de verdad; “5 > 2” es Verdadero, por tanto, NOT (5 > 2) es Falso.

4
Lógica – Resoluciones de ejemplo
6. boolean a = F;
boolean b = V;
boolean p = (a AND b);

Resolución
En “a” se guarda un valor Falso (F), en “b” se guarda un valor Verdadero (V) y
luego en “p” se guarda el valor que resulta de la conjunción entre “a” y “b”, o
sea, “a AND b”. En español podría leerse como “a Y b”. Si mirás el principio de
este documento, vas a ver que en la conjunción entre dos proposiciones se
devuelve un valor Verdadero únicamente cuando ambas proposiciones son
Verdaderas. Como en este caso una proposición es Falsa y la otra Verdadera, la
conjunción “a AND b” será Falsa.

a b p = (a AND b)
F V F

El operador AND se aplica siempre a dos proposiciones.

7. boolean a = F;
boolean b = V;
boolean p = (a OR b);

Resolución
En “a” se guarda un valor Falso (F), en “b” se guarda un valor Verdadero (V) y
luego en “p” se guarda el valor que resulta de la disyunción entre “a” y “b”, o
sea, “a OR b”. En español podría leerse como “a O b”. Si mirás el principio de
este documento, vas a ver que en la disyunción entre dos proposiciones se
devuelve un valor Falso únicamente cuando ambas proposiciones son Falsas.
Como en este caso una proposición es Falsa y la otra Verdadera, la disyunción
“a OR b” será Verdadera.

a b p = (a OR b)
F V V

El operador OR se aplica siempre a dos proposiciones.

8. boolean a = F;
boolean b = V;
boolean c = V;
boolean p = (a AND b) OR (b AND c);

5
Lógica – Resoluciones de ejemplo
Resolución
Como éste es un poco más complejo, vamos a ir armando la tabla de a poco.
En “a” se guarda un valor Falso (F) y en “b” se guarda un valor Verdadero (V), al
igual que en “c”. Dedicamos una columna de la tabla para cada uno de esos tres
valores.

a b c
F V V

Luego en “p” se guarda el valor que resulta de la disyunción entre “a AND b” y


“b AND c”, o sea, “(a AND b) OR (b AND c)”.
Pero para resolver la disyunción, primero tenemos que calcular cada una de las
dos conjunciones que hay a la izquierda y derecha.
Empecemos de izquierda a derecha. Calculemos “a AND b”. Como “a” es Falso y
“b” es Verdadero, la conjunción “a AND b” será Falsa. Agreguemos eso en una
nueva columna en la tabla.

a b c a AND b
F V V F

Sigamos ahora con la conjunción de la derecha: “b AND c”. Como “b” es


Verdadero y “c” es Verdadero, la conjunción “b AND c” será Verdadera.
Agreguemos eso en una nueva columna en la tabla.

a b c a AND b b AND c
F V V F V

Ahora, para saber el valor de “p”, simplemente debemos calcular la disyunción


entre “a AND b” y “b AND c”, es decir, “(a AND b) OR (b AND c)”. Como
sabemos que “a AND b” es Falso y que “b AND c” es Verdadero, la disyunción
será Verdadera. Así que “p” es Verdadero. Agregamos la última columna con
“p” y listo.

a b c a AND b b AND c p = (a AND b) OR (b AND c)


F V V F V V

Uso del MOD

Antes un repaso de divisiones…


¿Te acordás cuando nos enseñaban a hacer divisiones enteras en el primario?

6
Lógica – Resoluciones de ejemplo
Generalmente nos ponían algo como esto:

10 = (5 x 2) + 0 10 = (4 x 2) + 2 19 = (5 x 3) + 4

Cuando hablamos de hacer divisiones enteras, nos referimos a divisiones en las que
dejamos que el cociente y el resto sean números enteros. Entonces si calculamos la
división entera entre 19 y 5, diremos que el cociente es 3 y el resto es 4.
El uso del operador MOD nos permite obtener el resto de una división entera entre dos
valores numéricos enteros. Entonces (10 MOD 5) dará como resultado 0, (10 MOD 4)
nos dará 2 y (19 MOD 5) nos dará 4.

9. entero a = 9;
entero b = 3;
entero c = 1;
boolean p = ( (a MOD b) == c );

Resolución
En “a” se guarda un valor entero, precisamente el 9. En “b” se guarda 3 y en “c”
se guarda 1. Dedicamos una columna de la tabla para cada uno de esos tres
valores.

a b c
9 3 1

Para conocer el valor de verdad de “p”, debemos calcular el resto de la división


entera entre “a” y “b” para, a continuación, ver si es igual a “c”.
Empecemos primero calculando el resto de la división entre “a” y “b”, o sea, “a
MOD b”. Como “a” vale 9 y “b” vale 3, “a MOD b” es lo mismo que decir “9
MOD 3”. ¿Cuál es el resto de la división entera entre 9 y 3? La respuesta es 0,
ya que 9 = (3 x 3) + 0. Agregamos entonces el resultado de “a MOD b” en una
nueva columna, así vamos haciendo todo paso a paso como se pide:

a b c a MOD b
9 3 1 0

7
Lógica – Resoluciones de ejemplo
Ahora tenemos que ver si el resultado de “a MOD b” es igual a “c” para saber el
valor de verdad de “p”. Ya sabemos que “a MOD b” es igual a 0 y que “c” es
igual a 1. Nos preguntamos: ¿0 == 1? O sea, ¿0 es igual a 1? La respuesta es
obvia: no, es Falso. Así que “p” es Falso. Agregamos la última columna con “p” y
listo.

a b c a MOD b p
9 3 1 0 F

10. entero a = 9;
entero b = 4;
entero c = 1;
boolean p = ( (a MOD b) == c );

Resolución
En “a” se guarda un valor entero, precisamente el 9. En “b” se guarda 4 y en “c”
se guarda 1. Dedicamos una columna de la tabla para cada uno de esos tres
valores.

a b c
9 4 1

Para conocer el valor de verdad de “p”, debemos calcular el resto de la división


entera entre “a” y “b” para, a continuación, ver si es igual a “c”.
Empecemos primero calculando el resto de la división entre “a” y “b”, o sea, “a
MOD b”. Como “a” vale 9 y “b” vale 4, “a MOD b” es lo mismo que decir “9
MOD 4”. ¿Cuál es el resto de la división entera entre 9 y 4? La respuesta es 1,
ya que 9 = (4 x 2) + 1. Agregamos entonces el resultado de “a MOD b” en una
nueva columna, así vamos haciendo todo paso a paso como se pide:

a b c a MOD b
9 4 1 1

Ahora tenemos que ver si el resultado de “a MOD b” es igual a “c” para saber el
valor de verdad de “p”. Ya sabemos que “a MOD b” es igual a 1 y que “c” es
igual a 1. Nos preguntamos: ¿1 == 1? O sea, ¿1 es igual a 1? La respuesta es
obvia: sí, es Verdadero. Así que “p” es Verdadero. Agregamos la última
columna con “p” y listo.

a b c a MOD b p = ( (a MOD b) == c )
9 4 1 1 V

8
Lógica – Resoluciones de ejemplo
11. entero a = 12;
entero b = 5;
entero c = 2;
boolean p = ( ( (a – c) MOD b) == c ) ;

Resolución
En “a” se guarda un valor entero, precisamente el 12. En “b” se guarda 5 y en
“c” se guarda 2. Dedicamos una columna de la tabla para cada uno de esos tres
valores.

a b c
12 5 2

Para conocer el valor de verdad de “p”, debemos calcular el resto de la división


entera entre “a - c” y “b” para, a continuación, ver si es igual a “c”.
Como siempre se debe hacer todo paso a paso, de lo más simple a lo más
complejo, calculemos primero la diferencia (resta) entre “a” y “c”. Como “a” es
12 y “c” es 2, la diferencia será 10. Pongamos eso en una nueva columna:

a b c a-c
12 5 2 10

Empecemos primero calculando el resto de la división entre “a - c” y “b”, o sea,


“(a – c) MOD b”. Como “a - c” vale 10 y “b” vale 5, “(a – c) MOD b” es lo mismo
que decir “10 MOD 5”. ¿Cuál es el resto de la división entera entre 10 y 5? La
respuesta es 0, ya que 10 = (5 x 2) + 0. Agregamos entonces el resultado de “(a
– c) MOD b” en una nueva columna, así vamos haciendo todo paso a paso
como se pide:

a b c a-c (a - c ) MOD b
12 5 2 10 0

Ahora tenemos que ver si el resultado de “(a - c ) MOD b” es igual a “c” para
saber el valor de verdad de “p”. Ya sabemos que “(a - c ) MOD b” es igual a 0 y
que “c” es igual a 2. Nos preguntamos: ¿0 == 2? O sea, ¿0 es igual a 2? La
respuesta es obvia: no, es Falso. Así que “p” es Falso. Agregamos la última
columna con “p” y listo.

a b c a-c (a - c ) MOD b p = ( ( (a – c) MOD b) == c )


12 5 2 10 0 F

Javi y Pato.
22/12/2020

9
Lógica – Resoluciones de ejemplo

También podría gustarte