Saltar al contenido

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.

Nivel: principiante12 min11 afirmaciones de esta lección fueron confirmadas por el comprobador exacto al compilar

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
AND se aplica antes que OR
#ABCf
0FALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSO
2FALSOVERDADEROFALSOFALSO
3FALSOVERDADEROVERDADEROVERDADERO
4VERDADEROFALSOFALSOVERDADERO
5VERDADEROFALSOVERDADEROVERDADERO
6VERDADEROVERDADEROFALSOVERDADERO
7VERDADEROVERDADEROVERDADEROVERDADERO

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
Dos agrupaciones, dos reglas distintas
#ABCreading1reading2
0FALSOFALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSOFALSO
2FALSOVERDADEROFALSOFALSOFALSO
3FALSOVERDADEROVERDADEROVERDADEROVERDADERO
4VERDADEROFALSOFALSOVERDADEROFALSO
5VERDADEROFALSOVERDADEROVERDADEROVERDADERO
6VERDADEROVERDADEROFALSOVERDADEROFALSO
7VERDADEROVERDADEROVERDADEROVERDADEROVERDADERO

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
NOT afecta solo a lo que le sigue
#ABtightwide
0FALSOFALSOFALSOVERDADERO
1FALSOVERDADEROVERDADEROVERDADERO
2VERDADEROFALSOFALSOVERDADERO
3VERDADEROVERDADEROFALSOFALSO

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;

Los paréntesis tienen significado
#memberinvitedbannedintendedunbracketed
0FALSOFALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSOFALSO
2FALSOVERDADEROFALSOVERDADEROVERDADERO
3FALSOVERDADEROVERDADEROFALSOFALSO
4VERDADEROFALSOFALSOVERDADEROVERDADERO
5VERDADEROFALSOVERDADEROFALSOVERDADERO
6VERDADEROVERDADEROFALSOVERDADEROVERDADERO
7VERDADEROVERDADEROVERDADEROFALSOVERDADERO

Ajusta member=TRUE, invited=FALSE, banned=TRUE y compara intended con unbracketed.

not-equivalent intended / unbracketed · se cumple

Ejercicios

  1. ¿Cómo agrupa el analizador A OR B AND C? (choose-grouping)
  2. ¿Qué lectura corresponde a NOT A AND B OR C? (choose-grouping)
  3. Encuentra una asignación en la que reading1 y reading2 den 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

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.