MQL5 언어를 처음부터 자가 학습 - 페이지 41

 
MrBrooklin :

모든 것이 정확합니다! 내 시간은 일 단위입니다. 그리고 훈련 기간과 훈련 시작 후 며칠이 지났는지. 아마 이해가 안되는 부분이...

안부 인사를 전합니다. 블라디미르.

조건 논리의 관점에서 볼 때 "언어를 배우겠습니다"라는 문자열은 학습 가능한 시간과 인내심을 계산한 결과로 출력될 수 있습니다. 매개변수(시간 또는 인내) 중 하나가 0이면 언어는 학습되지 않습니다. 따라서 조건에 논리적 오류가 있습니다.
 
MrBrooklin :

고마워 피터! 나는 이미 이 문제를 해결하는 데 도움을 받았습니다.

저는 계속해서 MQL5 프로그래밍 언어 를 공부하고 있으며 오늘은 이 주제의 참가자들이 한 작업의 연속인 스크립트 코드를 게시합니다. 스크립트는 모든 모드에서 테스트되었습니다. 모든 것이 제대로 작동합니다. 시작하려면 입력 매개변수를 최소로 설정했습니다.

안부 인사를 전합니다. 블라디미르.

당신은 ..., 변수와 함수의 이름에 러시아어 이름을 쓰지 마십시오. 이것은 매우 나쁜 매너로 간주됩니다. 당신이 스스로 프로그램을 만들고 있다는 것은 분명하지만 이것은 결국 1C가 아닙니다. 표준 코드 스타일에 즉시 익숙해지십시오. 그러면 분명히 필요한 조언자와 지표에서 다른 사람의 코드를 읽는 것이 더 쉬울 것입니다.

 
Реter Konow :
조건 논리의 관점에서 볼 때 "언어를 배우겠습니다"라는 문자열은 학습 가능한 시간과 인내심을 계산한 결과로 출력될 수 있습니다. 매개변수(시간 또는 인내) 중 하나가 0이면 언어는 학습되지 않습니다. 따라서 조건에 논리적 오류가 있습니다.

함수 자체의 조건이나 스크립트의 논리적 오류를 의미합니까?

안부 인사를 전합니다. 블라디미르.

 
Vasiliy Sokolov :

당신은 ..., 변수와 함수의 이름에 러시아어 이름을 쓰지 마십시오. 이것은 매우 나쁜 매너로 간주됩니다. 당신이 스스로 프로그램을 만들고 있다는 것은 분명하지만 이것은 결국 1C가 아닙니다. 표준 코드 스타일에 즉시 익숙해지십시오. 그러면 분명히 필요한 조언자와 지표에서 다른 사람의 코드를 읽는 것이 더 쉬울 것입니다.

Vasily, 당신은 믿지 않을 것이지만 "FOR"만! 문제의 조건이 러시아어로 설정되었으므로 계속됩니다. 영어를 사용하여 스크립트를 다시 작성하십시오.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

함수 자체의 조건이나 스크립트의 논리적 오류를 의미합니까?

안부 인사를 전합니다. 블라디미르.

코드에 구문 오류는 없지만 논리가 깨져 주의 깊게 모니터링해야 합니다.

sufficiency_time 함수의 계산 자체가 비논리적입니다. 시간은 0이 아닐 때 충분합니다. 이 함수는 시차를 계산하고 부울 예/아니요를 반환합니다. 저것들. 기능이 잘못되었습니다. TimeSufficiency() 계산을 재고하십시오.

하지만, 아니. 함수는 ushort를 반환하지만 여전히 논리가 없습니다. Time_sufficiency는 0보다 커야 합니다.
 
Реter Konow :
코드에 구문 오류는 없지만 논리가 깨져 주의 깊게 모니터링해야 합니다.

sufficiency_time 함수의 계산 자체가 비논리적입니다. 시간은 0이 아닐 때 충분합니다. 이 함수는 시차를 계산하고 부울 예/아니요를 반환합니다. 저것들. 기능이 잘못되었습니다. 계산을 재고하십시오 Time_Sufficiency()

하지만, 아니. 함수는 ushort를 반환하지만 여전히 논리가 없습니다. Time_sufficiency는 0보다 커야 합니다.

이제 명확합니다. 수행 방법을 알아내기만 하면 됩니다. 주말에 할 일이 많을 것입니다.

안부 인사를 전합니다. 블라디미르.

 
Реter Konow :
코드에 구문 오류는 없지만 논리가 깨져 주의 깊게 모니터링해야 합니다.

sufficiency_time 함수의 계산 자체가 비논리적입니다. 시간은 0이 아닐 때 충분합니다. 이 함수는 시차를 계산하고 부울 예/아니요를 반환합니다. 저것들. 기능이 잘못되었습니다. TimeSufficiency() 계산을 재고하십시오.

하지만, 아니. 함수는 ushort를 반환하지만 여전히 논리가 없습니다. Time_sufficiency는 0보다 커야 합니다.

초심자를 위한 글이라면 평이한 글을 쓰면 멀리서 와서 얕잡아 볼 일이 없다.

그리고 당신의 위협은 그들이 흥미로울 수 있는 곳을 볼 것입니다
 

MQL5 프로그래밍 언어를 계속 연구하고 이 주제의 참가자가 한 작업을 계속 실행하는 스크립트 코드를 게시합니다. 스크립트는 모든 모드에서 테스트되었습니다. 문제가 확인되지 않았습니다. 우선 최소한의 입력 매개변수를 적용했습니다. 스크립트 코드는 영어로 작성되었으며 코드에 대한 주석은 자료의 동화를 용이하게 하기 위해 러시아어로 작성되었습니다. 이 대본에서는 앞서 약속한 대로 프로그래밍 학교 1학년 학생이 볼 수 있는 프레젠테이션에서 모든 것을 설명하려고 했습니다.

안부 인사를 전합니다. 블라디미르.

 //+------------------------------------------------------------------+
//|                                                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 description "Скрипт подводит итог обучения языку программирования MQL5. В зависимости от "
#property description "входных параметров печатает во вкладке \"Эксперт\" торгового терминала два"
#property description "сообщения на русском языке: \"Я выучу язык MQL5!\" или \"Я не выучу язык MQL5!\""
#property description "Код скрипта написан на основе примера, приведенного Valeriy Yastremskiy на сайте"
#property description "MQL5, в теме \"Самообучение языку MQL5 с полного нуля\"." 
#property description "======================================================"
#property description "Ссылка на пример https://www.mql5.com/ru/forum/352460/page30#comment_18646826"
//---
#property version      "1.00"                //версия скрипта 1.00
//---
#property script_show_inputs                //выводить окно со свойствами перед запуском скрипта 
//--- Зададим входные параметры скрипта: 
input ushort Period_learning= 500 ;         //Полный период обучения в днях
input ushort Days_passed= 10 ;               //Сколько дней прошло с начала обучения
input bool    Patience= true ;               //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные:
//переменная enough_time (достаточно времени), где ushort - минимальное значение "0", максимальное "65535"
ushort enough_time;
//переменная enough_patience (достаточно терпения), где bool - логическое значение: истина (true) или ложь (false)
bool enough_patience;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart () //старт работы скрипта
  {
/* Зададим условие для работы скрипта. Если:
   1. значение функции "имею время" будет больше или равно "Полного периода обучения", заданного 
      во входных параметрах скрипта;
   2. и значение функции "имею время" не будет равно нулю;
   3. и значение функции "имею терпение" будет равно значению истина (true)
*/
   if (have_time()>=Period_learning && have_time()!= 0 && have_patience()== true )
     {
       Print ( "Я выучу язык MQL5!" );     //выводим сообщение "Я выучу язык MQL5!"
     }
   else //в противном случае
     {
       Print ( "Я не выучу язык MQL5!" ); //выводим сообщение "Я не выучу язык MQL5!"
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//--- Функция "имею_время"
ushort have_time()             //создаём функцию "имею_время" и присвоим тип данных ushort
  {
   enough_time=Days_passed;   //задаём для значения enough_time (достаточно времени) значение равное
                               //входному параметру "Сколько дней прошло с начала обучения" (Days_passed)

   return (enough_time);       //возвращаем значение "достаточно времени" в функцию "имею время"
  }
//--- Функция "имею_терпение"
bool have_patience()           //создаём функцию "имею_терпение" и присвоим тип данных bool
  {
   enough_patience=Patience;   //задаём для переменной enough_patience (достаточно терпения) значение равное
                               //входному параметру "Терпение" (Patience): истина или ложь

   return (enough_patience);   //возвращаем значение "достаточно терпения" в функцию "имею терпение"
  }
//+------------------------------------------------------------------+
 

먼저 문자열 변수 로 작업하는 방법을 배우십시오. Dmitry Fedoseev에서 infostring은 다른 사람의 코드를 연구하는 단계에서 마음을 크게 흐리게 합니다.

그가 해체한 기사에서 모든 것이 명확하고 같은 장소에서 여러 지점의 작업 중 일부를 배우게 될 것입니다. 여기 대부분의 기사를 읽는 독자로서 여기에서 아무도 읽지 않았다고 생각합니다. 나보다 더)

 
MrBrooklin :

모든 것이 정확합니다! 내 시간은 일 단위입니다. 그리고 훈련 기간과 훈련 시작 후 며칠이 지났는지. 아마 제가 이해하지 못하는 다른 부분이...

안부 인사를 전합니다. 블라디미르.



귀하의 코드와 논리가 정확합니다. 어제 제 IMHO를 보다가 처음에는 0에 놀랐는데 나중에 차이칩을 따라잡았어요... :-)