Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Clive Sinclair desarrolló en su día el barato ordenador personal ZX-Spectrum. Después de que la primera versión se agotara en grandes cantidades, se descubrió que los desarrolladores tenían un montón de errores en la ROM. Así que tomaron la decisión de documentar los fallos en lugar de arreglarlos para hacerlos totalmente compatibles con las versiones anteriores. Y la decisión resultó ser acertada, porque los fallos se utilizaron más tarde para proteger el software de este mismo ordenador contra el cracking.
Creo que el error descrito en este hilo también se puede mantener y utilizar para proteger a los Asesores Expertos, es decir, para insertar una condición lógicamente incorrecta, por ejemplo, en la comprobación de la fecha de caducidad. Y que se vuelvan locos los que descomponen.
La discusión de este error, espero, motivará a los desarrolladores de MQL5 a solucionarlo. De todas formas tendré que reescribir todos los programas en MQL5.
Es de esperar que la discusión de este error inspire a los desarrolladores de MQL5 a solucionarlo. De todas formas tendré que reescribir todos los programas en MQL5.
Una prueba de que esto es un error, ¡déjala!
En realidad, una afirmación contraria:
Las leyes básicas del álgebra de Boole
Dos fórmulas de álgebra booleana son equivalentes si las funciones que se les asignan son iguales (es decir, toman los mismos valores en todos los conjuntos de valores de los argumentos). A continuación se presentan las leyes básicas del álgebra de Boole que permiten transformaciones idénticas de las fórmulas del álgebra de Boole (nótese lo similares que son a las leyes de la aritmética clásica):
x 1 o x 2 = x 2 o x 1
x 1 y x 2 = x 2 y x 1
x 1 o (x 2 o x 3 ) = (x 1 o x 2 ) o x 3
x 1 y (x 2 y x 3 ) = (x 1 y x 2 ) y x 3
x 1 o (x 2 y x 3 ) = (x 1 o x 2 ) y (x 1 o x 3 )
x 1 y (x 2 o x 3 ) = (x 1 y x 2 ) o (x 1 y x 3 )
De lo que se deduce que desde el punto de vista del álgebra booleana las operaciones o y tienen la misma prioridad.
la ley de la distributividad (abriendo paréntesis):
x 1 o (x 2 y x 3 ) = (x 1 o x 2 ) y (x 1 o x 3 )
x 1 y (x 2 o x 3 ) = (x 1 y x 2 ) o (x 1 y x 3 )
Se deduce que desde el punto de vista del álgebra booleana las operaciones y y tienen la misma prioridad.
No seas maliciosa. Su ejemplo difiere del que inició la discusión. Mira más de cerca.
En realidad, este no es un tema para un programador, porque la especificación de cada lenguaje es lo primero y no importa que haya otros estándares en alguna parte...
y una norma única es una quimera.
Creo que esta es la idea más adecuada.
Cada lengua tiene sus propias normas. Por ejemplo, C++ y Pascal tienen diferentes reglas de cálculo de enteros. En algunos idiomas, los índices empiezan por 0, mientras que en otros empiezan por 1. No creo que todo importe en absoluto.
Lo importante es una mala interpretación de las leyes de la naturaleza, es decir, de las leyes que escapan al control humano. Y las normas y leyes creadas por los humanos son prerrogativa de sus creadores. En este caso, sólo es importante que las leyes se promulguen; en este caso, las normas se publican.
Mejor concentrémonos en el campo aplicado:)
Señores, en la página dos de este hilo di un enlace y una cita de la documentación - Prioridades y orden de operaciones. Lo daré de nuevo en forma condensada:
Nota: la prioridad de las operaciones en MQL4 difiere ligeramente de la de C.
Por lo tanto, es incorrecto hablar de un error.
Me recuerda el humor de Zadornov "Lo que es dos más dos veces dos". Una buena ilustración del debate religioso sobre la prioridad. Y en general, el tema es de barba, podría haber utilizado la búsqueda del sitio - en lugar de crear un nuevo hilo.
P.D. Eh, MuruFigi el enemigo, y por qué has puesto a Pak ...
El tema tiene barba, podrías haber utilizado la búsqueda del sitio en lugar de crear un nuevo hilo.
El tema seguirá siendo relevante. A los desarrolladores parece gustarles.
El próximo programador "novato" se golpeará la cabeza contra el tema... Y todo se repetirá (hee-hee).
Y no sale de la nada.
Los desarrolladores decidieron volver a formar a todos a su manera...
Va a ser un tema eterno... Hasta que el otro extremo de la línea se canse de .... persistir
Debates religiosos sobre la prioridad
La costumbre aquí es hacer un producto inclinado con manos torcidas que crecen fuera del %, pero todo el mundo se calla porque no hay otro producto... o lo hay, pero sería mejor no estarlo ))
..
Un simple ejemplo "por mi cuenta", cuando se utiliza if() a menudo aparece un error - al combinar && y una serie de condiciones >/</!=, lo cual es muy extraño,
copias la cadena de Comment() para revisarla - 1, 1, 1, 1, etc - todo está bien, pero if() no "funciona", haces una "escalera" if() { if() { if() { ... }}}
todo funciona ... fallo del metacompilador creo, ... y que, creen los desarrolladores que serán amedrentados y probarán, ... jeje
Señores, en la página dos de este hilo di un enlace y una cita de la documentación - Prioridades y orden de operaciones. Lo daré de nuevo en forma condensada:
Atención: la prioridad de las operaciones en MQL4 difiere ligeramente de la de C.
Por lo tanto, es incorrecto hablar de un error.
Bueno, más o menos estuve de acuerdo en la segunda página en que si fuera así, no deberíamos hablar de un fallo en el compilador, sino de un fallo en la mente de los desarrolladores. No te ofendas, he hecho este hilo más bien por diversión.
Lo que no entiendo ahora es esto.
¿Sobre qué se desarrolla el compilador MQL? Si está desarrollado en un lenguaje normal, a los programadores les debe haber enloquecido el hecho de que las operaciones de multiplicación y suma tengan la misma prioridad. ¿Cómo se les pudo escapar? ¿De verdad todo el mundo pone paréntesis donde quiere y donde no? Por cierto, también, demasiados paréntesis hacen que el código sea más claro. Y cuando sus programadores escriben operaciones aritméticas como 2+3*4 también escriben 2+(3*4), o Dios no quiera que se cuele un error en un compilador de C++ y se aniden 100 paréntesis en una expresión manualmente:)