Lección 3: Agrupación y precedencia
Qué operador se aplica primero cuando no hay paréntesis, cómo lee el analizador A OR B AND C, y por qué quitar los paréntesis de la regla de entrada deja entrar a un socio vetado. Cuatro pasos, nivel inicial, unos doce minutos.
Aprende qué operador se aplica primero, lee `A OR B AND C` como lo hace el analizador y usa paréntesis para expresar lo que quieres decir.
El orden es fijo: los paréntesis y el complemento pospuesto primero, luego NOT, AND, XOR, OR, -> y <->. El primer paso lo enuncia y lee A OR B AND C como A OR (B AND C). El segundo paso pone las dos lecturas, A OR (B AND C) y (A OR B) AND C, en una tabla y encuentra una asignación que las distingue. El tercero hace lo mismo con NOT A AND B frente a NOT (A AND B), y el cuarto quita los paréntesis de (member OR invited) AND NOT banned para mostrar que member OR invited AND NOT banned admite a un socio vetado.
Tres de los cuatro pasos llevan una afirmación verificada de que las fórmulas emparejadas difieren, y los ejercicios son dos preguntas de opción múltiple sobre cómo agrupa el analizador una expresión y una búsqueda de una asignación que las distinga. La página de precedencia de la sección de operadores imprime la forma totalmente entre paréntesis de lo que escribas, que es el hábito que la lección intenta crear.
La lección es corta porque la regla es corta; la dificultad está por completo en las frases, donde «A o B y C» no tiene precedencia, y el consejo de la lección es poner entre paréntesis cada grupo mixto en lugar de recordar el orden.
Haz esta lección de forma interactiva en la app
Pasos
1. AND se aplica antes que OR
Sin paréntesis, los operadores se aplican en un orden fijo, de mayor a menor precedencia: paréntesis (y el complemento posfijo A'), NOT, AND, XOR, OR, ->, <->.
Así, A OR B AND C significa A OR (B AND C), igual que 1 + 2 × 3 significa 1 + (2 × 3). Tangibool siempre puede mostrar esta lectura totalmente agrupada y añade un aviso cuando se mezclan AND y OR sin paréntesis.
f := A OR B AND C · salida | # | A | B | C | f |
|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | VERDADERO | FALSO |
| 2 | FALSO | VERDADERO | FALSO | FALSO |
| 3 | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 4 | VERDADERO | FALSO | FALSO | VERDADERO |
| 5 | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO |
| 7 | VERDADERO | VERDADERO | VERDADERO | VERDADERO |
Abre la lectura totalmente agrupada de f y compárala con el texto que escribiste.
2. Dos agrupaciones, dos reglas distintas
reading1 := A OR (B AND C) y reading2 := (A OR B) AND C usan las mismas entradas y los mismos operadores y, sin embargo, son reglas distintas.
Basta una asignación para distinguirlas: con A=TRUE, B=FALSE, C=FALSE, reading1 vale TRUE y reading2 vale FALSE. Una asignación distintiva así zanja cualquier discusión sobre qué agrupación se quería decir.
reading1 := A OR (B AND C) · salidareading2 := (A OR B) AND C · salida | # | A | B | C | reading1 | reading2 |
|---|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | VERDADERO | FALSO | FALSO |
| 2 | FALSO | VERDADERO | FALSO | FALSO | FALSO |
| 3 | FALSO | VERDADERO | VERDADERO | VERDADERO | VERDADERO |
| 4 | VERDADERO | FALSO | FALSO | VERDADERO | FALSO |
| 5 | VERDADERO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO | FALSO |
| 7 | VERDADERO | VERDADERO | VERDADERO | VERDADERO | VERDADERO |
Compara reading1 con reading2 y reproduce el contraejemplo que encuentra el verificador.
not-equivalent reading1 / reading2 · se cumple
3. NOT afecta solo a lo que le sigue
NOT A AND B significa (NOT A) AND B: el NOT solo afecta a A. Para negar toda la conjunción, escribe NOT (A AND B).
Ambas difieren, por ejemplo, cuando las dos entradas valen FALSE.
tight := NOT A AND B · salidawide := NOT (A AND B) · salida | # | A | B | tight | wide |
|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | VERDADERO |
| 1 | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 2 | VERDADERO | FALSO | FALSO | VERDADERO |
| 3 | VERDADERO | VERDADERO | FALSO | FALSO |
Pon ambas entradas en FALSE y compara tight con wide.
not-equivalent tight / wide · se cumple
4. Los paréntesis tienen significado
Si quitas los paréntesis de la regla de entrada, su significado cambia: member OR invited AND NOT banned se lee member OR (invited AND NOT banned), de modo que una socia con la entrada prohibida puede entrar.
Cuando una regla mezcla AND y OR, escribe los paréntesis que quieres decir, incluso donde la precedencia daría el mismo resultado.
intended := (member OR invited) AND NOT banned · salidaunbracketed := member OR invited AND NOT banned · salida member: la persona es socia; invited: la persona tiene una invitación; banned: la persona tiene prohibida la entrada;
| # | member | invited | banned | intended | unbracketed |
|---|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | VERDADERO | FALSO | FALSO |
| 2 | FALSO | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 3 | FALSO | VERDADERO | VERDADERO | FALSO | FALSO |
| 4 | VERDADERO | FALSO | FALSO | VERDADERO | VERDADERO |
| 5 | VERDADERO | FALSO | VERDADERO | FALSO | VERDADERO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 7 | VERDADERO | VERDADERO | VERDADERO | FALSO | VERDADERO |
Ajusta member=TRUE, invited=FALSE, banned=TRUE y compara intended con unbracketed.
not-equivalent intended / unbracketed · se cumple
Ejercicios
- ¿Cómo agrupa el analizador
A OR B AND C? (choose-grouping) - ¿Qué lectura corresponde a
NOT A AND B OR C? (choose-grouping) - Encuentra una asignación en la que
reading1yreading2den resultados distintos. (find-assignment)
Haz esta lección de forma interactiva en la app
Preguntas
¿El motor cambia alguna vez mi agrupación?
No. Conserva los paréntesis que escribes y aplica el orden fijo donde no escribes ninguno; la forma totalmente entre paréntesis de cada página muestra lo que leyó.
¿Dónde encajan -> y <->?
Por debajo de OR: A OR B -> C es (A OR B) -> C, y <-> es el más bajo de todos. Las cadenas de -> asocian a la derecha, y las cadenas de <-> deben ir entre paréntesis.
Relacionado
Leyes
Herramientas
Véase también
- Precedencia de operadores en lógica booleana: NOT, luego AND, luego XOR, luego OR
- «A o B y C»: la ambigüedad de agrupación y cómo resolverla
- Ley asociativa: (A·B)·C = A·(B·C)
- El error de la regla de entrada: socio OR (invitado AND NOT vetado) y el caso que difiere
- Lección 1: NOT, AND, OR: los operadores básicos
- Lección 9: Contraejemplos
Lecciones
Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.