O que significa o termo "BODMAS" significa?

votos
15

O que é BODMAS e por que é útil na programação?

Publicado 06/08/2008 em 15:54
fonte usuário
Em outras línguas...                            


7 respostas

votos
20

http://www.easymaths.com/What_on_earth_is_Bodmas.htm :

O que você acha a resposta para 2 + 3 x 5 é?

É (2 + 3) x 5 = 5 x 5 = 25?

ou 2 + (3 x 5) = 2 + 15 = 17?

BODMAS pode vir para o resgate e nos dar regras a seguir para que nós sempre obter a resposta certa:

(B) raquetes (O) rder (D) iVision (M) ultiplication (A) ddition (S) ubtraction

De acordo com BODMAS, multiplicação deve sempre ser feito antes disso, portanto, 17 é realmente a resposta correta de acordo com BODMAS e também vai ser a resposta que sua calculadora vai dar se você digitar 2 + 3 x 5.

Por que é útil na programação? Não faço ideia, mas eu suponho que é porque você pode se livrar de alguns suportes? Eu sou um programador muito defensiva, então minhas linhas pode ficar assim:

result = (((i + 4) - (a + b)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER;

com BODMAS você pode fazer isso um pouco mais claro:

result = (i + 4 - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;

Eu acho que eu ainda usaria a primeira variante - mais suportes, mas desse jeito eu não tenho que aprender ainda outra regra e eu correr em menos risco de esquecê-la e fazendo com que aqueles duros estranho para depurar erros?

Apenas adivinhar em que parte embora.

Mike Stone EDIT: matemática fixa como Gaius aponta

Respondeu 06/08/2008 em 15:57
fonte usuário

votos
8

Outra versão deste (no ensino médio) foi "Por favor, desculpe minha cara tia Sally".

  • Parênteses
  • expoentes
  • Multiplicação
  • Divisão
  • Adição
  • Subtração

O dispositivo mnemônico foi útil na escola, e ainda útil na programação de hoje.

Respondeu 06/08/2008 em 16:01
fonte usuário

votos
5

Eu não tenho o poder de editar a resposta de @ Michael Stum , mas não é totalmente correcta. ele reduz

(i + 4) - (a + b)

para

(i + 4 - a + b)

Eles não são equivalentes. A melhor redução posso obter para toda a expressão é

((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;

ou

(i + 4 - a - b) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
Respondeu 14/08/2008 em 02:29
fonte usuário

votos
5

Ordem das operações em uma expressão, tais como:

foo * (bar + baz^2 / foo) 
  • B raquetes primeiros
  • O rders (isto é, Powers e raízes quadradas, etc.)
  • D iVision e M ultiplication (da esquerda para a direita)
  • A ddition e S ubtraction (da esquerda para a direita)

fonte: http://www.mathsisfun.com/operation-order-bodmas.html

Respondeu 06/08/2008 em 16:03
fonte usuário

votos
4

Quando eu aprendi isso na escola (no Canadá) foi referido como BEDMAS:

B raquetes
E xponents
D iVision
M ultiplication
Um ddition
S ubtraction

Apenas para aqueles que a partir desta parte do mundo ...

Respondeu 06/08/2008 em 16:11
fonte usuário

votos
1

Eu não sou realmente certo como aplicável a programação do velho mnemônico BODMAS é de qualquer maneira. Não há nenhuma garantia sobre a ordem das operações entre as línguas, e enquanto muitos manter as operações padrão nessa ordem, nem todos fazem. E depois há algumas línguas onde a ordem das operações não é realmente tudo o que significativas (dialetos Lisp, por exemplo). De certa forma, você está provavelmente melhor para a programação, se você esquecer a ordem padrão e quer usar parênteses para tudo (por exemplo, (a * b) + c) ou aprender especificamente a ordem para cada idioma em que trabalha.

Respondeu 06/08/2008 em 16:12
fonte usuário

votos
0

Eu li em algum lugar que, especialmente em C / C ++ dividir suas expressões em declarações pequenos era melhor para a otimização; então ao invés de escrever expressões extremamente complexas em uma linha, você armazenar em cache as partes em variáveis ​​e fazer cada um em etapas, em seguida, construir-los como você vá junto.

As rotinas de otimização irá usar registros em lugares onde você tinha variáveis ​​por isso não deve afetar o espaço, mas pode ajudar o compilador um pouco.

Respondeu 22/10/2008 em 11:45
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more