Autoaprendizaje del lenguaje MQL5 desde cero - página 39

 
MrBrooklin:

Sí, los paréntesis de apertura y cierre convergen verticalmente después de "Styling", pero la luz de fondo o no entiende lo que es, o no puedo verlo. El nivel de conocimientos de programación, por el momento, es casi nulo.

Saludos, Vladimir.

el resaltado es un corchete iluminado primero después del título de la función, debe estar iluminado en par con el inferior, es decir, cada corchete debe tener un par, están iluminados, si no, significa que falta un corchete de cierre

 
Fast235:

el resaltado es el corchete iluminado primero después de la cabecera de la función, debe estar emparejado con el corchete inferior, es decir, cada corchete debe tener un par, están iluminados, si no, entonces falta el corchete de cierre

Gracias por la pista. Resulta que no están resaltados en mi pantalla, sino resaltados por el grosor. Sí, todos los soportes están ahí. Ahora, sólo he movido el bloque de funciones detrás del soporte inferior de OnStart y los errores han desaparecido. Gracias por su ayuda.

Saludos, Vladimir.

 
MrBrooklin:

Gracias por el consejo. Resulta que no están resaltados en mi pantalla, sino que destacan en grosor. Sí, todos los soportes están ahí. Ahora, sólo he movido el bloque de funciones detrás del soporte inferior de OnStart y los errores han desaparecido. Gracias por su ayuda.

Saludos, Vladimir.

Todas las funciones se declaran en el ámbito global, es decir, fuera del espacio de otras funciones, que está limitado por sus corchetes.
 
Реter Konow:
Todas las funciones se declaran en el ámbito global, es decir, fuera del espacio de otras funciones, que está delimitado por sus paréntesis.

Querido Peter, cuéntanos cómo has conseguido crear tu llamado lenguaje de marcas (), será útil para los recién llegados, y yo lo necesito para desarrollar el pensamiento lógico, que es muy importante aquí

tal vez algo comió mucho, se subió a un árbol
 
MrBrooklin:

¡Buenas noches a todos!

Estimados expertos en programación, ¿podrían decirme qué significa el error que genera el compilador:"las declaraciones de funciones sólo están permitidas en el área global, de espacio de nombres o de clase", o para ser más específicos, qué es un espacio de nombres y dónde debe ubicarse en el script?

La pregunta está relacionada con la escritura de código de función para "Suficiente_tiempo" y "Suficiente_paciencia".

Saludos, Vladimir.

Área Global, el área fuera de las funciones. y no importa donde, puedes entre las funciones, espero que entiendas donde empiezan y terminan, puedes hacer todo lo que puedas en el área global, declarar variables globales, propiedades o cualquier otra cosa al final. Las variables declaradas en el ámbito global son visibles en todas partes, literalmente. El ámbito local es el área desde el principio hasta el final, cerrando las llaves, de la función. Las variables declaradas en el área local sólo son visibles en esta área.

Tenga en cuenta que el código se lee de arriba a abajo y de izquierda a derecha. El compilador no reordena las cadenas. Así, la regla es que una variable se declara siempre por encima o a la izquierda de la referencia a la misma. Y sólo en su propio ámbito. En diferentes áreas locales las variables pueden tener los mismos nombres. Y por cierto bucles y si son funciones con sus propias áreas también)

 
Valeriy Yastremskiy:

El ámbito global, el área fuera de las funciones. y no hace ninguna diferencia donde, puedes entre las funciones, espero que entiendas donde empiezan y terminan, puedes hacer todo en el ámbito global al final, declarar variables globales, propiedades o lo que sea. Las variables declaradas en el ámbito global son visibles en todas partes, literalmente. El ámbito local es el área desde el principio hasta el final, cerrando las llaves, de la función. Las variables declaradas en el área local sólo son visibles en esta área.

Tenga en cuenta que el código se lee de arriba a abajo y de izquierda a derecha. El compilador no reordena las cadenas. Así, la regla es que una variable se declara siempre por encima o a la izquierda de la referencia a la misma. Y sólo en su propio ámbito. En diferentes áreas locales las variables pueden tener los mismos nombres. (Y por cierto los bucles y el if son funciones con sus propios ámbitos también)

deberíamos escribir un libro. juntos todos nosotros

 
Реter Konow:
Todas las funciones se declaran en el ámbito global, es decir, fuera del espacio de otras funciones, que está limitado por sus paréntesis.

¡Gracias, Peter! Ya me han ayudado a entender esta cuestión.

Sigo estudiando el lenguaje de programación MQL5 y hoy pego el código de un script, que es la continuación de una de las tareas de los participantes de este hilo. He probado el script en todos los modos. Todo funciona como debería. Para empezar, he puesto los parámetros de entrada al mínimo.

Saludos, Vladimir.

//+------------------------------------------------------------------+
//|                                                Learning_MQL5.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 ushort Период_обучения=500; //Полный период обучения в днях
input ushort Прошло_дней=10;      //Сколько дней прошло с начала обучения
input bool   Терпение=true;       //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные
ushort Достаточность_времени;
bool Достаточность_терпения;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(Достаточно_времени()==0 && Достаточно_терпения()==true)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//--- Создадим функцию Достаточно_времени
ushort Достаточно_времени()
  {
   Достаточность_времени=(Период_обучения-Прошло_дней);
   return(Достаточность_времени);
  }
//--- Создадим функцию Достаточно_терпения
bool Достаточно_терпения()
  {
   Достаточность_терпения=Терпение;
   return(Достаточность_терпения);
  }
//+------------------------------------------------------------------+
 
MrBrooklin:

¡Gracias, Peter! Ya me han ayudado a entender esta cuestión.

Sigo estudiando el lenguaje de programación MQL5 y hoy pego el código de un script, que es la continuación de una de las tareas de los participantes de este hilo. He probado el script en todos los modos. Todo funciona como debería. Para empezar, he puesto los parámetros de entrada al mínimo.

Sinceramente, Vladimir.

Estructuralmente, las funciones están escritas correctamente, pero la lógica es floja. Mira todo el código con atención.

El resultado de la función Sufficient_time() debe ser mayor que cero, que era una condición lógica.
 
MrBrooklin:

¡Gracias, Peter! Ya me han ayudado a entender esta cuestión.

Sigo estudiando el lenguaje de programación MQL5 y hoy pego el código de un script, que es la continuación de una de las tareas de los participantes de este hilo. He probado el script en todos los modos. Todo funciona como debería. Para empezar, he puesto los parámetros de entrada al mínimo.

Saludos, Vladimir.

Describa (escriba) lo que hace su guión. Y siempre es mejor hacerlo al principio. El objetivo, por qué. Qué tareas pueden lograr el objetivo. Cómo se pueden resolver las tareas, los algoritmos para resolverlas y luego el código. Y por cierto, la división de tareas es la descomposición)

 
Fast235:

Deberíamos escribir un libro. Juntos deberíamos

Esta pregunta está pendiente desde hace mucho tiempo. Sergey Kovalev ha escrito un manual para el lenguaje de programación MQL4. Ahora hay que inspirar a otro experto para que realice esta noble acción para MQL5.

Saludos cordiales, Vladimir.

Razón de la queja: