Um resultado realmente incrível!!! - página 8

 

Eu já respondi a esta pergunta uma vez. É mais ou menos assim: "sim, acontece que a prioridade das operações na MQL4 é diferente da prioridade das operações adotadas na C. Por algumas razões históricas. Veio da MQL II. Mas como não foi imediatamente notado e muitos programas já foram escritos, não vamos mudar a prioridade das operações, porque tal mudança resultará em uma mudança inesperada na operação de vários programas.

Na MQL5 as prioridades das operações correspondem exatamente às prioridades adotadas em C++

 
stringo >> :


Na MQL5 as prioridades das operações correspondem exatamente às prioridades adotadas em C++

Obrigado. Acho que terminamos aqui. Estamos esperando por cinco.

 
TheXpert писал(а) >>

A partir da simetria das operações. E a simetria das operações segue diretamente das fórmulas alocadas.

Uma das operações simétricas não pode ter prioridade sobre a outra.

Andrew, eu não contesto que as operações são simétricas. Mas como a igualdade de prioridades decorre de sua simetria? Já lhe dei uma expressão cujo resultado é indefinido. Ela muda dependendo de como abrimos os parênteses.

O que é prioridade? É uma forma de interpretar uma expressão indefinida a ou b e c, ou seja, uma instrução sobre qual parte dela deve ser avaliada primeiro. Desta forma, na verdade, estabelece-se a prioridade relativa das operações de conjunção e disjunção. Em C, se não houver informações adicionais, os parênteses implícitos que definem a ordem dos cálculos devem ser colocados assim: a ou (b e c), e em MQL4 - (a ou b) e c. Os resultados serão diferentes.

Suspeito que, ao contrário da aritmética com operações normais de adição e multiplicação, em álgebra booleana pura simplesmente não há interpretação inequívoca da expressão acima - e, portanto, nenhuma prioridade de operações por padrão. A prioridade só aparece nas linguagens de programação. Mas eu posso estar errado.

P.S. Ali, você mesmo já respondeu.

 
Mathemat >> :

Suspeito que, ao contrário da aritmética com as habituais operações de adição e multiplicação, em pura álgebra booleana simplesmente não há interpretação inequívoca da expressão acima - e, portanto, nenhuma prioridade de operações por padrão. A prioridade só aparece nas linguagens de programação. Mas eu posso estar errado.

Era isso o que eu queria dizer. Portanto, imho, você pode especificar qualquer ordem no idioma, e não é de forma alguma um erro. O único problema é a banalidade da solução.

 
Mathemat >> :
....

A prioridade só aparece nas linguagens de programação. Mas eu posso estar errado.

Não só, na maioria dos livros didáticos sobre álgebra de lógica a prioridade também é definida, ou seja, a multiplicação lógica tem uma prioridade maior do que a adição lógica, isto foi definitivamente ensinado por mim mesmo, é intensamente explorado ao derivar o FFT (DNF) sem tabela de verdade, analiticamente

 
stringo писал(а) >>

Eu já respondi a esta pergunta uma vez. É mais ou menos assim: "sim, acontece que a prioridade das operações na MQL4 é diferente da prioridade das operações adotadas na C. Por algumas razões históricas. Veio da MQL II. Mas como não foi imediatamente notado e muitos programas já foram escritos, não vamos mudar a prioridade das operações, porque tal mudança resultará em uma mudança inesperada na operação de vários programas.

Na MQL5 as prioridades das operações correspondem exatamente às prioridades adotadas em C++.

Isso é legal. Como está disponível o suporte para outros idiomas em 5? Totalmente suportado, não através de DLL.

 
Estou disposto a concordar, Galaxy, que a multiplicação em livros didáticos implicitamente (por padrão) tem a maior prioridade sobre a adição. Mas não há reflexão na sintaxe para tal fato. É apenas uma convenção adotada para interpretar expressões abreviadas que não têm parênteses.
 
stringo писал(а) >>

Eu já respondi a esta pergunta uma vez. É mais ou menos assim: "sim, acontece que a prioridade das operações na MQL4 é diferente da prioridade das operações adotadas na C. Por algumas razões históricas. Veio da MQL II. Mas como não foi imediatamente notado e muitos programas já foram escritos, não vamos mudar a prioridade das operações, porque tal mudança resultará em uma mudança inesperada na operação de vários programas.

Na MQL5 as prioridades das operações correspondem exatamente às prioridades adotadas em C++

Boa resposta. Concordo plenamente com esta pergunta. Esta é uma decisão responsável.

 
Galaxy >> :

Não só, na maioria dos livros didáticos sobre álgebra de lógica a prioridade também é definida, ou seja, a multiplicação lógica tem uma prioridade maior que a adição lógica, isto é exatamente o que eu mesmo ensinei, ela é explorada intensivamente ao derivar DNF (DNF) sem uma tabela de verdade, analiticamente

Sim, de fato. Minhas desculpas. Mas isso não está certo.

 
Mathemat >>:
Я готов согласиться, Galaxy, что умножение в учебниках неявно (по умолчанию) имеет высший приоритет по отношению к сложению. Но никакого отражения в синтаксисе для такого факта нет. Это просто соглашение, принятое для интерпретации сокращенных выражений, в которых нет скобок.

Treliças booleanas, filtros, ideais, anéis... Entretanto, a conjunção do nome não é chamada de multiplicação lógica à luz do dia: há várias interpretações diretas

1. Se tomarmos um anel de deduções modulo dois ou seja (0,1 +,*), então a tabela de multiplicação corresponde exatamente à tabela de verdade para conjunção e, conseqüentemente, a tabela de adição deste anel - à tabela de diferença simétrica booleana ou excluindo "ou " (entendi errado e corrigi).ou seja, temos aritmética binária, um caso especial de aritmética usual, onde a multiplicação é superior à adição, ou seja, a conjunção é superior à diferença simétrica e, portanto, obviamente, à disjunção.

Em álgebra booleana 1 é um elemento neutro para conjunção, um 0 para disjunção : 1 && a = a, 0 && a = 0; 1 || a = 1, 0 || a = a ;

3. Os filtros (construídos por intersecção) sempre contêm 1, os ideais (construídos por união) contêm 0, embora filtro e ideal sejam duplos.