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

 
MrBrooklin:

Continuo estudando a linguagem de programação MQL5 e estou postando o código de um script, que é uma continuação de uma tarefa dos participantes deste tópico. O roteiro foi testado em todos os modos. Nenhum problema detectado. Eu defini o número mínimo de parâmetros de entrada para começar. O código do roteiro é escrito em inglês, os comentários ao código estão em russo, para facilitar o aprendizado. Como prometi anteriormente, tentei descrever o roteiro de uma maneira acessível a um aluno de 1ª classe da escola de programação.

Cumprimentos, Vladimir.

ok

agora torna o código da lógica algorítmica mais legível

acontece em apenas duas linhas:

if(have_time()>=Period_learning && have_time()!=0 && have_patience()==true)Print("Я выучу язык MQL5!");
else Print("Я не выучу язык MQL5!");

Você nem precisa comentar sobre isso.

 
Renat Akhtyamov:

ok

agora torna o código lógico algorítmico mais legível

são apenas duas linhas:

if(have_time()>=Period_learning && have_time()!=0 && have_patience()==true)Print("Я выучу язык MQL5!");
else Print("Я не выучу язык MQL5!");

Você não precisa nem comentar sobre isso.

Olá, Renat! Concordo, talvez eu não deva escrever muitos comentários, mas eles ajudarão a todos os novatos sem nenhum conhecimento de programação. Se alguém tivesse feito este trabalho antes de mim, o processo de aprendizagem teria sido muito mais rápido. Os comentários ajudarão a memorizar meu próprio código mais rapidamente. Talvez os comentários sejam mais curtos no futuro.

Cumprimentos, Vladimir.

 
Roman Shiredchenko:


Seu código e sua lógica estão corretos. Em meu IMHO, olhei ontem, eu mesmo fiquei surpreso com o zero no início, mas depois peguei o chip da diferença... :-)

Olá Roman! Sim, é a conseqüência da educação técnica e minha lógica de pensamento é um pouco diferente, mas Peter estava certo sobre zero, então eu mudei o código do roteiro.

Cumprimentos, Vladimir.

 
MrBrooklin:

Continuo estudando a linguagem de programação MQL5 e estou postando o código de um script, que é uma continuação de uma tarefa dos participantes deste tópico. O roteiro foi testado em todos os modos. Nenhum problema detectado. Eu defini o número mínimo de parâmetros de entrada para começar. O código do roteiro é escrito em inglês, os comentários ao código estão em russo, para facilitar o aprendizado. Como prometi anteriormente, tentei descrever o roteiro de uma maneira acessível a um aluno de 1ª classe da escola de programação.

Cumprimentos, Vladimir.

Os problemas de lógica permanecem:

1. As funções devem calcular alguma coisa. Neste caso, ambas as funções inicializam as variáveis globais com o valor de suas variáveis de entrada e não fazem mais nada. Ou seja, se você colocar variáveis inpu na condição, nada mudará.

2. have_time é igual a Days_passed, que é definido pelo usuário. A condição diz: if(have_time() >= period_learning... que é 500, e depois diz && have_time() >0... isto é um erro lógico. Se have_time() está acima de 500, então have_time() já está acima de zero, portanto este código é desnecessário.

3. O resultado de perguntar se você vai ou não aprender não deve depender apenas do gancho. Você precisa pensar em alguma variável com um valor indefinido que afetará o cálculo independentemente do seu desejo. Caso contrário, não há dúvidas - o que você entrou é o que você tem.


P.S. Se a entrada tem_tem_tem_tempo > 0 controla assim o valor de peroid_lerning, em caso de entrada de valor negativo ou zero, é mais correto colocar em condição && período_aprendizagem > 0.
 
Fast235:

Primeiro, aprenda a trabalhar com variáveis de string com Dmitry Fedoseyev, os infostringements são muito nebulosos na fase de estudo do código de outras pessoas,

O artigo que ele revisou deixa tudo claro, e você aprenderá alguns dos detalhes de passagem, estou falando como leitor da maioria dos artigos aqui, acho que ninguém leu mais do que eu)

Olá, obrigado pela dica. Eu li os artigos de Dmitry Fedoseyev, mas até agora estou tendo dificuldade em aprender com seus artigos, pois não tenho nenhum treinamento básico. Esperamos que fique mais fácil. A propósito, escrever o script Learning_MQL5.mq5 me ajudou a entender o que é uma função, para que serve e como é criada!

Com os melhores cumprimentos, Vladimir.

 
Реter Konow:
Os problemas de lógica permanecem:

1. As funções têm que calcular alguma coisa. Neste caso, ambas as funções inicializam as variáveis globais com o valor das variáveis pip e não fazem mais nada. Ou seja, se você colocar variáveis inpu na condição, nada mudará.

2. Have_time é igual a Days_passed, que é definido pelo usuário. A condição diz: if(have_time() >= period_learning... que é 500, e depois diz && have_time() >0... isto é um erro lógico. Se have_time() está acima de 500, então have_time() já está acima de zero, portanto este código é desnecessário.

3. O resultado de perguntar se você vai ou não aprender não deve depender apenas do gancho. Você precisa pensar em alguma variável com um valor indefinido que afetará o cálculo independentemente do seu desejo. Caso contrário, não há dúvidas - o que você entrou é o que você recebeu.

Olá Peter! Sabia que você teria perguntas, especialmente sobre o ponto 2.

O código aqui não é supérfluo, mas muito inteligente. Se você tentar remover && have_time()!=0(você o escreveu como && have_time()>0) do código do script, o resultado será "I will learn MQL5!" dado os parâmetros de entrada Period_learning=0 e Days_passed=0, e isto não é permitido do ponto de vista dogics!

Concordo com os outros pontos - há muito em que pensar.

Cumprimentos, Vladimir.

 
MrBrooklin:

Olá Peter! Eu sabia que você teria perguntas, especialmente sobre o ponto 2.

O código aqui não é supérfluo, mas bastante elaborado. Se você tentar remover && have_time()!=0(você o escreveu como && have_time()>0) do código do script, o resultado será "I will learn MQL5!" dado os parâmetros de entrada Period_learning=0 e Days_passed=0, e isto não é permitido do ponto de vista dogics!

Concordo com os outros pontos - há muito em que pensar.

Cumprimentos, Vladimir.

Ok, olhe: have_time() retorna essencialmente o valor da variável inpu Days_passed. Se Days_passed for definido para zero, a entrada if(...have_time()!=0... não nos passará para a condição, mas se Period_learning for definido para zero, nós passaremos para a condição. Assim, escrever Period_learning >0 irá simultaneamente nos proteger de zero na variável Days_passed e de zero na variável Period_learning, enquanto escreve se(... have_time()!=0 ... somente contra zero em Dias_passados).
 
Реter Konow:
Ok, veja: a função have_time() retorna essencialmente o valor da variável de entrada Days_passed. Se Days_passed for zero, então a entrada if(...have_time()!=0... não nos deixará passar para a condição, mas se Period_learning for zero, nós passaremos para a condição. Assim, escrever Period_learning >0 irá simultaneamente nos proteger de zero na variável Days_passed e de zero na variável Period_learning, enquanto escreve se(... have_time()!=0 ... somente contra zero em Dias_passados).

Estou vendo.

Com todo o respeito, Vladimir.

 
MrBrooklin:

Estou vendo.

Cumprimentos, Vladimir.

No essencial, é claro, você deu um grande passo em frente - você dominou e começou a usar as funções, e os parabéns estão em ordem!)

A este ritmo, você logo estará atrás.

P.S. Desculpe por não dizer olá. As pessoas não costumam dizer olá aqui no fórum, o que, naturalmente, não deve ser tomado como um sinal de desrespeito. Lembro-me que há cerca de cinco anos um moderador me repreendeu quando eu cumprimentei os membros do fórum. )) Desde então, eu não digo olá aqui, apenas em particular. Desculpe novamente.))))
 
Реter Konow:
Você certamente deu um sério passo em frente no essencial - dominou e começou a usar as funções, pelas quais está de parabéns, é claro!

A este ritmo, você logo estará atrás.

P.S. Desculpe por não dizer olá. As pessoas não costumam cumprimentar aqui no fórum, o que, naturalmente, não deve ser tomado como um sinal de desrespeito. Lembro-me que há cerca de cinco anos um moderador me repreendeu quando eu cumprimentei os membros do fórum. )) Desde então, eu não digo olá aqui, apenas em particular. Desculpe novamente))))

Obrigado, Peter, pelas palavras de encorajamento!

Quanto às conversas educadas, especialmente saudando e desejando a todos um bom dia e bom humor. Na minha opinião, é muito inexistente no fórum. O tratamento respeitoso dos interlocutores é algo que nossa geração tem sido ensinado desde os tempos soviéticos. Se a administração do site (fórum) me repreender quanto ao acolhimento aos participantes, eu o levarei em consideração e seguirei as regras.

Cumprimentos, Vladimir.

Razão: