¡¡¡Un resultado realmente sorprendente!!! - página 2

 

Consulte la documentación Prioridades y orden de las operaciones:

Cada grupo de operaciones de la tabla tiene la misma prioridad. Cuanto más alta es la prioridad de un grupo de operaciones, más alto se coloca en la tabla. El orden de ejecución determina la agrupación de operaciones y operandos.

() Llamada de función de izquierda a derecha
[] Selección de elementos de la matriz
¡!      Negación lógica De derecha a izquierda
- Cambio de signo
++ Aumentar en uno (incremento)
-Disminuir en uno (decremento)
~ Negación a nivel de bits (complemento)
& Operación AND a nivel de bits De izquierda a derecha
| Bitwise OR
OR exclusivo a nivel de bits (eXclude OR)
<< Cambio a la izquierda
>> Desplazamiento a la derecha
* Multiplicación de izquierda a derecha
/ Divide
% División en módulos
+ Suma de izquierda a derecha
- Sustracción
<= Menos de izquierda a derecha
<= menor o igual a
>= Mayor que
>= Mayor o igual
== Igualdad
!= No es igual
|| Operación lógica OR De izquierda a derecha
&& Operación booleana AND De izquierda a derecha
== Asignación de derecha a izquierda
+= Suma y Asignación
= Sustracción con asignación
*= Multiplicar con la asignación
/= División con asignación
%= División en módulos con asignación
>>= Desplazamiento a la derecha con asignación
<<= Desplazamiento a la izquierda con asignación
&= Asignado Bitwise AND
|= O a nivel de bits y asignación
^= Exclusión de OR con asignación
coma De izquierda a derecha

Los paréntesis se utilizan para cambiar el orden de ejecución de la operación y tienen la máxima prioridad.


Atención: La prioridad de las operaciones en MQL4 difiere ligeramente de la de C.


Así que es verdad


 

LOL


Compila en C desde la ejecución si eres demasiado perezoso para comprobarlo.


El compilador es cien por cien GLUCK.

 

¡OH, LOS CIELOS!

Y EL FALLO ESTÁ EN LA C, Y PENSAMOS.... POR QUÉ HAY UNA CRISIS EN EL PLANETA.

 

Se vive y se aprende. Siempre he creído que primero se ejecuta AND y luego OR. Y con este entendimiento, todos los programas funcionaron bien. Incluso combinaciones lógicas muy complicadas.

Pero aquí...

No, mejor no leer los foros. Lo confunden todo.

Los programas funcionaron bien.... ahora van a ser glitchy... :))))))))

 
Rosh, vaya que es cierto... No hay tal cosa en las matemáticas u otros idiomas, pero en MQL4 es cierto? Entonces es un fallo en el cerebro de los desarrolladores :) Lo siento...
 
rid >> :

No, en absoluto. La "o"(||) tiene aquí prioridad - ¡de forma inequívoca!

Si no hay paréntesis, se ejecutará primero || y luego &&

Por ello, los paréntesis deben estar en lugares apropiados.


Sin embargo...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
estaño
 
... y aquí... ¡pongan paréntesis, pongan paréntesis, pongan paréntesis, señores! No hay problema. Y el programa será más fácil de entender. Nadie ha prometido que MQL4 = C++/.
 
Hay una norma y hay que cumplirla. Y si los desarrolladores producen su propia norma que contradice la generalmente aceptada, entonces... la suciedad es... basura.
 

Comprobado el primer puesto en matcad. La respuesta es 1 0 1 1

Este es el código

 

Para ser sincero, nunca he memorizado la prioridad de las operaciones lógicas y de las operaciones de bits. Por pereza innata sólo pongo paréntesis en los lugares adecuados.

"Hay mucho, amigo Horace...."

Razón de la queja: