Lo que me gustaría del "terminal" como programador profesional. Otro hilo con deseos para MQL5. - página 6

 
Korey писал (а) >>
aproximadamente una cuarta parte de los algoritmos numéricos utilizan goto, ¿qué tal si un algoritmo está probado, aprobado, testado, pero no puede ser
a MT sin goto?

Mete la funcionalidad en una dll o quita el goto.

Sigo preguntándome de qué algoritmos hablas.

 

Me uno a Korey. ¿Nadie ha visto algún algoritmo ingenioso implementado con goto? Toda esta histeria goto es una especie de religión más que una necesidad real. Un codificador competente puede escribir un código claro y preciso con goto también y puede ser más legible que un código equivalente con saltos condicionales.

P.D. Parece ser que el propio Wirth, que criticó a goto, lo dejó en su obra de todos modos. Y en C++, "el más estructurado de los lenguajes estructurados", el goto parece no haber desaparecido. No acepto la objeción de la retrocompatibilidad con C.

 
TheXpert писал (а) >>

En realidad, el uso de goto es un mal estilo de programación y en el 99% de los casos el código con goto puede ser reemplazado con un código similar con declaraciones condicionales existentes.

No estoy de acuerdo.

Puedes reescribirlo. Pero también se puede decir que la ausencia de goto en un lenguaje es un mal estilo y que el 99% del código se puede reescribir en base a su uso.

Yo, por ejemplo, echaba mucho de menos el goto para salir de complejas estructuras if-else anidadas con bucles. Si en alguna parte de la estructura se calcula la necesidad de salir del análisis, tengo que escribir un análisis adicional de banderas de salida para todos estos anexos, lo que me parece inconveniente. Sobrecarga el código. Es mucho más fácil recordar el estado de la bandera y pasar al exterior del análisis.

No tiene que pasar a la marca. Ya se habló de ello. Podríamos pasarlo detrás de un bloque externo (con nombre) (operador, bucle - cualquier cosa que tenga un cuerpo entre llaves).

 

Bueno, SK. ya ha escrito justo lo que quería preguntarle al fanático del estilo correcto (por ejemplo, salir de la profundidad de un quíntuple if-else anidado).

 
TheXpert писал (а) >>

Mete la funcionalidad en una dll o quita el goto.

Sigo preguntándome de qué algoritmos hablas.

se trata de Fortran como fuente principal de métodos numéricos.
Todo lo que contiene está probado y aprobado por la asociación americana de ingenieros.
y no hay ningún problema aquí - trabajamos con DLL y eso es todo)))
y como si lo hiciera - se quiere insertar directamente en el código MQ, pero hay que pasar por el algoritmo, lo que lleva bastante tiempo.

P.D. y lo más importante, peligroso.

 
Mathemat писал (а) >>

Me uno a Korey. ¿Nadie ha visto algún algoritmo ingenioso implementado con goto? Toda esta histeria goto es una especie de religión más que una necesidad real. Un codificador competente puede escribir un código claro y limpio con goto también y puede ser más legible que el código equivalente con saltos condicionales.

P.D. Parece ser que el propio Wirth, que criticó a goto, lo dejó en su obra de todos modos. Y en C++, "el más estructurado de los lenguajes estructurados", el goto parece no haber desaparecido. Objeciones a

No acepto la retrocompatibilidad con C.

No voy a discrepar. Así es.

SK. escribió (a) >>

No estoy de acuerdo.

Es posible reescribirlo. Pero también se podría decir que la falta de goto en el lenguaje es un mal estilo y que el 99% del código se puede reescribir en base a su uso.

Yo, por ejemplo, echaba mucho de menos el goto para salir de complejas estructuras if-else anidadas con bucles. Si en algún lugar profundo de la estructura se calcula la necesidad de análisis de salida, tengo que escribir un análisis adicional de banderas de salida para todos estos archivos adjuntos que me parece inconveniente. Sobrecarga el código. Es mucho más fácil recordar el estado de la bandera y pasar al exterior del análisis.

No tiene que pasar a la marca. Ya se habló de ello. Podríamos pasarlo detrás de un bloque externo (con nombre) (operador, bucle - cualquier cosa que tenga un cuerpo dentro de llaves).

¿El descanso no funcionaría?


En definitiva, cada uno tiene su estilo y su forma de entender las cosas, y ahí se acaba el asunto.

SK. Si tiene algún problema con esto, póngase en contacto conmigo, le ayudaré, según la disponibilidad de tiempo.

 
TheXpert писал (а) >> ¿No se puede hacer una pausa?

Esto es sólo para los bucles o conmutadores (por cierto, una construcción no muy necesaria, que puede ser sustituida con la misma elegancia por una cadena if...else). Todo es relativo.

 
TheXpert писал (а) >>

¿No se puede romper?

En general, cada uno tiene su propio estilo y comprensión, cerremos el tema en este punto.

SK. Si tienes algún problema con él, te ayudaré si tengo tiempo.

El descanso no servirá. Tiene un efecto limitado.

Y no hay que ser grosero.

 
SK. писал (а) >>

Y no deberías ser grosero.

No lo creo.

 
Korey писал (а) >>

se trata de Fortran como fuente principal de métodos numéricos.
todo lo que contiene está probado y aprobado por la asociación americana de ingenieros.
y aquí no hay ningún problema - trabajamos con DLL y ya está))
y como si existiera - se quiere insertar directamente en el código MQ, pero hay que reescribir el algoritmo, lo que lleva bastante tiempo.

P.D. Y lo más importante, es peligroso.

Fortran, había goto. Pero no tiene nada que ver con la eficacia de los métodos numéricos. En MatLab se implementa tanto (incluso más) y allí no hay goto. Goto tiene una historia que se remonta al estilo de programación en lenguaje ensamblador (move to label). La aparente simplicidad de este operador es engañosa. Supongamos que hay cinco anexos if else. Y hizo goto donde se necesita y eso es todo, pero luego hay variables locales y globales, pila, punteros, matrices, etc. ¿Qué hacer con ellos? Implementar la salida correcta de los anexos de en ensamblador, teniendo en cuenta todos los errores imaginables ((. Es difícil averiguar cómo hacerlo correctamente incluso en lenguaje de alto nivel, mientras que en ensamblador es un verdadero lío.

Si yo fuera el desarrollador, intentaría que MQL5 permitiera adjuntar programas escritos en MathCad(MatLab). Sería sencillo y fácil (y no la mano derecha en la oreja izquierda). Esto supone un ahorro de miles de millones de horas de trabajo y un paso de gigante en la capacidad de procesar datos. Para dar esta capacidad, y el principal esfuerzo para mejorar el terminal

Razón de la queja: