Autoaprendizaje del lenguaje MQL5 desde cero - página 34

 
Реter Konow:
Mira: pones ambas variables a true de antemano (antes de la condición). Es decir, serán SIEMPRE verdaderos en cada lanzamiento del guión. ¿Por qué, entonces, necesitamos una 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, ni tampoco las propias variables, 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.

Gracias, Peter, por la aclaración.

Saludos, Vladimir.

 
Valeriy Yastremskiy:

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í. Sólo un script que muestra el texto es inútil. 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, un cálculo a partir del nivel de conocimiento de matemáticas, conocimiento de otros idiomas, cuánto tiempo libre, nivel de ganas y capacidad de memorizar y la función devolverá Verdadero o Falso en base al cálculo, la utilidad será mayor))))

Valery, ¡muchas gracias por la detallada respuesta!

Sinceramente, Vladimir.

 

Aquí hay una versión revisada del guión, incluyendo pistas para los nuevos en el guión que pueden o no estar leyendo este hilo:

//+------------------------------------------------------------------+
//|                                                            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"
//---
#property script_show_inputs
//---
input bool достаточно_времени=true;
input bool достаточно_терпения=true;
//---
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   if(достаточно_времени && достаточно_терпения)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//+------------------------------------------------------------------+

Añadido al guión:

  1. "mostrar la ventana de propiedades antes de ejecutar el script";
  2. Capacidad de cambiar las variables externas.

Saludos, Vladimir.

 
Реter Konow:
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 Paciencia_suficiente = Paciencia_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 en lugar de ponerlos por defecto, porque no tiene sentido que la condición sea siempre verdadera.

+1. Eso es correcto.

 
Реter Konow:
"... Hay que calcular el tiempo y la paciencia antes de ponerlos en una condición en lugar de ponerlos por defecto, porque el sentido de tener una condición desaparece: siempre es cierto".

Definitivamente lo haré, pero más tarde, ya que mi "olla" ya está hirviendo, así que necesito enfriarla un poco.

Sinceramente, Vladimir.

 
MrBrooklin:

Aquí hay una versión corregida del guión, teniendo en cuenta las pistas:

Añadido al guión:

  1. "mostrar la ventana de propiedades antes de ejecutar el script";
  2. Capacidad de cambiar las variables externas.

Saludos, Vladimir.

¡Correcto! Y luego intenta escribir funciones que calculen los valores de estas variables en función de los valores de otras variables externas.

Es decir, la función Enough_time() tomará valores de variables externas:

Fecha de entrada Days_training = 100;
Entrada uchar Hora_en_día = 5;
... y así sucesivamente...

En otras palabras, las funciones tomarán los valores de sus variables de entrada y harán cálculos, y el resultado será devuelto en las variables Tiempo_suficiente y Paciencia_suficiente, que, entonces, usted puede poner en una condición con múltiples opciones, cada una de las cuales imprimirá una cadena diferente.

 
Реter Konow:
Tienes razón. Y luego intenta escribir funciones que calculen los valores de estas variables en función de los valores de otras variables externas.

Es decir, Sufficient_time() tomará los valores de las variables externas:

input datetime Día_de_formación = 100;
Entrada uchar Hora_en_día = 5;
... y así sucesivamente...

Entonces, las funciones tomarán los valores de las variables de entrada y harán cálculos, y el resultado volverá a las variables Tiempo_suficiente y Paciencia_suficiente, que luego puedes poner en una condición con múltiples opciones, cada una de las cuales imprimirá una cadena diferente.

Peter, pon tu sugerencia en mi plan de autoestudio. El resultado se publicará posteriormente en forma de código script.

Saludos, Vladimir.

 
MrBrooklin:

Definitivamente lo haré, pero más tarde, ya que mi "olla" ya está hirviendo, así que necesito enfriarla un poco.

Sinceramente, Vladimir.

Por supuesto, tómate un descanso).
 
Реter Konow:
¡Correcto! Y luego intenta escribir funciones que calculen los valores de estas variables en función de los valores de otras variables externas.

Es decir, Sufficient_time() tomará los valores de las variables externas:

input datetime Día_de_formación = 100;
Entrada uchar Hora_en_día = 5;
... y así sucesivamente...

Está más o menos claro con el tiempo, pero las variables de "Suficiente paciencia" siguen siendo un problema. ¿Qué debo poner en ellos? ¿Tiene paciencia o no tiene paciencia? ¿Al menos estos dos parámetros? Tengo que pensar en ello.

Saludos, Vladimir.

 
MrBrooklin:

El tiempo está más o menos claro, pero las variables de "Suficiente paciencia" son un problema. ¿Qué se pone en ellos? ¿Hay paciencia o no hay paciencia? ¿Al menos estos dos parámetros? Tengo que pensar en ello.

Saludos, Vladimir.

1. Estado de ánimo (enumeración de tipos por unidades condicionales inicializadas).

2. Autopercepción (lo mismo).

3. Coeficiente de motivación.

4. El coeficiente de creencia en forex

...

Inventa un par de fórmulas de cálculo y ya está).
Razón de la queja: