domingo, 25 de agosto de 2013
viernes, 23 de agosto de 2013
Operadores lógicos y jerarquía
Operadores lógicos y jerarquía
La sintáxis especifica una serie de
reglas de construcción que deberán cumplir las fórmulas para ser
sintácticamente correctas. Los elementos que estudiaremos en una fórmula, en
lógica proposicional son:
- Símbolos: p, q,
r...
- Operadores:
negación, conjunción, disyunción, condicinal, disyunción exclusiva
- Paréntesis: ( )
Las reglas
de construcción sintácticas son:
- Un símbolo sólo no es una fórmula
- Los operadores unarios se anteponen al
símbolo. Los operadores binarios se sitúan entre los símbolos.
- Los paréntesis han de estar bien formados, y
ha de haber tantos paréntesis de abertura como de cierre:
- Son correctos: (p), p and (q), p or ((not q)
and r)...
- No son correctos: (), (p (or) q), p and (q or
(not r)...
- Son fórmulas:
- p, not p, p and q, p xor (not q), not (p
-> q)...
De los
símbolos no hay nada más que decir, son letras minúsculas del alfabeto. En
cuanto a los operadores lógicos, no vamos a verlos todos, sólo los necesarios
para comprender la lógica que después aplicaremos a la programación. Cada
operador está representado por un símbolo:
|
Operador
|
Símbolo
|
Tipo
|
|
negación
|
not
|
unario
|
|
conjunción
|
and
|
binario
|
|
disyunción
|
or
|
binario
|
|
condicional
|
->
|
binario
|
|
disyunción exclusiva
|
xor
|
binario
|
Veamos la tabla de prioridad (precedencia) y
asociatividad de los operadores de mayor a menor prioridad:
Operadores relacionales y su jerarquía
Operadores relacionales y su jerarquía
Los
operadores relacionales nos permiten comparar expresiones de tipos compatibles,
devolviendo un resultado de tipo lógico: la comparación es verdadera o falsa.
Por ejemplo, la expresión (3 + 4) > 12 sería falsa, ya que 7 es menor que
12.
La
estructura de una operación relacional sería la siguiente:
expresión_1 operador_relacional expresión_2
Operadores
relacionales
|
Operador
|
Operación
|
|
=
|
Igual
|
|
<>
|
Distinto
|
|
<
|
Menor
|
|
>
|
Mayor
|
|
<=
|
Menor o igual
|
|
>=
|
Mayor o igual
|
|
in
|
Elemento de
|
Los
operadores de relación se pueden aplicar a cualquiera de los tipos que hemos
visto hasta ahora:
- entero
- real
- lógico
- caracter y cadena
Las
operaciones relacionales o de comparación entre números reales y enteros no
merecen mayor comentario, las matemáticas dictan las reglas. Si comparamos
expresiones lógicas, lo cual no tiene mucho sentido, hay que saber que el valor
falso se considera menor que el valor verdadero. Las
comparaciones entre caracteres o cadenas se basan en el código ASCII de cada
caracter. El operador in se utiliza en unas estructuras llamadas conjuntos
que veremos en el próximo capítulo.
Tipos
compatibles en operaciones relacionales
|
Tipo1
|
Tipo2
|
|
entero
|
real
|
|
caracter
|
cadena
|
Operadores aritméticos y jerarquía
Operadores aritméticos y jerarquía
Los operadores aritméticos son aquellos que
"manipulan" datos numéricos, tanto enteros como reales. Hay 2 tipos
de operadores aritméticos: unarios y binarios. Los operadores
unarios se anteponen a la expresión aritmética, y son los operadores de signo.
Los operadores binarios se sitúan entre 2 expresiones aritméticas.
Operadores
aritméticos unarios
|
Los
operadores unarios devuelven expresiones del mismo tipo que la expresión a la
que afectan.
|
Por ejemplo,
-4 es el resultado de aplicar el operador unario - al entero 4, devolviendo
otro número enterio.
Operadores
aritméticos binarios
|
|
Todos los
operadores binarios admiten expresiones enteras y reales a excepción de div y mod,
que sólo admiten expresiones enteras, por lo que devuelven expresiones enteras.
En el caso de los otros operadores, si los 2 operandos a los que afecta son
enteros, la expresión resultante será entera, pero si alguno o ambos son
reales, la expresión resultado es de tipo real. En esto tenemos de nuevo otra
excepción: el operador / devuelve siempre expresiones de tipo real.
El operador
aritmético + también se puede usar con datos de tipo string. El resultado es la
concatenación de las cadenas. Por ejemplo:
'Esto'
+ 'es una' + 'concatenación de' + 'cadenas'
Suscribirse a:
Entradas (Atom)


.jpg)


