오류, 버그, 질문 - 페이지 325

 
AlexSTAL :
젠장... 터미널에 대한 예제가 너무 많습니다... 엄마 걱정하지 마세요... 예를 들어 SymbolInfoSample.mq5 스크립트
때로는 여정의 시작 부분에서 새로운 개념을 정의하는 것으로 충분합니다. 그런 다음 샘플 프로그램을 탐색합니다.
 
파일을 포함할 전체 경로를 얻는 방법은 무엇입니까?


두 가지 기능이 있습니다

__FILE__ - 파일 이름 제공합니다.

MQL5_PROGRAM_PATH - 결과 ex5 파일 에 대한 경로 제공


질문 - mqh 파일의 위치를 찾는 방법은 무엇입니까?

 
MetaEditor에서 "파일의 기능 목록" 버튼은 목록을 엽니다. 아래로 스크롤하면 문자 P로 끝나며 문자 R에 대한 클래스가 있지만 더 이상 이동하지 않습니다(아래를 가리키는 검은색 삼각형이 비활성화됨). 수정하십시오.
 
-Alexey- :
MetaEditor에서 "파일의 기능 목록" 버튼은 목록을 엽니다. 아래로 스크롤하면 문자 P로 끝나며 문자 R에 대한 클래스가 있지만 더 이상 이동하지 않습니다(아래를 가리키는 검은색 삼각형이 비활성화됨). 수정하십시오.

그리고 적어도 목록의 대략적인 크기는 무엇입니까? 목록의 크기에 제한이있을 수 있습니다 ...
 

이것이 버그인지 내가 찾은 기능인지 모르겠습니다. 다음 코드는 작동하지만 경고 표현식이 부울이 아님을 나타냅니다.

 void OnStart ()
  {
//---
   int a= 3 ;
   int b= 3 ;
   int c= 3 ;
//---   
   if (a=b=c= 3 ) Alert ( "a=b=c=3" );
   else Alert ( "Условие не верно" );
//---
  }
 
sergey1294 :

이것이 버그인지 내가 찾은 기능인지 모르겠습니다. 다음 코드는 작동하지만 경고 표현식이 부울이 아님을 나타냅니다.



코드가 작동하지 않아야 하는 이유는 무엇입니까?

유일한 것은 if 피연산자가 bool로 캐스팅되지 않으면 컴파일러가 이에 대한 경고 를 표시하지만 그렇지 않으면 모든 것이 올바르게 작성된다는 것입니다.

그런데 a, b, c는 if에서 명시적으로 할당되기 때문에 전혀 초기화할 수 없습니다.

3a 에 할당되고, ab 에 할당되고, bc 에 할당되고, 그런 다음에만 true인지 확인 하고 Print()를 작성합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора - Документация по MQL5
 
sergey1294 :

이것이 버그인지 내가 찾은 기능인지 모르겠습니다. 다음 코드는 작동하지만 경고 표현식이 부울이 아님을 나타냅니다.


대부분 그렇게

 void OnStart ()
{
//----------------------------------------------------------------------------//
//Work variables
int a= 3 ;
int b= 3 ;
int c= 3 ;
//----------------------------------------------------------------------------//
   if (a&&b&&c== 3 ) Alert ( "a=b=c=3" );
   else Alert ( "Условие не верно" );
//----------------------------------------------------------------------------//
}
 

그런 다음 욕하지 않도록 이 표현을 쓰는 방법을 알려주세요.

 void OnStart ()
  {
//---
   int a= 1 ;
   int b= 2 ;
   int c= 3 ;
//---   
   if (a<b<c) Alert ( "a<b<c" );
   else Alert ( "Условие не верно" );
//---
  }
 
sergey1294 :

그런 다음 욕하지 않도록 이 표현을 쓰는 방법을 알려주세요.


 if (a<b&&b<c){ Print ( "" );}

할당 작업을 수행하는 첫 번째 게시물에서 다중 계단식 할당이 허용됩니다. 여기에서 다중 비교를 시도하고 있습니다.

ZY 출력에 두 개의 비교 결과가 있으므로 && 또는 다른 부울 연산자로 구분해야 합니다.

 
sergey1294 :

그런 다음 욕하지 않도록 이 표현을 쓰는 방법을 알려주세요.


나는 그렇게 제안한다

 //----------------------------------------------------------------------------//
//Work variables
int a= 1 ;
int b= 2 ;
int c= 3 ;
//----------------------------------------------------------------------------//
   if (a<b&&b<c) Alert ( "a<b<c" );
   else Alert ( "Условие не верно" );
//----------------------------------------------------------------------------//

니콜라이가 앞서갔습니다 :)

우크라이나 :

ZY 출력에 두 개의 비교 결과가 있으므로 && 또는 다른 부울 연산자로 구분해야 합니다.

이 경우 &&만 사용합니다.