Ein wirklich erstaunliches Ergebnis!!! - Seite 8

 

Ich habe diese Frage schon einmal beantwortet. Es geht ungefähr so: "Ja, es ist so, dass die Priorität der Operationen in MQL4 anders ist als die Priorität der Operationen in C. Aus einigen historischen Gründen. Es stammt von MQL II. Da dies jedoch nicht sofort bemerkt wurde und bereits viele Programme geschrieben wurden, werden wir die Priorität der Operationen nicht ändern, da eine solche Änderung zu einer unerwarteten Änderung in der Funktionsweise einer Reihe von Programmen führen würde.

In MQL5 entsprechen die Prioritäten der Operationen genau den in C++ angenommenen Prioritäten

 
stringo >> :


In MQL5 entsprechen die Prioritäten der Operationen genau den in C++ angenommenen Prioritäten

Ich danke Ihnen. Ich glaube, wir sind hier fertig. Wir warten auf fünf.

 
TheXpert писал(а) >>

Von der Symmetrie der Operationen. Und die Symmetrie der Operationen ergibt sich direkt aus den zugeordneten Formeln.

Eine der symmetrischen Operationen kann keinen Vorrang vor der anderen haben.

Andrew, ich bestreite nicht, dass die Operationen symmetrisch sind. Wie aber ergibt sich aus der Symmetrie der Prioritäten deren Gleichheit? Ich habe Ihnen bereits einen Ausdruck gegeben, dessen Ergebnis undefiniert ist. Es hängt davon ab, wie wir die Klammern öffnen.

Was ist Priorität? Es ist eine Art, einen undefinierten Ausdruck a oder b und c zu interpretieren, d.h. eine Anweisung, welcher Teil des Ausdrucks zuerst ausgewertet werden soll. Auf diese Weise wird die relative Priorität von Konjunktions- und Disjunktionsoperationen festgelegt. In C, wenn es keine zusätzlichen Informationen gibt, sollten implizite Klammern, die die Reihenfolge der Berechnungen bestimmen, wie folgt gesetzt werden: a oder (b und c), und in MQL4 - (a oder b) und c. Die Ergebnisse werden unterschiedlich ausfallen.

Ich vermute, dass es in der reinen Booleschen Algebra, anders als in der Arithmetik mit den üblichen Additions- und Multiplikationsoperationen, einfach keine eindeutige Interpretation des obigen Ausdrucks gibt - und damit auch keinen Vorrang der Operationen in der Voreinstellung. Der Vorrang kommt nur in Programmiersprachen vor. Aber ich könnte mich irren.

P.S. Da haben Sie sich die Frage schon selbst beantwortet.

 
Mathemat >> :

Ich vermute, dass es im Gegensatz zur Arithmetik mit den üblichen Additions- und Multiplikationsoperationen in der reinen Booleschen Algebra einfach keine eindeutige Interpretation des obigen Ausdrucks gibt - und damit auch keine standardmäßige Priorität der Operationen. Der Vorrang kommt nur in Programmiersprachen vor. Aber ich könnte mich irren.

Genau das wollte ich sagen. Sie können also imho jede beliebige Reihenfolge in der Sprache angeben, und das ist keineswegs ein Fehler. Das einzige Problem ist die Allgemeinheit der Lösung.

 
Mathemat >> :
....

Der Vorrang kommt nur in Programmiersprachen vor. Aber ich könnte mich irren.

Nicht nur, dass in den meisten Lehrbüchern zur Algebra der Logik auch die Priorität definiert ist, d.h. die logische Multiplikation hat eine höhere Priorität als die logische Addition, das habe ich mir definitiv selbst beigebracht, es wird auch intensiv ausgenutzt bei der Ableitung der FFT (DNF) ohne Wahrheitstabelle, analytisch

 
stringo писал(а) >>

Ich habe diese Frage schon einmal beantwortet. Es geht ungefähr so: "Ja, es ist so, dass die Priorität der Operationen in MQL4 anders ist als die Priorität der Operationen in C. Aus einigen historischen Gründen. Es stammt von MQL II. Da dies jedoch nicht sofort bemerkt wurde und bereits viele Programme geschrieben wurden, werden wir die Priorität der Operationen nicht ändern, da eine solche Änderung zu einer unerwarteten Änderung in der Funktionsweise einer Reihe von Programmen führen würde.

In MQL5 entsprechen die Prioritäten der Operationen genau den in C++ angenommenen Prioritäten.

Das ist cool. Wie sieht die Unterstützung für andere Sprachen in 5 aus? Vollständig unterstützt, nicht durch DLL.

 
Ich bin bereit, Galaxy, zuzustimmen, dass die Multiplikation in Lehrbüchern implizit (standardmäßig) die höchste Priorität gegenüber der Addition hat. In der Syntax gibt es dafür aber keinen Anhaltspunkt. Es handelt sich dabei lediglich um eine Konvention zur Interpretation von abgekürzten Ausdrücken, die keine Klammern enthalten.
 
stringo писал(а) >>

Ich habe diese Frage schon einmal beantwortet. Es geht ungefähr so: "Ja, zufällig ist die Priorität der Operationen in MQL4 anders als die Priorität der Operationen in C. Aus einigen historischen Gründen. Es stammt von MQL II. Da dies jedoch nicht sofort bemerkt wurde und bereits viele Programme geschrieben wurden, werden wir die Priorität der Operationen nicht ändern, da eine solche Änderung zu einer unerwarteten Änderung in der Funktionsweise einer Reihe von Programmen führen würde.

In MQL5 entsprechen die Prioritäten der Operationen genau den in C++ angenommenen Prioritäten

Gute Antwort. Ich bin mit dieser Frage völlig einverstanden. Dies ist eine verantwortungsvolle Entscheidung.

 
Galaxy >> :

Nicht nur, dass in den meisten Lehrbüchern über die Algebra der Logik auch die Priorität definiert ist, d.h. die logische Multiplikation hat eine höhere Priorität als die logische Addition, genau das habe ich mir selbst beigebracht, es wird auch intensiv ausgenutzt, wenn man DNF (DNF) ohne Wahrheitstabelle, analytisch ableitet

Ja, in der Tat. Ich bitte um Entschuldigung. Aber das ist nicht richtig.

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

Boolesche Gatter, Filter, Ideale, Ringe... Der Name Konjunktion wird jedoch nicht von ungefähr logische Multiplikation genannt: Es gibt mehrere direkte Interpretationen

1. Wenn wir einen Ring von Ableitungen modulo zwei nehmen, d.h. (0,1 +,*), dann entspricht die Multiplikationstabelle genau der Wahrheitstabelle für Konjunktion und dementsprechend die Additionstabelle dieses Rings - der Tabelle der booleschen symmetrischen Differenz oder ohne "oder " (ich habe es falsch verstanden und korrigiert).d.h. wir haben die binäre Arithmetik, einen Spezialfall der gewöhnlichen Arithmetik, bei der die Multiplikation der Addition überlegen ist, d.h. die Konjunktion ist der symmetrischen Differenz und damit offensichtlich der Disjunktion überlegen.

2. in der Booleschen Algebra ist 1 ein neutrales Element für Konjunktion, a 0 für Disjunktion : 1 && a = a, 0 && a = 0; 1 || a = 1, 0 || a = a ;

3. Filter (konstruiert durch Schnittmenge) enthalten immer 1, Ideale (konstruiert durch Vereinigung) enthalten 0, obwohl Filter und Ideal dual sind.

Grund der Beschwerde: