전문 프로그래머로서 "터미널"에서 바라는 것. MQL5에 대한 소망이 있는 또 다른 주제. - 페이지 6

 
Korey писал (а) >>
수치 알고리즘의 약 4분의 1이 goto를 사용합니다. 알고리즘이 검증되고, 승인되고, 테스트되었지만, 있을 수 없습니다.
goto 없이 MT로 옮기나요?

dll에 기능을 푸시하거나 goto를 제거하십시오.

어떤 알고리즘을 말씀하시는지 궁금합니다.

 

나는 한국 에 합류한다. goto로 구현된 우아한 알고리즘을 본 사람이 있습니까? 이 모든 고토 히스테리는 실제 필요가 아닌 일종의 종교일 뿐입니다. 좋은 코더는 조건부 점프가 있는 동등한 코드보다 더 읽기 쉬운 goto를 사용하여 명확하고 간결한 코드를 작성할 수 있습니다.

추신: goto를 비판했던 Wirth 자신은 여전히 그것을 그의 아이디어에 남겨 두었던 것 같습니다. 그리고 "가장 구조적인" 언어인 C++에서는 goto가 사라지지 않은 것 같습니다. 나는 C와의 하위 호환성에 대한 반대를 받아들이지 않습니다.

 
TheXpert писал (а) >>

일반적으로 goto를 사용하는 것은 잘못된 프로그래밍 스타일이며 99%의 경우 goto가 포함된 코드는 기존 조건문과 유사한 것으로 대체될 수 있습니다.

나는 동의하지 않는다.

다시 작성하는 것이 가능합니다. 그러나 언어에 goto가 없는 것은 나쁜 스타일이며 코드의 99%는 용도에 따라 다시 작성할 수 있다고 말할 수도 있습니다.

예를 들어, och. 루프가 있는 복잡한 중첩 if-else 구조를 종료하기에 충분한 goto가 없었습니다. 구조의 깊숙한 곳에서 분석을 종료해야 할 필요성이 계산되면 이러한 모든 첨부 파일에 대해 종료 플래그에 대한 추가 분석을 처방해야 하는데, 이는 제 생각에는 불편합니다. 코드를 복잡하게 만듭니다. 구문 분석 외부에서 플래그 및 -goto 상태를 기억하기가 훨씬 쉽습니다.

레이블로 이동할 필요는 없습니다. 이미 논의되었습니다. 외부(명명된) 블록(연산자, 루프 - 중괄호 안에 본문이 있는 것)을 넘어서는 것이 가능합니다.

 

글쎄, SK. 내가 올바른 스타일에 대해 광신도에게 묻고 싶은 것을 이미 썼습니다(예를 들어, 5중 중첩된 if-else의 깊이에서 빠져나오기).

 
TheXpert писал (а) >>

dll에 기능을 푸시하거나 goto를 제거하십시오.

어떤 알고리즘을 말씀하시는지 궁금합니다.

이것은 수치 방법의 주요 소스인 Fortran에 관한 것입니다.
모든 것은 미국 엔지니어 협회(American Association of Engineers)의 테스트 및 승인을 받았습니다.
그리고 여기에는 문제가 없는 것 같습니다 - 우리는 DLL로 작업하고 그게 전부입니다)))
그리고 그대로 - MQ 코드에 직접 삽입하고 싶지만 매우 긴 알고리즘을 쟁기질해야 합니다.

추신과 가장 중요한 - 위험

 
Mathemat писал (а) >> 를 썼습니다.

나는 한국 에 합류한다. goto로 구현된 우아한 알고리즘을 본 사람이 있습니까? 이 모든 고토 히스테리는 실제 필요가 아닌 일종의 종교일 뿐입니다. 좋은 코더는 조건부 점프가 있는 동등한 코드보다 더 읽기 쉬운 goto를 사용하여 명확하고 간결한 코드를 작성할 수 있습니다.

추신: goto를 비판했던 Wirth 자신은 여전히 그것을 그의 아이디어에 남겨 두었던 것 같습니다. 그리고 "가장 구조적인" 언어인 C++에서는 goto가 사라지지 않은 것 같습니다. 에 대한 반대

C와의 하위 호환성을 허용하지 않습니다.

나는 항의하지 않을 것이다. 괜찮은.

SK. 썼다 (a) >>

나는 동의하지 않는다.

다시 작성하는 것이 가능합니다. 그러나 언어에 goto가 없는 것은 나쁜 스타일이며 코드의 99%는 용도에 따라 다시 작성할 수 있다고 말할 수도 있습니다.

예를 들어, och. 루프가 있는 복잡한 중첩 if-else 구조를 종료하기에 충분한 goto가 없었습니다. 구조의 깊숙한 곳에서 분석을 종료해야 할 필요성이 계산되면 이러한 모든 첨부 파일에 대해 종료 플래그에 대한 추가 분석을 처방해야 하는데, 이는 제 생각에는 불편합니다. 코드를 복잡하게 만듭니다. 구문 분석 외부에서 플래그 및 -goto 상태를 기억하기가 훨씬 쉽습니다.

레이블로 이동할 필요는 없습니다. 이미 논의되었습니다. 외부(명명된) 블록(연산자, 루프 - 중괄호 안에 본문이 있는 것)을 넘어서는 것이 가능합니다.

휴식이 작동하지 않습니까?


일반적으로 모든 사람은 자신의 스타일과 이해를 가지고 있으며 이 주제를 마무리하겠습니다.

SK. 이와 관련하여 문제가 있는 경우 연락해 주십시오. 시간이 된다면 확실히 도와드리겠습니다.

 
TheXpert писал (а) >> Break가 작동하지 않습니까?

이것은 루프나 스위치에만 해당됩니다. 모든 것은 상대적입니다.

 
TheXpert писал (а) >>

휴식이 작동하지 않습니까?

일반적으로 모든 사람은 자신의 스타일과 이해를 가지고 있으며 이 주제를 마무리하겠습니다.

SK. 이와 관련하여 문제가 있는 경우 연락해 주십시오. 시간이 된다면 확실히 도와드리겠습니다.

휴식이 작동하지 않습니다. 그 행동은 제한적입니다.

그리고 무례하지 않아야 합니다.

 
SK. писал (а) >>

그리고 무례하게 굴지 말아야 합니다.

그리고 나는 생각하지 않았다.

 
Korey писал (а) >>

이것은 수치 방법의 주요 소스인 Fortran에 관한 것입니다.
모든 것은 미국 엔지니어 협회(American Association of Engineers)의 테스트 및 승인을 받았습니다.
그리고 여기에는 문제가 없는 것 같습니다 - 우리는 DLL로 작업하고 그게 전부입니다)))
그리고 그대로 - MQ 코드에 직접 삽입하고 싶지만 매우 긴 알고리즘을 쟁기질해야 합니다.

추신과 가장 중요한 - 위험

포트란, 고토가 있었다. 그러나 이것은 수치적 방법의 효율성 때문이 아니다. MatLab은 그 이상도 구현하지 않으며 goto도 없습니다. 이동 그 역사는 어셈블러의 프로그래밍 스타일(레이블로의 전환)로 거슬러 올라갑니다. 이 연산자의 명백한 단순성은 오해의 소지가 있습니다. 5개의 첨부 파일 있다고 가정해 보겠습니다. 다른 . 그리고 고토 했다 모든 것이 필요한 곳이지만 지역 및 전역 변수, 스택, 포인터, 배열 등이 있습니다. 그들과 함께하는 방법? 첨부 파일에서 적절한 종료 구현 어셈블러에서는 생각할 수 있는 모든 오류를 고려합니다.

내가 개발자라면 MQL 5에서 MathCad ( MatLab )로 작성된 프로그램을 첨부할 수 있게 하려고 합니다. 그래서 그것은 간단하고 쉬울 것입니다(오른손이 왼쪽 귀 뒤에 있는 것이 아님). 이는 수십억 인시 절약 + 데이터 처리 기능의 거대한 발전입니다. 이번 기회에 단말기 개선에 주력