Auto-aprendizagem da linguagem MQL5 a partir do zero - página 39

 
MrBrooklin:

Sim, os parênteses de abertura e fechamento convergem verticalmente após "Styling", mas a luz de fundo ou não entende o que é, ou não consigo vê-lo. O nível de habilidade de programação, no momento, é quase zero.

Cumprimentos, Vladimir.

o destaque é um par aceso primeiro após o título da função, deve ser aceso em par com o inferior, ou seja, cada par deve ter um par, estão acesos, se não, significa que falta um par de fechamento

 
Fast235:

o destaque é o suporte aceso primeiro após o cabeçalho da função, ele deve ser emparelhado com o suporte inferior, ou seja, cada suporte deve ter um par, eles estão acesos, se não, então o suporte de fechamento está faltando

Obrigado pela dica. Acontece que eles não são destacados na minha tela, mas destacados pela espessura. Sim, todos os parênteses estão lá. Agora, basta mover o bloco de funções atrás do suporte inferior OnStart e os erros desapareceram. Obrigado por sua ajuda!

Cumprimentos, Vladimir.

 
MrBrooklin:

Obrigado pela dica. Acontece que eles não são destacados na minha tela, mas se destacam na espessura. Sim, todos os parênteses estão lá. Agora, basta mover o bloco de funções atrás do suporte inferior OnStart e os erros desapareceram. Obrigado por sua ajuda!

Cumprimentos, Vladimir.

Todas as funções são declaradas no escopo global, ou seja, fora do espaço de outras funções, que é limitado por seus parênteses.
 
Реter Konow:
Todas as funções são declaradas no âmbito global, ou seja, fora do espaço de outras funções, que é delimitado por seus parênteses.

Caro Peter, diga-nos como você conseguiu criar sua chamada linguagem de marcação (), ela será útil para os recém-chegados, e eu preciso dela para desenvolver um pensamento lógico, o que é muito importante aqui

talvez algo tenha comido muito, subido a uma árvore
 
MrBrooklin:

Boa noite a todos!

Caros especialistas em programação, poderiam me dizer o que significa o erro que o compilador gera:"declarações de funções só são permitidas em âmbito global, namespace ou área de classe", para ser mais preciso, estou interessado no que é um namespace e onde ele deve estar localizado no script?

A pergunta está relacionada à escrita de código de função para "Tempo_Suficiente" e "Paciência_Suficiente".

Cumprimentos, Vladimir.

Área Global, a área fora das funções. e não importa onde, você pode entre funções, espero que entenda onde elas começam e terminam, você pode fazer tudo o que puder na área global, declarar variáveis globais, propriedades ou qualquer outra coisa no final. As variáveis declaradas no escopo global são visíveis em todos os lugares, literalmente. O escopo local é a área desde o início até o final, fechando os suportes encaracolados, da função. As variáveis declaradas na área local só são visíveis nesta área.

Favor notar que o código é lido de cima para baixo e da esquerda para a direita. O compilador não reordena as cordas. Portanto, a regra é que uma variável é sempre declarada acima ou à esquerda da referência a ela. E somente em seu próprio escopo. Em diferentes áreas locais, as variáveis podem ter os mesmos nomes. E, a propósito, loops e se são funções com suas próprias áreas também)

 
Valeriy Yastremskiy:

O escopo global, a área fora das funções. e não faz diferença onde, entre as funções, espero que você entenda onde elas começam e terminam, você pode fazer tudo no escopo global no final, declarar variáveis globais, propriedades ou o que quer que seja. As variáveis declaradas no escopo global são visíveis em todos os lugares, literalmente. O escopo local é a área desde o início até o final, fechando os suportes encaracolados, da função. As variáveis declaradas na área local só são visíveis nesta área.

Favor notar que o código é lido de cima para baixo e da esquerda para a direita. O compilador não reordena as cordas. Portanto, a regra é que uma variável é sempre declarada acima ou à esquerda da referência a ela. E somente em seu próprio escopo. Em diferentes áreas locais, as variáveis podem ter os mesmos nomes. (E, a propósito, loops e se são funções com seus próprios escopos também)

devemos escrever um livro. juntos todos nós

 
Реter Konow:
Todas as funções são declaradas no âmbito global, ou seja, fora do espaço de outras funções, que é limitado por seus parênteses.

Obrigado, Peter! Já fui ajudado a entender esta questão.

Estou continuando meu estudo da linguagem de programação MQL5 e hoje estou colando o código de um script, que é uma continuação de uma das tarefas dos participantes deste tópico. Testei o roteiro em todos os modos. Tudo funciona como deveria. Eu defini os parâmetros de entrada como um mínimo para começar.

Cumprimentos, 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:

Obrigado, Peter! Eu já fui ajudado a entender esta questão.

Estou continuando meu estudo da linguagem de programação MQL5 e hoje estou colando o código de um script, que é uma continuação de uma das tarefas dos participantes deste tópico. Testei o roteiro em todos os modos. Tudo funciona como deveria. Eu defini os parâmetros de entrada como um mínimo para começar.

Atenciosamente, Vladimir.

Estruturalmente, as funções são escritas corretamente, mas a lógica é coxa. Olhe todo o código com cuidado.

O resultado da função Sufficient_time() deve ser maior que zero, o que era uma condição lógica.
 
MrBrooklin:

Obrigado, Peter! Já fui ajudado a entender esta questão.

Estou continuando meu estudo da linguagem de programação MQL5 e hoje estou colando o código de um script, que é uma continuação de uma das tarefas dos participantes deste tópico. Testei o roteiro em todos os modos. Tudo funciona como deveria. Eu defini os parâmetros de entrada como um mínimo para começar.

Cumprimentos, Vladimir.

Descreva (escreva) o que seu roteiro faz. E é sempre melhor fazer isso no início. O alvo, por quê. Que tarefas podem alcançar o objetivo. Como as tarefas podem ser resolvidas, os algoritmos para resolvê-las e, em seguida, o código. E, a propósito, a divisão das tarefas é a decomposição)

 
Fast235:

Devemos escrever um livro. Juntos devemos todos

Esta pergunta há muito tempo já deveria ter sido formulada. Sergey Kovalev escreveu um manual para a linguagem de programação MQL4. Agora outro especialista tem que ser inspirado para fazer esta nobre ação para a MQL5.

Com os melhores cumprimentos, Vladimir.