어떻게 작동합니까? ... if (Minute () == (11 || 15 || 18) test = true;
위와 같은 여러 옵션을 단일 값으로 비교하는 방법이 있습니까? 또는 (() == 11 || Minute () == 15 || Minute () == 18);
어떻게 작동합니까? ... if (Minute () == (11 || 15 || 18) test = true;
위와 같은 여러 옵션을 단일 값으로 비교하는 방법이 있습니까? 또는 (() == 11 || Minute () == 15 || Minute () == 18);
파이썬처럼 멤버쉽을 확인하는 쉬운 방법은 없습니다. 함수를 작성해야합니다. 삽입 된 코드 void OnStart () {int minutes # 91; # 93; = {1,5,15,23,35,45,53}; 인쇄 (is_in (35, 분));/true} templatelt; typename Tgt; check_value == array # 91; i # 93; if_in (check_value == array # 91; # 93; ) true를 반환; false를 반환; }원래에 의해 게시 됨 ;
빠른 회신 Nicholishen 주셔서 감사합니다. 정말 기능을 만들거나 배열을 다루는 등의 간단한 일을하지 않으려 고 노력했다. 그래서 쉬운 (멍청한) 대답은 것 같아요. if (Minute () = = 11 || Minute () == 15 || Minute () == 18) test = true;
Minute 함수를 여러 번 호출하기 때문에 최적이 아닙니다. 먼저 분 함수를 호출 한 다음 변수에 대입하고 변수를 여러 번 비교합니다.원래에 의해 게시 됨 ;
대부분의 프로그래밍 언어는 이와 같은 표현을 허용하지 않습니다. 파이썬에서는 # 91, y, z, w # 93;에서 x를 삽입하면 삽입 코드와 같은 멋진 기능을 수행 할 수 있습니다.원래에 의해 게시 됨 ;
당신은 틀렸어 ... 당신은 루프를 만들지 않았다 ... 템플릿을 사용하여 더 잘 보이기는하지만 템플릿이 무엇인지 모르겠다 ... 인덱스를 반환하지 않으면 배열을 검색해야한다. ?? ... 다음 번에 게시하기 전에 코드를 테스트하고 컴파일 오류로 가득 차 있습니다 ... 조금 비꼬 잖아요.하지만 간단한 것들에 문제가있을 때 복잡한 수업에 대해 가르치고있는 여러분의 의견을 읽었습니다 .... 코드 삽입 코드 void OnStart () {int minutes # 91; # 93; = {1,5,15,23,35,45,53}; 인쇄 (is_in (35, 분));/true} templatelt; typename Tgt; check_value == array # 91; i # 93; if_in (check_value == array # 91; # 93; ) true를 반환; false를 반환; } 올바른 방법 ... 테스트 된 삽입 된 코드 templatelt; typename Tval, typename Tarrgt; int val == arr # 91; i # 93 TArraySearch (Tval val, Tarr arr # 91; # 93 (int i = 0; ilt; ArraySize (arr); 반환 값 : -1;/값을 찾지 못하면 반환 값} void OnTick () {int minutes # 91; # 93; = {1,5,15,23,35,45,53}; if (TArraySearch (Minute (), minutes)! = - 1) test = true;/if (OrderOpen (Symbol (), etc ...)! = - 1) ...} @mtbb 함수가 -1에서 다양한 값을 반환하면 숫자를 찾았고 테스트가 참일 수 있습니다. 값은 삽입 된 코드에 위치합니다. int index = TArraySearch (Minute (), minutes);/분 # 91; 인덱스 # 93; 배열 전체가 OnTick () 함수 밖에서 정의 된 경우 u가 현재 전체 액세스 권한을 가지며 배열을 수정할 수 있습니다. # 91; index # 93; = 16; ... 배열에서 true 또는 false를 반환 할 때 실제로 발견 된 값은 무엇이며 아무 쓸모가 없습니다 ... ideea가 없습니다 ... 배열 내에서 5 또는 15 또는 임의의 숫자가 될 수 있습니다. 항상 색인을 확인하십시오. 인덱스를 반환하면 배열 내부에 액세스 할 수 있습니다. u는 코드에서 액세스 할 수있는 동적 값을 검색 할 때 수천 개의 요소가있는 배열에서이 함수를 사용할 수 있습니다.원래에 의해 게시 됨 ;
예, 마스터, MQL 클래스를 사용하는 올바른 방법에 대한 교훈을 줄 수 있습니다. 예를 들어 내가 잘못 생각하고 공격적으로 반박하는 것에 대한 교훈을주는 것처럼 ... 시작하겠습니다.원래에 의해 게시 됨 ;
이 오류가 잘못되었을뿐만 아니라 내 코드의 루프가 자신의 루프보다 효율적입니다. 우리 함수를 비교할 때마다 루프가 카운트하고 ArraySize (O (1))를 한 번만 호출하는 동안 Counting과 ArraySize 함수를 각 반복 (O (n))에서 호출합니다. 나는 분명히 이걸 얻는다.원래에 의해 게시 됨 ;
나는 템플릿을 만드는 법을 잘 알고 있고 코드는 정확합니다. 반면에, 당신에게는 큰 버그가 있습니다. 컴파일 타임에 lt; typegt;를 확인해야합니다. 배열에 대해 검사되는 값의 lt; typegt;와 일치합니다. 참조되는 배열의 정의 된 템플릿 유형 만 두 가지 유형을 정의 할 수있었습니다. 이렇게하면 프로그램에서 다음 코드를 컴파일하도록 허용 할 수 있습니다 (주요 버그 임). 삽입 된 코드 문자열 num = one; int nums # 91; # 93; = {1,2,3}; if (is_in (num, nums)) ... FAIL원래에 의해 게시 됨 ;
is_in 함수는 멤버십 테스트를위한 부울 함수입니다. 요점은 표현의 내부에서 직접 사용할 수있는 것이 었습니다. 값 A가리스트 B의 멤버인지 테스트해야하기 때문에 색인을 필요로하지 않거나 신경 쓰지 않아도됩니다. 따라서 코드가 작동하려면 삽입 된 코드 if (is_in (value, list))와 yours Inserted Code if (is_in (value, list) gt; = 0) 어느 것이 더 깨끗한 지 물어볼 필요가 있습니까?원래에 의해 게시 됨 ;
이것은 완전히 중복됩니다. 값이 배열에 있는지 여부를 확인했습니다. 그렇지 않으면 더 이상 일어날 필요가 없습니다. 만약 그렇다면 당신은 이미 그 가치를 알고 있으며 임의적 인 목록에 그 위치의 색인을 저장할 필요가 없습니다.원래에 의해 게시 됨 ;
저는 C , Java 개발자이고 ... 저에게 가르 칠 수있는 것은 아무것도 없습니다 .MQL은 최고 수준의 언어이며 C 와는 아무런 관련이 없습니다. 처음부터 모든 것을 빌드해야합니다 ... MQL에서 그리고 metatrader 회사에 의해 정의 된 높은 수준의 함수들로만 재생할 수 있습니다 ... C like ... but not exactly. 이것은 프로그래머라고 부를 권리가 없습니다.이 언어는 프로그래머가 아닌 사람들을 위해 디자인되었습니다. .. 상인을 위해 더 정확하게. 이제 당신은 ideea를 얻길 바랍니다. 정말로 프로그래머가되기를 원한다면 C 포럼에 가서 약간의 반응을보기 위해 코드를 게시하십시오. 절대로 MQL과 C 또는 C 를 비교하려고 시도하지 마십시오. C 은 DirectX, OpenGl, 멀티 스레딩, 인라인 어셈블리, 디스어셈블러, 우회, 주입, 스니핑, 해독, 튜닝, 입력, 드라이버, 크로스 플랫폼, 다형성 등입니다. 전체 MQL 함수는 C 에서 0.01 % . U는 처음부터 DirectX로 게임하는 것이 얼마나 힘든가에 대한 아이디어가 없으므로 ... 침착하고 심호흡을하십시오. 이제 코드를 수정합시다. 귀하의 루프가 삽입 된 코드 (int i = ArraySize (array) -1; igt; = 0; i--) if (check_value == array # 91; i # 93; false를 반환; 너 심각한거야? U는 대괄호도 놓쳤습니다. 항상 거짓을 반환합니다. 배열 내부를 확인하지 않습니다.원래에 의해 게시 됨 ;
코드를 컴파일 한 다음 여기로 돌아와 가르칩니다. 루프는 삽입 된 코드 (int i = 0; ilt; bullshit; i ) {이 루프}와 같은 모양이며 템플릿은 ... 시도한 것과 동일한 T를 두 번 사용할 수 없습니다. 마시고 코드를 작성하지 마십시오. 동시에
.. 이건 불가능 해. 삽입 된 코드 템플릿; typename Tgt; bool is_in (T check_value, T array # 91; # 93 삽입 된 코드 템플릿입니다. typename Tval, typename Tarrgt; int TArraySearch (Tval val, Tarr arr # 91; # 93 그냥 너 자신을 어리 석다. 많이 가르치지 마라. 전에 책을 좀 읽으 라. 내 무시 목록에 오신 것을 환영합니다.
첨부 파일 1 개
원래 코드를 컴파일하고 게시하기 전에 테스트를 했으므로 수업을 계속 진행해 보겠습니다. C와 C 에서와 마찬가지로 MQL에서는 중괄호가 필요 없습니다. 루프 나 표현식 다음에 중괄호를 생략하면 제어 흐름이 다음 루프, 표현식 또는 명령문으로 연속적으로 전달됩니다. 둘 이상의 연속 표현식이있는 코드 블록을 식별하기 위해서는 중괄호가 필요합니다. 따라서이 두 코드 블록은 동일합니다. 삽입 된 코드 템플릿; typename Tgt; check_value == array # 91; i # 93; if_in (check_value == array # 91; # 93; ) true를 반환; false를 반환; } 삽입 된 코드 템플릿; typename Tgt; (check_value == 배열 # 91; i # 93); if_in (T check_value, T array # 91; # 93 (int i = ArraySize (array) -1; igt; = 0; i--) {true를 반환; }} return false; }원래에 의해 게시 됨 ;
나는 당신이 완전한 바보 같이 보이게하기 전에 몇 가지 기본적인 프로그래밍 개념을 공부할 것을 강력하게 제안합니다. 다음은 컴파일하는 스크립트입니다. 너 스스로 해보지 그래?원래에 의해 게시 됨 ;
https://www.koreaforex.kr/attachment...3696527634.mq4