Un risultato davvero sorprendente!!! - pagina 2

 

Fare riferimento alla documentazione Priorità e ordine delle operazioni:

Ogni gruppo di operazioni nella tabella ha la stessa priorità. Più alta è la priorità di un gruppo di operazioni, più alto è il suo posto nella tabella. L'ordine di esecuzione determina il raggruppamento delle operazioni e degli operandi.

() Chiamata di funzione da sinistra a destra
[] Selezione degli elementi della matrice
!      Negazione logica Da destra a sinistra
- Cambio di segno
++ Aumenta di uno (incremento)
--Diminuire di uno (decremento)
~ Negazione bitwise (complemento)
& Operazione Bitwise AND Da sinistra a destra
| OR in senso orario
OR esclusivo bitwise (eXclude OR)
<< Spostamento a sinistra
>> Spostamento a destra
* Moltiplicazione da sinistra a destra
/ Dividere
% Divisione modulo
+ Aggiungendo da sinistra a destra
- Sottrazione
<= Meno di sinistra a destra
<= Meno di o uguale a
>= Maggiore di
>= Maggiore o uguale
== Uguale
!= Non uguale
|| Operazione logica OR Da sinistra a destra
&& Operazione booleana AND da sinistra a destra
== Assegnazione da destra a sinistra
+= Aggiunta e assegnazione
= Sottrazione con assegnazione
*= Moltiplicare con Assegnazione
/= Divisione con assegnazione
%= Divisione modulo con assegnazione
>>= Spostamento a destra con assegnazione
<<= Spostamento a sinistra con assegnazione
&= Assegnato Bitwise AND
|= OR e assegnazione bitwise
^= Escludere OR con assegnazione
virgola Da sinistra a destra

Le parentesi sono usate per cambiare l'ordine di esecuzione dell'operazione e hanno la massima priorità.


Attenzione: la priorità delle operazioni in MQL4 differisce leggermente da quella in C.


Quindi è vero


 

LOL


Compilate in C da run se siete troppo pigri per controllare.


Il compilatore è al cento per cento GLUCK.

 

OH, I CIELI!

E IL GUASTO È NELLA C, E ABBIAMO PENSATO.... PERCHÉ C'È UNA CRISI SUL PIANETA.

 

Si vive e si impara. Ho sempre creduto che si esegue prima AND e poi OR. E con questa comprensione, tutti i programmi hanno funzionato bene. Anche combinazioni logiche molto complicate.

Ma qui...

No, è meglio non leggere i forum. Confondono tutto.

I programmi hanno funzionato bene.... ora saranno glitchati... :))))))))

 
Rosh, wow è corretto... Non c'è una cosa del genere in matematica o in altri linguaggi, ma in MQL4 è vero? Allora è un difetto nel cervello degli sviluppatori :) Scusa...
 
rid >> :

Niente affatto! La "o" (||) ha la precedenza qui - inequivocabilmente!

Se non ci sono parentesi, allora || sarà eseguito per primo, e poi &&

Ecco perché le parentesi devono essere in posti appropriati.


Tuttavia...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
stagno
 
... e qui... mettete le parentesi, mettete le parentesi, mettete le parentesi, signori! Nessun problema. E il programma sarà più facile da capire. Nessuno ha mai promesso che MQL4 = C++/.
 
C'è uno standard e deve essere rispettato. E se gli sviluppatori producono un loro standard che contraddice quello generalmente accettato, allora... lo sporco è... spazzatura.
 

Ho controllato il primo post in matcad. La risposta è 1 0 1 1

Ecco il codice

 

Ad essere onesti, non ho mai memorizzato la priorità delle operazioni logiche e bitwise. Per pigrizia innata ho solo messo le parentesi nei posti giusti.

"C'è molto, amico Horace...."

Motivazione: