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

 
Vladimir Simakov:

E depois há os padrões...

Sim, há um operador ternário também)

A partir deste caminho (compreender e saber como escrevê-lo) começa realmente o caminho do desenvolvedor. IMHO

São necessários ponto-e-vírgula após parênteses em enumeração e funções de modelo ou é apenas para legibilidade?

 
Реter Konow:
Esse é o meu ponto. Não há necessidade de enumerações e sintaxe desnecessária agora.
Para que serve então o terminal API? Há um pouco mais de enumeração lá do que f... ... e as estruturas de solicitação/resultado e similares são abundantes)
 
Реter Konow:
"... mas você ainda não respondeu corretamente..."

Valeriy já respondeu anteriormente em seu código de roteiro:

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

Atenciosamente, Vladimir.

 
MrBrooklin:

Valeriy já respondeu anteriormente em seu código de roteiro:

Com todo o respeito, Vladimir.

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

bool Tempo_Suficiente = Tempo_Suficiente();

bool Tempo_Suficiente = Tempo_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, não colocá-los como padrão, porque o significado de ter uma condição desaparece - é sempre verdade.
 
Valeriy Yastremskiy:

O ponto-e-vírgula e a vírgula após a cinta de frisos na enumeração e na função de modelo é obrigatório ou é para legibilidade?

Uma gralha. Inicialmente eu queria um objeto modelo com encadernação macro, mas decidi não piorar a situação).

E para as enumerações, sim, é necessário.

 
Реter Konow:
...Aqui é onde 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");

Peter, uma pergunta contrária para você: por que no tipo bool, que se destina a armazenar valores booleanos verdadeiros ou falsos, você especificou sufficiency_time() e sufficiency_patience()?

Atenciosamente, Vladimir.
 
MrBrooklin:

Peter, uma contrapergunta para você: por que você especificou sufficiency_time() e sufficiency_patience() em tipo bool, que é destinado a armazenar valores lógicos verdadeiros ou falsos?

Cumprimentos, Vladimir.
Porque estas são as funções, que precisam ser escritas para calcular o valor real das variáveis "Tempo_Suficiente" e "Paciência_Suficiente".

Estas funções devem conter cálculos de parâmetros que levem a uma resposta lógica de sim/não, que retornarão em variáveis. Estas funções devem retornar o resultado como um valor lógico verdadeiro/falso.
 
Реter Konow:
"...Sim, esta variante é correta em termos de sintaxe, mas ainda lhe falta lógica..."

Agora estou completamente confuso: por que não há lógica, mesmo que se utilize o tipo bool, que é necessário para armazenar valores lógicos? Por favor, esclareça, então, o que não é lógica?

Cumprimentos, Vladimir.

 
MrBrooklin:

Agora estou completamente confuso: por que não há lógica, mesmo que se utilize o tipo bool, que é necessário para armazenar valores lógicos? Por favor, esclareça em que não há lógica?

Com todo o respeito, Vladimir.

Veja: você define ambas as variáveis como verdadeiras antes (antes da condição). Portanto, elas SEMPRE serão verdadeiras a cada início do roteiro. Por que precisamos de condições entã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 variáveis em si, 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.
 
MrBrooklin:

Agora estou completamente confuso: por que não há lógica, mesmo que se utilize o tipo bool, que é necessário para armazenar valores lógicos? Por favor, esclareça em que não há lógica?

Atenciosamente, Vladimir.

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, 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 lembrar e funcionar retornarão Verdadeiro ou Falso com base em cálculo então a utilidade será mais))))