Un résultat vraiment étonnant ! !! - page 8

 

J'ai déjà répondu à cette question une fois. Ça donne quelque chose comme ça : "oui, il se trouve que la priorité des opérations dans MQL4 est différente de celle adoptée en C. Pour certaines raisons historiques. Ça vient de MQL II. Mais comme cela n'a pas été remarqué immédiatement et que beaucoup de programmes ont déjà été écrits, nous ne changerons pas la priorité des opérations, car un tel changement entraînerait une modification inattendue du fonctionnement d'un certain nombre de programmes.

Dans MQL5, les priorités des opérations correspondent exactement aux priorités adoptées dans C++.

 
stringo >> :


Dans MQL5, les priorités des opérations correspondent exactement aux priorités adoptées en C++.

Merci. Je pense qu'on en a fini ici. Nous en attendons cinq.

 
TheXpert писал(а) >>

De la symétrie des opérations. Et la symétrie des opérations découle directement des formules attribuées.

L'une des opérations symétriques ne peut avoir la priorité sur l'autre.

Andrew, je ne conteste pas que les opérations soient symétriques. Mais comment l'égalité des priorités découle-t-elle de leur symétrie ? Je vous ai déjà donné une expression dont le résultat est indéfini. Cela change en fonction de la façon dont on ouvre les parenthèses.

Qu'est-ce qu'une priorité ? C'est une façon d'interpréter une expression indéfinie a ou b et c, c'est-à-dire une instruction sur la partie de l'expression qui doit être évaluée en premier. Cette façon de faire établit en fait la priorité relative des opérations de conjonction et de disjonction. En C, s'il n'y a pas d'informations supplémentaires, les parenthèses implicites qui déterminent l'ordre des calculs doivent être placées comme suit : a ou (b et c), et dans MQL4 - (a ou b) et c. Les résultats seront différents.

Je soupçonne que, contrairement à l'arithmétique avec les opérations habituelles d'addition et de multiplication, dans l'algèbre booléenne pure, il n'y a tout simplement pas d'interprétation univoque de l'expression ci-dessus - et donc pas de priorité des opérations par défaut. La priorité n'apparaît que dans les langages de programmation. Mais je peux me tromper.

P.S. Voilà, vous avez déjà répondu à votre question.

 
Mathemat >> :

Je soupçonne que, contrairement à l'arithmétique avec les opérations habituelles d'addition et de multiplication, dans l'algèbre booléenne pure, il n'y a tout simplement pas d'interprétation univoque de l'expression ci-dessus - et donc pas de priorité des opérations par défaut. La priorité n'apparaît que dans les langages de programmation. Mais je peux me tromper.

C'est ce que je voulais dire. Donc, à mon avis, vous pouvez spécifier n'importe quel ordre dans la langue, et ce n'est en aucun cas une erreur. Le seul problème est la banalité de la solution.

 
Mathemat >> :
....

La priorité n'apparaît que dans les langages de programmation. Mais je peux me tromper.

Non seulement, dans la plupart des manuels sur l'algèbre de la logique, la priorité est également définie, c'est-à-dire que la multiplication logique a une priorité plus élevée que l'addition logique, cela a été définitivement enseigné par moi-même, il est intensivement exploité lors de la dérivation de la FFT (DNF) sans table de vérité, de manière analytique.

 
stringo писал(а) >>

J'ai déjà répondu à cette question une fois. Ça donne quelque chose comme ça : "oui, il se trouve que la priorité des opérations dans MQL4 est différente de celle adoptée en C. Pour certaines raisons historiques. Ça vient de MQL II. Mais comme cela n'a pas été remarqué immédiatement et que beaucoup de programmes ont déjà été écrits, nous ne changerons pas la priorité des opérations, car un tel changement entraînerait une modification inattendue du fonctionnement d'un certain nombre de programmes.

Dans MQL5, les priorités des opérations correspondent exactement aux priorités adoptées dans C++.

C'est cool. Comment la prise en charge d'autres langues est-elle disponible dans la version 5 ? Entièrement supporté, pas par DLL.

 
Je suis prêt à admettre, Galaxy, que la multiplication dans les manuels scolaires a implicitement (par défaut) la plus haute priorité sur l'addition. Mais il n'y a aucune réflexion dans la syntaxe pour un tel fait. Il s'agit simplement d'une convention adoptée pour interpréter les expressions abrégées qui ne comportent pas de parenthèses.
 
stringo писал(а) >>

J'ai déjà répondu à cette question une fois. Ça donne quelque chose comme ça : "oui, il se trouve que la priorité des opérations dans MQL4 est différente de celle adoptée en C. Pour certaines raisons historiques. Ça vient de MQL II. Mais comme cela n'a pas été remarqué immédiatement et que beaucoup de programmes ont déjà été écrits, nous ne changerons pas la priorité des opérations, car un tel changement entraînerait une modification inattendue du fonctionnement d'un certain nombre de programmes.

Dans MQL5, les priorités des opérations correspondent exactement aux priorités adoptées en C++.

Bonne réponse. Je suis tout à fait d'accord avec cette question. Il s'agit d'une décision responsable.

 
Galaxy >> :

Non seulement, dans la plupart des manuels sur l'algèbre de la logique la priorité est également définie, c'est-à-dire que la multiplication logique a une priorité plus élevée que l'addition logique, c'est exactement ce que j'ai enseigné moi-même, il est exploité intensivement lors de la dérivation de DNF (DNF) sans table de vérité, analytiquement

Oui, en effet. Mes excuses. Mais ce n'est pas juste.

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

Treillis booléens, filtres, idéaux, anneaux... Cependant, le nom de conjonction n'est pas appelé multiplication logique à la lumière du jour : il existe plusieurs interprétations directes

1. Si nous prenons un anneau de déductions modulo deux c'est-à-dire (0,1 +,*), alors la table de multiplication correspond exactement à la table de vérité pour la conjonction et par conséquent, la table d'addition de cet anneau - à la table de différence symétrique booléenne ou excluant "ou " (je me suis trompé et j'ai corrigé).c'est-à-dire que nous avons une arithmétique binaire, un cas particulier de l'arithmétique usuelle, où la multiplication est supérieure à l'addition, c'est-à-dire que la conjonction est supérieure à la différence symétrique et donc, évidemment, à la disjonction.

2) Dans l'algèbre de Boole, 1 est un élément neutre pour la conjonction, a 0 pour la disjonction : 1 && a = a, 0 && a = 0; 1 || a = 1, 0 || a = a ;

3. Les filtres (construits par intersection) contiennent toujours 1, les idéaux (construits par union) contiennent 0, bien que filtre et idéal soient doubles.