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

 
Реter Konow:
Veja: você define ambas as variáveis como verdadeiras antes (antes da condição). Ou seja, eles SEMPRE serão verdadeiros a cada lançamento do roteiro. Por que, então, precisamos de uma condição? É possível neste programa que variáveis explicitamente inicializadas com true possam não ser verdadeiras? - Não! Porque você escreveu este valor neles e ele não pode ser alterado em nenhum lugar no código.

Neste caso, a condição não é necessária, nem as próprias variáveis são necessárias, pois SEMPRE o resultado do roteiro será a seqüência "Eu aprenderei a língua".

Entretanto, ter valores variáveis calculados em funções adicionais pode levar a diferentes combinações de resultados - um retornará verdadeiro, o outro falso, ou ambos retornarão falso, ou ambos retornarão verdadeiro... Neste caso, a condição escrita é justificada por possíveis variações nos valores variáveis que levam à impressão de diferentes cordas.

Obrigado, Peter, pelo esclarecimento!

Cumprimentos, Vladimir.

 
Valeriy Yastremskiy:

Não há lógica, pois estas são variáveis definidas no roteiro. Devem ser variáveis definidas pelo usuário através de uma instância, ou derivadas de funções, o que é ainda mais lógico.

Isto é, a utilidade do roteiro deve estar sempre presente. Apenas um roteiro exibindo texto é inútil. E com a entrada de dados este script lhe dirá se você pode aprender o idioma) E com funções, elas simplesmente não existem, não são escritas, e se você escrever, por exemplo, um cálculo a partir do nível de conhecimento de matemática, conhecimento de outros idiomas, quanto tempo livre, nível de desejo e capacidade de memorizar e a função retornará Verdadeiro ou Falso com base no cálculo, a utilidade será mais))))

Valery, muito obrigado pela resposta detalhada!

Atenciosamente, Vladimir.

 

Aqui está uma versão revisada do roteiro, incluindo dicas para aqueles novos no roteiro que podem ou não estar lendo este tópico:

//+------------------------------------------------------------------+
//|                                                            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!");
     }
  }
//+------------------------------------------------------------------+

Adicionado ao roteiro:

  1. "exibir janela de propriedades antes de executar o roteiro";
  2. Capacidade de mudar variáveis externas.

Cumprimentos, Vladimir.

 
Реter Konow:
Sim, esta variante é correta em termos de sintaxe, mas ainda lhe falta lógica. Ontem Vasily escreveu muito sobre funções. É aqui que eles são necessários:

bool Tempo_Suficiente = Tempo_Suficiente();

bool Paciência_Suficiente = Paciência_Suficiente();

if(Sufficient_time && Sufficient_patience)Print("I will learn the language!");

senão Imprimir ("não o farei");

Você tem que calcular o tempo e a paciência antes de colocá-los em uma condição, em vez de colocá-los por padrão, porque não faz sentido ter a condição - é sempre verdade.

+1. Isso é correto.

 
Реter Konow:
"... Você deve calcular o tempo e a paciência antes de colocá-los em uma condição, em vez de colocá-los por padrão, porque o significado de ter uma condição desaparece - é sempre verdade".

Definitivamente farei isso, mas mais tarde, como meu "pote" já está fervendo, preciso esfriá-lo um pouco.

Atenciosamente, Vladimir.

 
MrBrooklin:

Aqui está uma versão corrigida do roteiro, levando em conta as dicas:

Adicionado ao roteiro:

  1. "exibir janela de propriedades antes de executar o roteiro";
  2. Capacidade de mudar variáveis externas.

Cumprimentos, Vladimir.

Certo! E depois tente escrever funções que calculam os valores dessas variáveis dependendo dos valores de outras variáveis externas.

Ou seja, a função Enough_time() tomará valores de variáveis externas:

data de entrada hora Dias_formação = 100;
Entrada uchar Hora_em_dia = 5;
... e assim por diante...

Em outras palavras, as funções tomarão os valores de suas variáveis de entrada e farão cálculos, e o resultado será retornado nas variáveis Tempo_Suficiente e Paciência_Suficiente, que, então, você pode colocar em uma condição com múltiplas opções, cada uma das quais imprimirá uma string diferente.

 
Реter Konow:
Você está certo! E depois tente escrever funções que calculam os valores dessas variáveis dependendo dos valores de outras variáveis externas.

Ou seja, Sufficient_time() tomará os valores das variáveis externas:

data de entrada hora Dias_de_formação_dia = 100;
Entrada uchar Hora_em_dia = 5;
... e assim por diante...

Então, as funções pegarão os valores das variáveis de entrada e farão cálculos, e o resultado retornará às variáveis Tempo_Suficiente e Paciência_Suficiente, que você pode então colocar em uma condição com múltiplas opções, cada uma das quais imprimirá uma string diferente.

Peter, coloque sua sugestão em meu plano de auto-aprendizagem. O resultado será postado posteriormente sob a forma de roteiro de código.

Cumprimentos, Vladimir.

 
MrBrooklin:

Definitivamente farei isso, mas mais tarde, como meu "pote" já está fervendo, preciso esfriá-lo um pouco.

Atenciosamente, Vladimir.

É claro, faça uma pausa).
 
Реter Konow:
Certo! E depois tente escrever funções que calculam os valores dessas variáveis dependendo dos valores de outras variáveis externas.

Ou seja, Sufficient_time() tomará os valores das variáveis externas:

data de entrada hora Dias_de_formação_dia = 100;
Entrada uchar Hora_em_dia = 5;
... e assim por diante...

É mais ou menos claro com o tempo, mas as variáveis para "Paciência Suficiente" ainda são um problema. O que devo colocar neles? Tem paciência ou não tem paciência? Ao menos estes dois parâmetros? Preciso pensar sobre isso.

Cumprimentos, Vladimir.

 
MrBrooklin:

O tempo é mais ou menos claro, mas as variáveis para "Basta de paciência" são um problema. O que você coloca neles? Há paciência ou não há paciência? Ao menos estes dois parâmetros? Preciso pensar sobre isso.

Cumprimentos, Vladimir.

1. Mood (enumeração dos tipos por unidades condicionais inicializadas).

2. Autopercepção (a mesma coisa).

3. Quociente de motivação.

4. O coeficiente de crença em forex

...

Invente um par de fórmulas de cálculo e pronto).