En matemáticas y programación informática , el orden de operaciones es una colección de reglas que reflejan convenciones sobre qué operaciones realizar primero para evaluar una expresión matemática dada .
Estas reglas se formalizan con una clasificación de las operaciones. La clasificación de una operación se denomina precedencia y una operación con una precedencia más alta se realiza antes que las operaciones con una precedencia más baja . Las calculadoras generalmente realizan operaciones con la misma precedencia de izquierda a derecha, [1] pero algunos lenguajes de programación y calculadoras adoptan convenciones diferentes.
Por ejemplo, a la multiplicación se le concede una precedencia mayor que a la suma, y ha sido así desde la introducción de la notación algebraica moderna . [2] [3] Así, en la expresión 1 + 2 × 3 , la multiplicación se realiza antes de la suma, y la expresión tiene el valor 1 + (2 × 3) = 7 , y no (1 + 2) × 3 = 9 . Cuando se introdujeron los exponentes en los siglos XVI y XVII, se les dio precedencia sobre la suma y la multiplicación y se colocaron como un superíndice a la derecha de su base. [2] Así, 3 + 5 2 = 28 y 3 × 5 2 = 75 .
Estas convenciones existen para evitar la ambigüedad de la notación y al mismo tiempo permitir que la notación sea breve. [4] Cuando se desea anular las convenciones de precedencia, o incluso simplemente enfatizarlas, se pueden usar paréntesis ( ). Por ejemplo, (2 + 3) × 4 = 20 fuerza a que la suma preceda a la multiplicación, mientras que (3 + 5) 2 = 64 fuerza a que la suma preceda a la exponenciación . Si se requieren múltiples pares de paréntesis en una expresión matemática (como en el caso de paréntesis anidados), los paréntesis pueden reemplazarse por otros tipos de corchetes para evitar confusiones, como en [2 × (3 + 4)] − 5 = 9 .
Estas reglas sólo tienen sentido cuando se utiliza la notación habitual (denominada notación infija ). Cuando se utiliza la notación funcional o polaca para todas las operaciones, el orden de las operaciones resulta de la propia notación.
El orden de operaciones, es decir, el orden en el que se realizan habitualmente las operaciones de una expresión, es el resultado de una convención adoptada en toda la matemática, la ciencia, la tecnología y muchos lenguajes de programación informática . Se resume en: [2] [5]
Esto significa que para evaluar una expresión, primero se evalúa cualquier subexpresión dentro de paréntesis, trabajando de adentro hacia afuera si hay más de un conjunto. Ya sea dentro de paréntesis o no, la operación que está más arriba en la lista anterior debe aplicarse primero. Las operaciones de la misma precedencia se evalúan convencionalmente de izquierda a derecha.
Si cada división se reemplaza por una multiplicación por el recíproco (inverso multiplicativo), las leyes asociativas y conmutativas de la multiplicación permiten que los factores de cada término se multipliquen juntos en cualquier orden. A veces, la multiplicación y la división tienen la misma precedencia, o a veces, la multiplicación tiene mayor precedencia que la división; consulte el § División y multiplicación mixtas a continuación. Si cada resta se reemplaza por la suma del opuesto (inverso aditivo), las leyes asociativas y conmutativas de la adición permiten que los términos se sumen en cualquier orden.
El símbolo de raíz √ se prolonga tradicionalmente con una barra (llamada vinculum ) sobre el radicando (esto evita la necesidad de paréntesis alrededor del radicando). Otras funciones usan paréntesis alrededor de la entrada para evitar ambigüedad. [6] [7] [a] Los paréntesis se pueden omitir si la entrada es una sola variable numérica o constante, [2] como en el caso de sin x = sin( x ) y sin π = sin(π) . [a] Tradicionalmente, esta convención se extiende a los monomios ; por lo tanto, sin 3 x = sin(3 x ) e incluso sin 1/2 xy = sin( xy /2) , pero sin x + y = sin( x ) + y , porque x + y no es un monomio. Sin embargo, esta convención no se entiende universalmente, y algunos autores prefieren paréntesis explícitos. [b] Algunas calculadoras y lenguajes de programación requieren paréntesis alrededor de las entradas de funciones, otros no.
Los símbolos de agrupación se pueden utilizar para anular el orden habitual de operaciones. [2] Los símbolos agrupados se pueden tratar como una única expresión. [2] Los símbolos de agrupación se pueden eliminar utilizando las leyes asociativas y distributivas , también se pueden eliminar si la expresión dentro del símbolo de agrupación se simplifica lo suficiente como para que no resulte ninguna ambigüedad de su eliminación.
Multiplicación antes de la suma:
Las subexpresiones entre paréntesis se evalúan primero:
Exponenciación antes de multiplicación, multiplicación antes de resta:
Cuando una expresión se escribe como superíndice, se considera que el superíndice está agrupado por su posición sobre su base:
El operando de un símbolo raíz está determinado por la barra superior:
Una línea fraccionaria horizontal también actúa como símbolo de agrupación:
Los paréntesis se pueden anidar y deben evaluarse de adentro hacia afuera. Para facilitar la lectura, los paréntesis externos se pueden hacer más grandes que los internos. Alternativamente, a veces se utilizan otros símbolos de agrupación, como llaves { } o corchetes [ ] , junto con los paréntesis ( ) . Por ejemplo:
Existen diferentes convenciones en relación con la operación unaria '−' (que suele pronunciarse "minus"). En matemáticas escritas o impresas, la expresión −3 2 se interpreta como −(3 2 ) = −9 . [2] [8]
En algunas aplicaciones y lenguajes de programación, en particular Microsoft Excel , PlanMaker (y otras aplicaciones de hojas de cálculo) y el lenguaje de programación bc , las operaciones unarias tienen mayor prioridad que las operaciones binarias, es decir, el resta unaria tiene mayor precedencia que la exponenciación, por lo que en esos lenguajes −3 2 se interpretará como (−3) 2 = 9. [ 9] Esto no se aplica a la operación de resta binaria '−'; por ejemplo, en Microsoft Excel, mientras que las fórmulas =-2^2
, =-(2)^2
y =0+-2^2
devuelven 4, las fórmulas =0-2^2
y =-(2^2)
devuelven −4.
No existe una convención universal para interpretar una expresión que contenga tanto una división denotada por '÷' como una multiplicación denotada por '×'. Las convenciones propuestas incluyen asignar a las operaciones la misma precedencia y evaluarlas de izquierda a derecha, o tratar de manera equivalente la división como una multiplicación por el recíproco y luego evaluar en cualquier orden; [10] evaluar primero todas las multiplicaciones seguidas de las divisiones de izquierda a derecha; o evitar tales expresiones y, en su lugar, desambiguarlas siempre mediante paréntesis explícitos. [11]
Más allá de la educación primaria, el símbolo '÷' para la división rara vez se usa, sino que se reemplaza por el uso de fracciones algebraicas , [12] típicamente escritas verticalmente con el numerador apilado sobre el denominador, lo que hace que la agrupación sea explícita e inequívoca, pero a veces se escriben en línea usando la barra o el símbolo de barra sólida, '/'. [13]
La multiplicación denotada por yuxtaposición (también conocida como multiplicación implícita ) crea una unidad visual y tiene mayor precedencia que la mayoría de las otras operaciones. En la literatura académica, cuando las fracciones en línea se combinan con la multiplicación implícita sin paréntesis explícitos, la multiplicación se interpreta convencionalmente como que tiene mayor precedencia que la división, de modo que, por ejemplo, 1 / 2 n se interpreta como 1 / (2 · n ) en lugar de (1 / 2) · n . [2] [10] [14] [15] Por ejemplo, las instrucciones de envío de manuscritos para las revistas Physical Review establecen directamente que la multiplicación tiene precedencia sobre la división, [16] y esta es también la convención observada en los libros de texto de física como el Curso de Física Teórica de Landau y Lifshitz [c] y libros de texto de matemáticas como Matemáticas Concretas de Graham , Knuth y Patashnik . [17] Sin embargo, algunos autores desaconsejan expresiones como a / bc , prefiriendo el uso explícito del paréntesis a / ( bc ) . [3]
Los casos más complicados son más ambiguos. Por ejemplo, la notación 1 / 2 π ( a + b ) podría significar plausiblemente 1 / [2 π · ( a + b )] o [1 / (2 π )] · ( a + b ) . [18] A veces la interpretación depende del contexto. Las instrucciones de envío de Physical Review recomiendan no usar expresiones de la forma a / b / c ; las expresiones más explícitas ( a / b ) / c o a / ( b / c ) son inequívocas. [16]
Esta ambigüedad ha sido objeto de memes de Internet como " 8 ÷ 2(2 + 2) ", para el que hay dos interpretaciones conflictivas: 8 ÷ [2 · (2 + 2)] = 1 y (8 ÷ 2) · (2 + 2) = 16. [15] [19] El investigador de educación matemática Hung-Hsi Wu señala que "uno nunca obtiene un cálculo de este tipo en la vida real", y llama a estos ejemplos artificiales "una especie de juego de salón Gotcha! diseñado para atrapar a una persona desprevenida al formularlo en términos de un conjunto de reglas irrazonablemente complicadas". [12]
Si la exponenciación se indica mediante símbolos apilados utilizando notación de superíndice, la regla habitual es trabajar de arriba hacia abajo: [2] [7]
que normalmente no es igual a ( a b ) c . Esta convención es útil porque existe una propiedad de exponenciación que establece que ( a b ) c = a bc , por lo que no es necesario utilizar la exponenciación serial para esto.
Sin embargo, cuando la exponenciación se representa con un símbolo explícito, como un signo de intercalación (^) o una flecha (↑), no existe un estándar común. Por ejemplo, Microsoft Excel y el lenguaje de programación computacional MATLAB evalúan como ( a b ) c , pero Google Search y Wolfram Alpha como a ( b c ) . Por lo tanto, se evalúa como 4096 en el primer caso y como 262 144 en el segundo caso.a^b^c
4^3^2
Las siglas mnemotécnicas se enseñan a menudo en las escuelas primarias para ayudar a los estudiantes a recordar el orden de las operaciones. [20] [21] El acrónimo PEMDAS , que significa P arentesis, E xponents, M ultiplication/ Division , Addion / Subtraction , [22] es común en los Estados Unidos [23] y Francia. [24] A veces las letras se expanden en palabras de una oración mnemotécnica como "Please Excuse My Dear Aunt Sally". [25] El Reino Unido y otros países de la Commonwealth pueden usar BODMAS (o a veces BOMDAS ), que significa B rackets, O f, D ivision/ M ultiplication, Addion / Subtraction , con "of" significando multiplicación de fracciones. [26] [27] A veces la O se expande como O rder, que significa exponente o raíz, [27] [28] o se reemplaza por I para índices en la mnemotécnica alternativa BIDMAS . [27] [29] En Canadá y Nueva Zelanda, el BEDMAS es común. [30]
En Alemania, la convención se enseña simplemente como Punktrechnung vor Strichrechnung , "operaciones con puntos antes de operaciones con líneas" haciendo referencia a las formas gráficas de los signos operadores enseñados U+00B7 · PUNTO MEDIO (multiplicación), U+2236 ∶ RATIO (división) y U+002B + SIGNO MÁS (suma), U+2212 − SIGNO MENOS (resta).
Estos mnemónicos pueden ser engañosos cuando se escriben de esta manera. [25] Por ejemplo, si se malinterpreta cualquiera de las reglas anteriores para que signifiquen "primero la suma, luego la resta", se evaluaría incorrectamente la expresión [25] como , mientras que la evaluación correcta es . Estos valores son diferentes cuando .
Las siglas mnemotécnicas han sido criticadas por no desarrollar una comprensión conceptual del orden de las operaciones y por no abordar las preguntas de los estudiantes sobre su propósito o flexibilidad. [31] [32] Los estudiantes que aprenden el orden de las operaciones mediante siglas mnemotécnicas cometen errores rutinariamente, [33] al igual que algunos profesores en formación. [34] Incluso cuando los estudiantes aprenden correctamente la sigla, un enfoque desproporcionado en la memorización de trivialidades desplaza el contenido matemático sustancial. [12] La aplicación procedimental de la sigla no coincide con la comprensión intuitiva de los expertos de la notación matemática: la notación matemática indica agrupaciones de formas distintas a los paréntesis o corchetes y una expresión matemática es una jerarquía similar a un árbol en lugar de una estructura lineal "ordenada"; además, no existe un orden único por el cual las expresiones matemáticas deben simplificarse o evaluarse ni una simplificación canónica universal para ninguna expresión en particular, y los expertos aplican con fluidez transformaciones y sustituciones válidas en cualquier orden que sea conveniente, por lo que aprender un procedimiento rígido puede llevar a los estudiantes a una comprensión engañosa y limitante de la notación matemática. [35]
Distintas calculadoras siguen órdenes de operaciones diferentes. [2] Muchas calculadoras simples sin una pila implementan la entrada en cadena , trabajando en orden de pulsación de botón sin dar prioridad a las diferentes operaciones, y dan un resultado diferente del que dan las calculadoras más sofisticadas. Por ejemplo, en una calculadora simple, escribir da 1 + 2 × 3 =
como resultado 9, mientras que una calculadora más sofisticada usará una prioridad más estándar, por lo que escribir da 1 + 2 × 3 =
como resultado 7.
Las calculadoras pueden asociar exponentes a la izquierda o a la derecha. Por ejemplo, la expresión se interpreta como a ( b c ) en la TI-92 y la TI-30XS MultiView en "modo Mathprint", mientras que se interpreta como ( a b ) c en la TI-30XII y la TI-30XS MultiView en "modo clásico".a^b^c
Una expresión como se interpreta como 1/(2 x ) por la TI-82 , [3] así como muchas calculadoras Casio modernas [36] (configurable en algunas como la fx-9750GIII ), pero como (1/2) x por la TI-83 y todas las demás calculadoras TI lanzadas desde 1996, [37] [3] así como por todas las calculadoras Hewlett-Packard con notación algebraica. Si bien algunos usuarios pueden esperar la primera interpretación debido a la naturaleza de la multiplicación implícita , [38] la última está más en línea con la regla de que la multiplicación y la división tienen igual precedencia. [3]1/2x
Cuando el usuario no está seguro de cómo una calculadora interpretará una expresión, se pueden utilizar paréntesis para eliminar la ambigüedad. [3]
El orden de operaciones surgió debido a la adaptación de la notación infija en la notación matemática estándar , que puede ser ambigua en términos de notación sin dichas convenciones, a diferencia de la notación posfija o la notación prefija , que no necesitan órdenes de operaciones. [39] [40] Por lo tanto, las calculadoras que utilizan la notación polaca inversa (RPN) usando una pila para ingresar expresiones en el orden de precedencia correcto no necesitan paréntesis ni ningún orden de ejecución posiblemente específico del modelo. [25] [22]
La mayoría de los lenguajes de programación utilizan niveles de precedencia que se ajustan al orden comúnmente utilizado en matemáticas, [41] aunque otros, como APL , Smalltalk , Occam y Mary , no tienen reglas de precedencia de operadores (en APL, la evaluación es estrictamente de derecha a izquierda; en Smalltalk, es estrictamente de izquierda a derecha).
Además, debido a que muchos operadores no son asociativos, el orden dentro de cualquier nivel individual se define generalmente agrupando de izquierda a derecha, de modo que 16/4/4
se interpreta como (16/4)/4 = 1 en lugar de 16/(4/4) = 16 ; a estos operadores se los denomina "asociativos por izquierda". Existen excepciones; por ejemplo, los lenguajes con operadores correspondientes a la operación cons en listas generalmente los agrupan de derecha a izquierda ("asociativos por derecha"), por ejemplo en Haskell , 1:2:3:4:[] == 1:(2:(3:(4:[]))) == [1,2,3,4]
.
Dennis Ritchie , creador del lenguaje C , dijo de la precedencia en C (compartida por los lenguajes de programación que toman prestadas esas reglas de C, por ejemplo, C++ , Perl y PHP ) que hubiera sido preferible mover los operadores bit a bit por encima de los operadores de comparación . [42] Muchos programadores se han acostumbrado a este orden, pero lenguajes populares más recientes como Python [43] y Ruby [44] tienen este orden invertido. Los niveles de precedencia relativa de los operadores que se encuentran en muchos lenguajes de estilo C son los siguientes:
1 | () [] -> . :: | Llamada de función, alcance, acceso a matriz/miembro |
2 | ! ~ - + * & sizeof tipo de reparto ++ -- | (La mayoría de) los operadores unarios, sizeof y conversiones de tipos (de derecha a izquierda) |
3 | * / % MOD | Multiplicación, división, módulo |
4 | + - | Suma y resta |
5 | << >> | Desplazamiento bit a bit a la izquierda y a la derecha |
6 | < <= > >= | Comparaciones: menor que y mayor que |
7 | == != | Comparaciones: iguales y no iguales |
8 | & | AND bit a bit |
9 | ^ | Operación OR exclusiva bit a bit (XOR) |
10 | | | Inclusivo bit a bit (normal) OR |
11 | && | Y lógico |
12 | || | OR lógico |
13 | ? : | Expresión condicional (ternaria) |
14 | = += -= *= /= %= &= |= ^= <<= >>= | Operadores de asignación (de derecha a izquierda) |
15 | , | Operador de coma |
Ejemplos:
!A + !B
se interpreta como(!A) + (!B)
++A + !B
se interpreta como(++A) + (!B)
A + B * C
se interpreta comoA + (B * C)
A || B && C
se interpreta comoA || (B && C)
A && B == C
se interpreta comoA && (B == C)
A & B == C
se interpreta comoA & (B == C)
(En Python , Ruby , PARI/GP y otros lenguajes populares, A & B == C
se interpreta como (A & B) == C
.)
Los compiladores de código fuente a código fuente que compilan en varios lenguajes deben abordar explícitamente la cuestión de los distintos órdenes de operaciones en los distintos lenguajes. Haxe, por ejemplo, estandariza el orden y lo hace cumplir insertando corchetes donde corresponde.
Se ha descubierto que la precisión del conocimiento de los desarrolladores de software sobre la precedencia de los operadores binarios sigue de cerca su frecuencia de aparición en el código fuente. [46]
El orden de las operaciones surgió progresivamente a lo largo de los siglos. La regla de que la multiplicación tiene precedencia sobre la suma se incorporó al desarrollo de la notación algebraica en el siglo XVII, ya que la propiedad distributiva implica esto como una jerarquía natural. Tan recientemente como en la década de 1920, el historiador de las matemáticas, Florian Cajori, identifica un desacuerdo sobre si la multiplicación debería tener precedencia sobre la división, o si deberían ser tratadas por igual. El término "orden de las operaciones" y las mnemotecnias "PEMDAS/BEDMAS" se formalizaron recién a fines del siglo XIX o principios del XX, cuando creció la demanda de libros de texto estandarizados. La ambigüedad sobre cuestiones como si la multiplicación implícita tiene precedencia sobre la multiplicación y división explícitas en expresiones como a/2b, que podría interpretarse como a/(2b) o (a/2)*b, implica que las convenciones aún no son completamente estables. [47] [48]
sin
), pero no la usan con nombres de funciones genéricos (como f
).Regel 7: Ist F ( A ) Teilzeichenreihe eines arithmetischen Ausdrucks oder einer seiner Abkürzungen und F eine Funktionenkonstante und A eine Zahlenvariable oder Zahlenkonstante, so darf F A dafür geschrieben werden. [Darüber hinaus ist noch die Abkürzung F n ( A ) für ( F ( A )) n üblich. Dabei kann F sowohl Funktionenkonstante als auch Funktionenvariable sein.]
El lenguaje del álgebra [...] puede usarse como abreviatura para abreviar y simplificar enunciados largos o complicados.
El libro de Chrystal fue la fuente canónica en inglés sobre álgebra de secundaria de principios del siglo XX y, plausiblemente, la fuente de muchas descripciones posteriores del orden de las operaciones. Sin embargo, si bien el libro de Chrystal establece inicialmente una regla rígida para evaluar expresiones que involucran los símbolos '÷' y '×', más tarde otorga sistemáticamente a la multiplicación implícita mayor precedencia que a la división al escribir fracciones en línea, sin discutir nunca explícitamente la discrepancia entre la regla formal y la práctica común.
Una expresión de la forma a / bc significa lo mismo que a /( bc ) . Además, log x /log y = (log x )/(log y ) y 2 n ! = 2( n !) .
PEMDAS es un acrónimo o mnemónico para el orden de operaciones que significa paréntesis, exponentes, multiplicación, división, adición y resta. Este acrónimo es ampliamente utilizado en los Estados Unidos de América. Mientras tanto, en otros países como Reino Unido y Canadá, los acrónimos utilizados son BODMAS (Brackets, Order, Division, Multiplication, Addition and Subtraction) y BIDMAS (Brackets, Indices, Division, Multiplication, Addition and Subtraction).
[...] los estudiantes frecuentemente cometen errores de cálculo con expresiones que tienen multiplicación y división o suma y resta una al lado de la otra. [...]
Ahora, la multiplicación implícita es reconocida por el
AOS
y las funciones de raíz cuadrada, logarítmicas y trigonométricas pueden seguirse con sus argumentos como cuando se trabaja con lápiz y papel.
(NB. La TI-88 sólo existió como prototipo y nunca fue lanzada al público).