Un risultato davvero sorprendente!!! - pagina 8

 

Ho già risposto a questa domanda una volta. Va più o meno così: "Sì, si dà il caso che la priorità delle operazioni in MQL4 sia diversa dalla priorità delle operazioni adottate in C. Per alcune ragioni storiche. Veniva da MQL II. Ma poiché non è stato notato immediatamente e molti programmi sono già stati scritti, non cambieremo la priorità delle operazioni, perché un tale cambiamento comporterebbe un cambiamento inaspettato nel funzionamento di un certo numero di programmi.

In MQL5 le priorità delle operazioni corrispondono esattamente alle priorità adottate in C++

 
stringo >> :


In MQL5 le priorità delle operazioni corrispondono esattamente alle priorità adottate in C++

Grazie. Penso che abbiamo finito qui. Aspettiamo il cinque.

 
TheXpert писал(а) >>

Dalla simmetria delle operazioni. E la simmetria delle operazioni segue direttamente dalle formule assegnate.

Una delle operazioni simmetriche non può avere la priorità sull'altra.

Andrew, non metto in dubbio che le operazioni siano simmetriche. Ma in che modo l'uguaglianza delle priorità deriva dalla loro simmetria? Vi ho già dato un'espressione il cui risultato è indefinito. Cambia a seconda di come apriamo le parentesi.

Cos'è la priorità? È un modo di interpretare un'espressione indefinita a o b e c, cioè un'istruzione su quale parte di essa deve essere valutata per prima. In questo modo si stabilisce effettivamente la priorità relativa delle operazioni di congiunzione e disgiunzione. In C, se non ci sono informazioni aggiuntive, le parentesi implicite che determinano l'ordine dei calcoli devono essere messe così: a o (b e c), e in MQL4 - (a o b) e c. I risultati saranno diversi.

Ho il sospetto che, a differenza dell'aritmetica con le solite operazioni di addizione e moltiplicazione, nell'algebra booleana pura non c'è semplicemente un'interpretazione univoca dell'espressione di cui sopra - e quindi nessuna priorità delle operazioni per difetto. La priorità appare solo nei linguaggi di programmazione. Ma potrei sbagliarmi.

P.S. Ecco, ti sei già risposto da solo.

 
Mathemat >> :

Ho il sospetto che, a differenza dell'aritmetica con le solite operazioni di addizione e moltiplicazione, nell'algebra booleana pura non c'è semplicemente un'interpretazione univoca dell'espressione di cui sopra - e quindi nessuna priorità delle operazioni per difetto. La priorità appare solo nei linguaggi di programmazione. Ma potrei sbagliarmi.

Questo è quello che volevo dire. Quindi, imho, si può specificare qualsiasi ordine nella lingua, e non è affatto un errore. L'unico problema è l'aspetto comune della soluzione.

 
Mathemat >> :
....

La priorità appare solo nei linguaggi di programmazione. Ma potrei sbagliarmi.

Non solo, nella maggior parte dei libri di testo sull'algebra della logica è definita anche la priorità, cioè la moltiplicazione logica ha una priorità più alta dell'addizione logica, questo è stato sicuramente insegnato a me, è intensamente sfruttato quando si deriva la FFT (DNF) senza tabella di verità, analiticamente

 
stringo писал(а) >>

Ho già risposto a questa domanda una volta. Va più o meno così: "Sì, si dà il caso che la priorità delle operazioni in MQL4 sia diversa dalla priorità delle operazioni adottate in C. Per alcune ragioni storiche. Veniva da MQL II. Ma poiché non è stato notato immediatamente e molti programmi sono già stati scritti, non cambieremo la priorità delle operazioni, perché un tale cambiamento comporterebbe un cambiamento inaspettato nel funzionamento di un certo numero di programmi.

In MQL5 le priorità delle operazioni corrispondono esattamente alle priorità adottate in C++.

Questo è forte. Come è disponibile il supporto per altre lingue in 5? Completamente supportato, non tramite DLL.

 
Sono d'accordo, Galaxy, sul fatto che la moltiplicazione nei libri di testo ha implicitamente (per difetto) la massima priorità sull'addizione. Ma non c'è alcuna riflessione nella sintassi per un tale fatto. È solo una convenzione adottata per interpretare le espressioni abbreviate che non hanno parentesi.
 
stringo писал(а) >>

Ho già risposto a questa domanda una volta. Va più o meno così: "Sì, si dà il caso che la priorità delle operazioni in MQL4 sia diversa dalla priorità delle operazioni adottate in C. Per alcune ragioni storiche. Veniva da MQL II. Ma poiché non è stato notato immediatamente e molti programmi sono già stati scritti, non cambieremo la priorità delle operazioni, perché un tale cambiamento comporterebbe un cambiamento inaspettato nel funzionamento di un certo numero di programmi.

In MQL5 le priorità delle operazioni corrispondono esattamente alle priorità adottate in C++

Buona risposta. Sono completamente d'accordo con questa domanda. Questa è una decisione responsabile.

 
Galaxy >> :

Non solo, nella maggior parte dei libri di testo sull'algebra della logica si definisce anche la priorità, cioè la moltiplicazione logica ha una priorità maggiore dell'addizione logica, questo è esattamente ciò che ho insegnato io stesso, è sfruttato intensamente quando si derivano DNF (DNF) senza una tabella di verità, analiticamente

Sì, infatti. Le mie scuse. Ma non è giusto.

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

Lattiche booleane, filtri, ideali, anelli... Tuttavia, il nome congiunzione non è chiamato moltiplicazione logica dalla luce del giorno: ci sono diverse interpretazioni dirette

1. Se prendiamo un anello di deduzioni modulo due cioè (0,1 +,*), allora la tabella di moltiplicazione corrisponde esattamente alla tabella di verità per la congiunzione e di conseguenza, la tabella di addizione di questo anello - alla tabella di differenza simmetrica booleana o escludendo " o" (ho sbagliato e corretto).cioè abbiamo l'aritmetica binaria, un caso speciale dell'aritmetica usuale, dove la moltiplicazione è superiore all'addizione, cioè la congiunzione è superiore alla differenza simmetrica e quindi, ovviamente, alla disgiunzione.

2. Nell'algebra booleana 1 è un elemento neutro per la congiunzione, a 0 per la disgiunzione: 1 && a = a, 0 && a = 0; 1 || a = 1, 0 || a = a ;

3. I filtri (costruiti per intersezione) contengono sempre 1, gli ideali (costruiti per unione) contengono 0, anche se filtro e ideale sono duali.

Motivazione: