Autoaprendizaje del lenguaje MQL5 desde cero - página 33

 
Vladimir Simakov:

Y luego están los patrones...

Sí, también hay un operador ternario )

A partir de este camino (entender y saber escribir) comienza realmente el camino del desarrollador. IMHO

¿Son necesarios los puntos y comas después de las llaves en las funciones de enumeración y de plantilla o es sólo para facilitar la lectura?

 
Реter Konow:
Ese es mi punto. Ya no son necesarias las enumeraciones ni la sintaxis innecesaria.
¿Para qué sirve entonces la API del terminal? Hay un poco más de enumeraciones que a f... ... y las estructuras de solicitud/resultado y similares son abundantes)
 
Реter Konow:
"... pero aún no has respondido correctamente..."

Valeriy ya ha respondido antes en su código de script:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
bool достаточно_времени=true;
bool достаточно_терпения=true;
//---
   if(достаточно_времени && достаточно_терпения)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

Respetuosamente, Vladimir.

 
MrBrooklin:

Valeriy ya ha respondido antes en su código de script:

Respetuosamente, Vladimir.

Sí, esta variante es correcta en términos de sintaxis, pero sigue careciendo de lógica. Ayer Vasily escribió mucho sobre las funciones. Aquí es donde se necesitan:

bool Tiempo_suficiente = Tiempo_suficiente();

bool Tiempo_suficiente = Tiempo_suficiente();

if(Tiempo_suficiente && Paciencia_suficiente)Print("¡Aprenderé el idioma!");

si no Imprimir ("No lo haré");

Hay que calcular el tiempo y la paciencia antes de ponerlos en una condición, no ponerlos por defecto, porque el sentido de tener una condición desaparece, siempre es cierto.
 
Valeriy Yastremskiy:

¿El punto y coma y la coma después de la llave en la enumeración y la función de la plantilla son obligatorios o es para facilitar la lectura?

Una errata. Al principio quería un objeto de plantilla con vinculación de macros, pero decidí no empeorarlo).

Y para las enumeraciones, sí, es necesario.

 
Реter Konow:
...Aquí es donde se necesitan:

bool Tiempo_suficiente = Tiempo_suficiente();

bool Paciencia_suficiente = Paciencia_suficiente();

if(Tiempo_suficiente && Paciencia_suficiente)Print("¡Aprenderé el idioma!");

si no Imprimir ("No lo haré");

Pedro, una contrapregunta para ti: ¿por qué en el tipo bool, que está pensado para almacenar valores booleanos verdadero o falso, has especificado suficiencia_tiempo() y suficiencia_paciencia()?

Sinceramente, Vladimir.
 
MrBrooklin:

Peter, una contrapregunta para ti: ¿por qué has especificado sufficiency_time() y sufficiency_patience() en tipo bool, que está pensado para almacenar valores lógicos true o false?

Saludos, Vladimir.
Porque estas son las funciones que hay que escribir para calcular el valor real de las variables "Tiempo_suficiente" y "Paciencia_suficiente".

Estas funciones deben contener cálculos de parámetros que conduzcan a una respuesta lógica de sí/no, que devolverán en variables. Estas funciones deben devolver el resultado como un valor lógico verdadero/falso.
 
Реter Konow:
"...Sí, esta variante es correcta en términos de sintaxis, pero sigue careciendo de lógica..."

Ahora estoy completamente confundido: ¿por qué no hay lógica, a pesar de que se utiliza el tipo bool, que es necesario para almacenar valores lógicos? Por favor, aclare qué es lo que no tiene lógica entonces.

Saludos, Vladimir.

 
MrBrooklin:

Ahora estoy completamente confundido: ¿por qué no hay lógica, a pesar de que se utiliza el tipo bool, que es necesario para almacenar valores lógicos? Por favor, aclare qué es lo que no tiene lógica.

Respetuosamente, Vladimir.

Mira: pones ambas variables a true de antemano (antes de la condición). Así que SIEMPRE serán verdaderos en cada inicio de la secuencia de comandos. ¿Por qué necesitamos entonces la condición? ¿Es posible en este programa que las variables explícitamente inicializadas con true no sean true? - No! Porque has escrito este valor en ellos y no se puede cambiar en ninguna parte del código.

En este caso, la condición no es necesaria, y las variables tampoco, porque SIEMPRE el resultado del script será la cadena "Aprenderé el idioma".

Sin embargo, el hecho de que los valores de las variables se calculen en funciones adicionales puede dar lugar a diferentes combinaciones de resultados: una devolverá verdadero, la otra falso, o ambas devolverán falso, o ambas devolverán verdadero... En este caso, la condición escrita se justifica por las posibles variaciones en los valores de las variables que conducen a la impresión de cadenas diferentes.
 
MrBrooklin:

Ahora estoy completamente confundido: ¿por qué no hay lógica, a pesar de que se utiliza el tipo bool, que es necesario para almacenar valores lógicos? Por favor, aclare qué es lo que no tiene lógica.

Sinceramente, Vladimir.

No hay ninguna lógica, porque son variables establecidas en el script. Deberían ser variables establecidas por el usuario a través de una instancia, o derivadas de funciones, lo que es aún más lógico.

Es decir, la utilidad del guión debe estar siempre ahí. Un simple script que muestre el texto no sirve para nada. Y con la entrada de datos este script te dirá si puedes aprender el idioma) Y con las funciones, simplemente no existen, no están escritas, y si escribes, por ejemplo, el cálculo a partir del nivel de conocimiento de las matemáticas, el conocimiento de otros idiomas, la cantidad de tiempo libre, el nivel de deseo y la capacidad de recordar y la función devolverá Verdadero o Falso basado en el cálculo entonces la utilidad será más))))