property exercises english commutative associativity

associativity - exercises - commutative property definition



¿Qué es la asociatividad de los operadores y por qué es importante? (9)

Es el orden de evaluación para operadores de la misma precedencia. La orden IZQUIERDA A DERECHA o DERECHA A IZQUIERDA es importante. por

3 - 2 - 1

Si es IZQUIERDA a DERECHA, entonces es

(3 - 2) - 1

y es 0. Si es DERECHA DE IZQUIERDA, entonces es

3 - (2 - 1)

y es 2. En la mayoría de los idiomas, decimos que el operador menos tiene una asociatividad IZQUIERDA A DERECHA.

¿Qué es la asociatividad (para un operador) y por qué es importante?

Actualizado: asociatividad de operadores


Hay tres tipos de asociatividad:

La propiedad asociativa en la matemática.

Orden de Operaciones en lenguajes de programación

Asociatividad en cachés de CPU.

La propiedad asociativa en matemáticas es una propiedad de operadores tales como la suma (+). Esta propiedad le permite reorganizar paréntesis sin cambiar el valor de una declaración, es decir:

(a + b) + c = a + (b + c)

En los lenguajes de programación, la asociatividad (o fijeza) de un operador es una propiedad que determina cómo se agrupan los operadores de la misma precedencia en ausencia de paréntesis; Es decir, en qué orden se evalúa cada operador. Esto puede diferir entre los lenguajes de programación.

En las cachés de CPU, la asociatividad es un método para optimizar el rendimiento.


La mayoría de los ejemplos anteriores han usado constantes. Si los argumentos son llamadas de función, el orden en que se realizan las llamadas puede ser determinado por las reglas de asociación, dependiendo, por supuesto, de su compilador. Y si esas funciones tienen efectos secundarios.


Si se refiere a "asociatividad de operadores", es cómo un lenguaje determina cómo se agrupan los operadores de la misma precedencia en ausencia de paréntesis.

Por ejemplo, los operadores + y - en lenguajes basados ​​en C tienen la misma prioridad. Cuando escribes una expresión que usa ambos (sin paréntesis) el compilador debe determinar en qué orden evaluarlos.

Si escribes 12 - 5 + 3, las posibles evaluaciones incluyen:

  1. (12 - 5) + 3 = 10
  2. 12 - (5 + 3) = 4

Dependiendo del orden en el que evalúe la expresión, puede obtener diferentes resultados. En lenguajes basados ​​en C, + y - han dejado asociatividad, lo que significa que la expresión anterior se evaluaría como el primer caso.

Todos los lenguajes tienen reglas fuertemente definidas tanto para la precedencia como para la asociatividad. Puedes aprender más sobre las reglas de C# aquí. Los conceptos generales de asociatividad y precedence de operadores están bien cubiertos en wikipedia.


Si te refieres a la asociatividad del operador:

Define la forma en que se analizan las expresiones. Da un estándar, por lo que cada expresión se analiza de la misma manera.

Es sobre todo importante para las operaciones que tienen el mismo precedente, cuando podría haber efectos secundarios.


Supongo que te refieres a la asociatividad del operador ...

Es el orden de unión de los operandos a un operador. Básicamente:

a - b + c

podría evaluarse como (suponiendo que - y + tienen la misma prioridad):

((a - b) + c) o,
(a - (b + c))

Si los operadores se dejan asociativos (se unen inmediatamente al operando izquierdo), se evaluará como el primero. Si son asociativos, será evaluado como el segundo.


Todos sabemos que la precedencia es importante, pero también lo es la asociatividad para interpretar el significado de una expresión. Para una introducción realmente simple, prueba Power of Operators .


¡¡Sencillo!! Asociativo izquierdo significa que evaluamos nuestra expresión de izquierda a derecha.

Asociativo derecho significa que evaluamos nuestra expresión de derecha a izquierda.

Sabemos *, / y% tienen la misma prioridad, pero según la asociatividad, la respuesta puede cambiar.

Por ejemplo: tengo exp: 4 * 8/2% 5

Asociativo izquierdo: (4 * 8) / 2% 5 ==> (32/2)% 5 ==> 16% 5 ==> 1

Asociativo derecho: 4 * 8 / (2% 5) ==> 4 * (8/0) ==> Comportamiento indefinido

Espero que esto ayude. . .


Para los operadores, asociatividad significa que cuando el mismo operador aparece en una fila, a continuación, en qué ocurrencia del operador aplicamos primero. En lo siguiente, sea Q el operador.

a Q b Q c

Si Q se deja asociativa, entonces se evalúa como

(a Q b) Q c

Y si es correcto asociativo, entonces evalúa como

a Q (b Q c)

Es importante, ya que cambia el significado de una expresión. Considere el operador de división con aritmética de enteros, que es asociativa a la izquierda

4 / 2 / 3 <=> (4 / 2) / 3 <=> 2 / 3 = 0

Si fuera asociativa, se evaluaría a una expresión indefinida, ya que se dividiría por cero

4 / 2 / 3 <=> 4 / (2 / 3) <=> 4 / 0 = undefined