Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso de nivelación:
LÓGICA
LÓGICA PROPOSICIONAL O LÓGICA DE ENUNCIADOS
Signo es todo aquello que, para alguien, representa o evoca otra cosa distinta
de sí misma.
Para que algo pueda ser considerado signo, es necesario, en primer lugar, que
tenga significado para alguien.
Una primera clasificación de los signos distingue entre aquellos que poseen un
solo significado (son llamados señales), y aquellos que poseen significaciones
múltiples (símbolos). Ahora bien, si tenemos en cuenta el tipo de relación que
los signos mantienen con su significado, éstos se clasifican en:
3. Pragmática: estudia los signos teniendo en cuenta la relación que existe entre
ellos y las personas que los utilizan para comunicarse o representar algo. Este
es el tipo de estudio que realizan los investigadores de las jergas o argots
profesionales, étnicos, regionales, de pandillas…
Ejemplo: La frase «“Gato” tiene cuatro letras» es una frase en la que el lenguaje
habla de sí mismo y, por tanto, pertenece al «metalenguaje». A diferencia de la
frase «El gato de mi casa es gris», en la cual el lenguaje se usa para referirse a
la realidad, siendo el uso habitual que le damos al lenguaje.
3. LENGUAJE NATURAL
Por el contrario, expresiones como “Vivir con cuando”, “Lloviendo noche estaba
aquella”, etc. no son oraciones porque o bien no tienen sentido completo o son
sintácticamente defectuosas.
3.3. ¿QUÉ ES UNA ORACIÓN ENUNCIATIVA O ENUNCIADO?
Es una expresión lingüística que tiene sentido completo y que puede ser
verdadera o falsa. De los anteriores ejemplos de oraciones, sólo el primero (“El
cuarzo es un mineral”) es un enunciado, pues dice algo que puede ser
verdadero o falso, mientras que los otros dos ejemplos (“¿Qué hora es?”,
“¡Cierra la puerta!”) no lo son porque no cabe preguntarse si es verdadero o
falso lo que ‘dicen o expresan’.
4. LENGUAJE ARTIFICIAL
En líneas generales puede decirse que todas las ciencias, en especial las
ciencias de la naturaleza, emplean Lenguajes Artificiales y que ésta ha sido una
de las condiciones para su progreso. Por ejemplo, los símbolos de la Química, la
Física, la Biología, pero también los de la Economía, la Lingüística, etc.,
constituyen tipos de lenguaje artificial.
a) Que los signos estén bien definidos, para que no quepan ambigüedades;
5. LENGUAJE FORMAL
Pues que tales signos no se refieren en absoluto a la realidad. Así, por ejemplo,
el signo matemático ‘2’ no se refiere a dos cosas concretas, como dos
manzanas o dos peras; y lo mismo le ocurre a los signos lógicos ‘p’, ‘q’, ‘r’, que
no se refieren a ninguna proposición determinada.
- Que mediante tales reglas siempre podremos saber si una expresión (es decir,
un conjunto de signos) está bien formada en ese lenguaje.
- Los razonamientos, sin embargo, son válidos no porque los enunciados que lo
integren sean verdaderos, pues es posible construir razonamientos
perfectamente válidos con enunciados falsos, sino que un razonamiento es
válido únicamente si la conclusión se deduce necesariamente de las premisas.
Por ejemplo:
De allí que se suela afirmar que “la verdad lógica es una verdad formal, que no
tiene contenido”.
Ejemplos:
oy es sábado
De esta manera, podemos afirmar que la lógica se ocupa de las proposiciones.
Más adelante, estudiaremos reglas que permiten la transformación de unas
expresiones en otras equivalentes, y veremos como, de acuerdo a estas reglas
o leyes lógicas, a partir del valor de verdad de una o varias proposiciones
logramos inferir la verdad o falsedad de otras proposiciones.
La lógica utiliza un lenguaje exacto que no da lugar a imprecisiones, para tal fin
toma como elemento básico de análisis a la proposición, que no es otra cosa
que una oración del lenguaje cotidiano con un significado mucho más limitado;
en tales condiciones, se puede considerar una proposición como una excepción
lingüística que tiene la propiedad de ser verdadera o falsa. Galindo (1999)
Ejemplos:
p : Hoy es sábado
q : Estudio filosofía
r : Colombia es el país con el mayor número de especies de aves del mundo
x : 4 + 3 = 10
Ejemplos:
y tienen espinas.
o perdió?
no hay violencia.
Si estudio lógica matemática entonces podré determinar la validez de un
razonamiento lógico.
si y sólo si se puede dividir por 2.
Ejemplos:
y tienen espinas.
p∧q
o perdió?
r ∨s
no hay violencia.
u : 4 es un número par
v : 4 es divisible por 2
u ↔ v
Proposiciones simples
El valor de verdad de una proposición simple puede ser verdadero (V) o falso
(F), pero no los dos valores al mismo tiempo, pues dejaría de ser proposición.
Recordemos que una proposición debe tener sentido completo, es decir debe
ser posible asignarle un valor de verdad (es falsa o verdadera).
Ejemplos: 1 + 4 = 5
3 es número par
Medellín es la capital de Antioquia
Proposiciones Compuestas
Sean: s : Llueve
r : Hace frío
Como ya se dijo en la sección anterior, los símbolos que sirven para enlazar dos
o más proposiciones simples, se llaman conectivos lógicos. Los conectivos
lógicos son: la conjunción, la disyunción, la negación, el condicional y el
bicondicional.
Conjunción: “ ᴧ “
r ∧ s : Verdadera (V)
r ∧ s: Falsa (F)
r ∧ s : Falsa (F)
r ∧ s : Falsa (F).
r ∧ s: Verdadera (V)
Caso 2: r: Verdadera 6 es un número par
s: Falsa 6 no es un entero positivo
r ∧ s: Falsa (F)
r ∧ s: Falsa (F)
Los ejemplos anteriores muestran los usos del operador “o”. En el ejemplo 2
tenemos el llamado “o incluyente” el cual hace que el valor de verdad de una de
las dos proposiciones simples repercuta en el valor verdadero de la proposición
disyuntiva; mientras que el conectivo lógico “o” de los ejemplos 2 y 3 actúa como
un “o excluyente”, donde el valor de verdad de una proposición excluye la
veracidad de la otra proposición, esto hace que la proposición disyuntiva
siempre tome el valor verdadero.
El condicional “→“
Se dice que una proposición compuesta es condicional, si esta formada por dos
proposiciones simples enlazadas por la expresión “si…entonces”.
p entonces q
p sólo si q
q si p
p es suficiente para q
q es necesaria para p
Caso 3: No es un día soleado pero a pesar de esto hace calor. En este caso
encontramos que aunque el antecedente se cumple el consecuente no. No
obstante esto no hace falsa la proposición compuesta original “Si es un día
soleado entonces hace calor”. Por lo tanto la proposición compuesta p → q es
verdadera.
El bicondicional “↔ “
p sí y sólo si q
q sí y sólo si p
p entonces q y recíprocamente
q entonces q y recíprocamente
p es una condición necesaria y suficiente para q
q es una condición necesaria y suficiente para p
es un triángulo rectángulo
Caso 2: Es un día soleado pero no hace calor. En este caso se cumple sólo una
de las dos proposiciones simples, lo que de acuerdo con la expresión “Si y sólo
si es un día soleado entonces hace calor” no debería darse. Por lo tanto tal
proposición compuesta (p ↔ q) es falsa.
Caso 3: No es un día soleado pero hace calor. En este caso se cumple sólo una
de las dos proposiciones simples, lo que de acuerdo con la expresión “Si y sólo
si es un día soleado entonces hace calor” no debería darse. Por lo tanto tal
proposición compuesta (p ↔ q) es falsa.
Caso 4: No es un día soleado y no hace calor. En este caso se cumple sólo una
de las dos proposiciones simples, lo que no se contradice con la expresión “Si y
sólo si es un día soleado entonces hace calor”. Por lo tanto la proposición
compuesta (p ↔ q) es verdadera.
Conectivos lógicos: Son términos que sirven para unir o enlazar proposiciones
simples. Los conectivos lógicos fundamentales son:
Clases de proposiciones
Una vez más, las proposiciones simples son dos (2): p, q luego el número de
casos posibles es también de cuatro (4): FF, VF, VV, y FV.
Esta conclusión nos permite encontrar una fórmula para calcular el número de
combinaciones posibles de acuerdo al número de variables lógicas o letras
proposicionales involucradas en la fórmula proposicional:
2n
NOTA: Más adelante, en el curso de probabilidad aprenderás que este es un
caso de combinación denominado permutaciones con repetición.
De esta manera, una función lógica con 4 letras proposicionales tendrá 16 casos
posibles, una función lógica con 5 letras proposicionales tendrá 32 casos
posibles, una función lógica con 6 letras proposicionales tendrá 64, una función
lógica con 7 letras proposicionales tendrá 128, una función lógica con 8 letras
proposicionales tendrá 256, una función lógica con 9 letras proposicionales
tendrá 512….
{[({[(…)]})]}
Paso 4: Se identifica el conectivo que aparece dentro del paréntesis, en este
ejemplo propuesto ¬ (p ∧ q) es la conjunción.
Karel puede orientarse en una de las cuatro direcciones: Este, Oeste, Norte y
Sur. Sólo gira 90º cada vez, por tanto no puede orientarse hacia en NordEste,
por ejemplo. En el mundo de Karel, las calles van de Este a Oeste, y son
numeradas comenzando por 1. No hay números de calle igual a 0 o negativos.
Las avenidas van de Norte a Sur, y también están numeradas empezando por 1.
Tampoco hay números de avenida igual a 0 o negativos. Se le llama esquina a
la intersección de una calle con una avenida. Karel va de una esquina a la
siguiente en un solo movimiento. Ejecuta el programa Karel.exe de la carpeta
KarelOMI . Se iniciará el simulador del Robot. Ahora deberías ver la ventana de
abajo.
Esta ventana muestra las calles y avenidas que usa Karel para desplazarse.
Primero debemos inicializar (o crear) el mundo que Karel va a ocupar. La idea
es que puedas introducir algunos elementos en el mundo inicial de Karel.
Puedes colocar y quitar muros en el Norte, Sur, Este u Oeste del cursor dando
click con el botón izquierdo del ratón en la intersección de las calles
correspondientes. Los muros que limitan las calles y avenidas no se pueden
quitar, éstos son los que previenen que Karel se salga del mundo. Prueba a
introducir algunos muros para ver que aspecto tienen.
Programando Karel
¡¡ Inténtalo !!
Comandos básicos de Karel
La salud de Karel
Andar entre muros no es bueno para un robot, por lo tanto Karel tiene algunos
mecanismos salvavidas dentro de él. Si un programa le dice a Karel que se
mueva aunque haya un muro delante de él, él dirá que hay un error y no
realizará la acción. Lo mismo ocurrirá si le decimos que coja un zumbador en
una esquina y no existe ninguno. Las únicas órdenes que siempre lleva a cabo
sin importar la situación en la que se encuentre son turnleft() y turnoff(). Cuando
Karel nos dice que hay un error, no tenemos que echarle la culpa, sino que
probablemente habremos escrito mal alguna instrucción.
Las sentencias de control se usan para elegir qué hacer, y/o cuantas veces
hacerlo. Sin embargo, por si solos no causan que ocurra algo. Simplemente
controlan la ejecución de otras sentencias o fragmentos de código. A
continuación se lista una serie de sentencias de control de Karel:
if
iterate
if/else
while
La sentencia if
En el Ejercicio 1 asumimos que Karel estaba orientado hacia el Este. ¿Y si
supiéramos que cuando se inicia está orientado hacia el Oeste o hacia el Sur ?
A veces necesitaremos girar primero tres veces, y a veces no. En este caso, la
sentencia de control if es lo que necesitamos en nuestro programa. Aquí hay un
ejemplo de como se debe escribir:
...
if (facingSouth) {
turnleft();
turnleft();
turnleft();
...
Las líneas " ... " significan que pueden haber otras sentencias antes o después
de la sentencia if. Nos da igual en esta explicación ya que no hay restricciones
en cuanto a lo que hay antes o después de la sentencia if.
...
if (xxx) {
yyy
...
Donde xxx es una condición y yyy es cualquier número de sentencias a
ejecutar si la condición if es verdadera.
if (facingSouth) {
turnleft();
turnleft();
turnleft();
...
"clear" significa que no hay ningún muro, mientras que "blocked" significa que
hay un muro en esa dirección. Karel puede detectar si hay o no algún zumbador
en la esquina en la que se encuentra actualmente, así como detectar si tiene
algún zumbador en la mochila o no. También tiene una brújula para detectar
hacia qué dirección está orientado.
Por si fuera poco podemos unir dos o más funciones booleanas con los
operadores lógicos Y, O, y NO.
Podemos ver la síntaxis de los operadores y sus valores con las siguientes
tablas:
Operador y ("&&" )
Operador o ("||")
Síntaxis: ! función-booleana
falso verdadero
verdadero falso
Los operadores "&&" y "||" se aplican sobre dos funciones y el operador "!" solo
sobre una. Lo mejor de los operadores lógicos es que si ponemos dentro de un
par de paréntesis las funciones con el operador lógico, entonces toda la
operación se vuelve una función booleana, por lo que podemos aplicar más
operadores lógicos sobre ella. ¿No quedó claro? Revisa estos ejemplos:
Por ejemplo, si queremos que Karel avance si está viendo al norte y el frente
esté libre, podemos hacer lo siguiente:
...
move();
...
Ejercicio 3: Escribe un programa de Karel que haga que Karel esté orientado
al Norte, desde cualquier dirección inicial, y a continuación se apague. Debería
terminar en la misma intersección en la que empezó.
¿Alguna sugerencia?
En un mundo nuevo inserta el ejemplo visto arriba para el caso en que Karel
está orientado hacia el Sur. Pero, ¿qué ocurre cuando no está orientado hacia el
Sur?. ¡Podría estar también orientado hacia el Norte o el Este !. Entonces
necesitas dos sentencias if adicionales, en las cuales se especifique que es lo
que debe hacer Karel en esas situaciones.
En esta sección hemos visto como usar las sentencias de control para adaptar
Karel a cada situación.
La sentencia iterate
iterate (xxx) {
yyy
...
Donde xxx debe ser un número entero positivo, y yyy representa cualquier
número de sentencias de Karel. El problema de los 14 avances podría haberse
escrito :
...
iterate (14) {
move();
}
Ejercicio 4: Asume que Karel está en la esquina de la 8ª Avenida y la 8ª Calle,
con el escenario que se ve en la siguiente imagen. Escribe un programa que
haga a Karel recoger todos los zumbadores y acabe en la 1ª esquina orientado
al Sur.
Bien… puede ser que un poco de ayuda venga bien. Si puedes imaginar como
hacerlo una vez (el primer zumbador de la esquina 7,7), la sentencia repite lo
hará tantas veces como tú quieras.
...
if (xxx) {
yyy
else {
zzz
...
Donde xxx es una condición, yyy son sentencias a realizar si xxx es verdadero, y
zzz son las sentencias a ejecutar si xxx es falso.