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

 
Andrei Trukhanovich :

아마도 기능에 비해?

위키피디아 참조:

그리고 우리는 이것이 같은 것이 아니라는 것이 밝혀졌습니다.


그래서 절차상...

 
Nikolai Semko :

아마 나는 당신을 놀라게 할 것입니다. 그러나 오늘날의 젊은 프로그래머들은 OOP를 절차적 프로그래밍보다 더 쉬운 프로그래밍으로 생각합니다.

당신은 25년 전의 관점에서 생각합니다. PLO의 현대 청년들은 이미 모유를 먹고 있습니다. 유행을 하고 싶다면 OOP를 배우세요. 그렇지 않으면 투덜거리기만 할 뿐입니다.

그리고 정말입니다. 따라서 오래된 프로그래머가 학생을위한 현재 올림피아드 문제를 해결하도록하십시오.

동적 프로그래밍, 그래프 이론, OOP, 수업 등과 같은 주제로 이전에 대학에서 가르쳤던 내용 현재 9-10학년 학생들(물론 전부는 아님)은 이러한 문제를 몇 분 만에 해결합니다.

그리고 이것은 자연스럽습니다. 자연의 법칙 :)

 
Roman :

예, 물론 우리가 원하는 정도는 아니지만 OOP를 이해합니다.
이것은 불평이 아니라 건설적인 제안입니다.
개발자가 하나의 함수를 작성하지 않도록 두 개의 malloc을 할당하여 사용자에게 OOP를 배우도록 강요합니다.
이것은 물론 여전히 언어의 진보, 개발 및 대중화입니다. 여기에서 그들이 OOP를 어떻게 사랑하고 이해하는지 알 수 있습니다.
Nikolai, 래퍼에 있는 모든 것은 실행을 위한 추가 코드이므로 설명할 필요가 없다고 생각합니다.
최신 최적화 컴파일러에 대해서도 말할 필요가 없으며 어떤 지침이 적용될지 모릅니다.
아마도 미국 프로그래머들조차 절차적 스타일로 작성하는 것을 선호한다는 사실에 놀라실 것입니다. OOP가 나쁘기 때문이 아니라 코드를 더 쉽고 빠르게 얻을 수 있기 때문입니다.
그리고 프로젝트에 객관적인 작업이 없다면 젊은이들을 위해 어떻게 든 여전히 이해해야 할 래퍼를 사용하는 이유 ))
그러므로 나는 젊은이들이 기꺼이 PLO를 흡수한다는 당신의 말에 동의하지 않습니다.

나는 mql 언어의 논리가 구축되는 C 언어로 생각합니다.
C언어는 1972년생이니 48년 전임))
그러나 누가 뭐라고 해도 C는 가장 빠른 언어 중 하나입니다. 왜 그런지 아세요? 클래스 형태의 래퍼가 없기 때문입니다.

글쎄요, 전혀 그렇지 않습니다. 많은 비 OOP 언어가 여전히 사용되고 있다는 것입니다. 예를 들어 C. 예를 들어, 캐나다에서는 대부분의 정부 기관이 Kobol에 앉아 있고 어떤 식으로도 벗어날 수 없습니다.

https://www.tiobe.com/tiobe-index/

로만, 솔직히 말해서, 왜 행렬의 차원을 변경하는 것에 대해 열광했는지 이해가 되지 않습니다. 이것이 어떤 어려움이 있을 수 있습니까?
이를 위해 포인터나 OOP가 필요하지 않습니다.
어쨌든 컴퓨터의 경우 모든 차원의 배열은 1차원 배열입니다.
따라서 1차원 동적 배열로 작업하십시오. 그리고 가상으로 행렬을 만들고 함수를 통해 원하는 대로 크기를 조정할 수 있습니다.
예를 들면 다음과 같습니다.

 double GetValFromMx( double &A, int x, int y, int SizeX, int SizeY) {
if (x<SizeX && y<SizeY) return A[y*SizeX+x];
else return EMPTY_VALUE ; }

실제로는 1차원 배열을 기반으로 하는 다차원 배열을 다루지만 코드에서 1차원 배열만 사용합니다.

 
Roman :

따라서 ArrayResize와 같은 함수를 행렬 ArrayResizeMx(A, n, m)에 대해서만 만들어 주십시오.

모든 것이 완료되면 OOP를 사용하여 기성품 솔루션을 원하지 않습니다(OOP를 알 필요가 없으며 기성품을 사용하십시오!)

ALGLIB를 사용하면 행렬 크기를 조정하는 Resize() 메서드가 있습니다.... 하지만 어쨌든 OOP로 모두 완료됩니다. )))

추신: 나는 포럼을 검색했고, 이 주제에 대한 많은 대화가 있었고, 예가 있었습니다. 배열 필드로 구조를 감쌀 수 있고, 그러한 구조의 배열로 그것을 감쌀 수 있습니다. 그것은 OOP가 없을 것이지만 제 생각에는 모든 것입니다. 거추장스러워 보인다

로만 :

나는 mql 언어의 논리가 구축되는 C 언어로 생각합니다.

C언어는 1972년생이니 48년 전임))
하지만 누가 뭐라고 해도 C는 가장 빠른 언어 중 하나입니다. 왜 그런지 아세요? 클래스 형태의 래퍼가 없기 때문입니다.

순수한 C는 더 이상 기억나지 않고, 그냥 대학에서 오랫동안 공부했을 뿐인데, 내가 틀리지 않았다면 C에는 그냥 동적 배열이 없었을 뿐인데 포인터로 작업할 수 있었다. 따라서 메모리에 대한 액세스를 제어하기 위해 메모리를 할당 하는 작업은 전적으로 프로그래머에게 있으며 실제로는 동일한 래퍼가 됩니다.

좋아, 고귀한 holivar는 해결할 수 있습니다. 계속하는 것은 의미가 없습니다.

 
Nikolai Semko :

로만, 솔직히 말해서, 왜 행렬의 차원을 변경하는 것에 대해 열광했는지 이해가 되지 않습니다. 이것이 어떤 어려움이 있을 수 있습니까?
이를 위해 포인터나 OOP가 필요하지 않습니다.
어쨌든 컴퓨터의 경우 모든 차원의 배열은 1차원 배열입니다.
따라서 1차원 동적 배열로 작업하십시오. 그리고 함수를 통해 가상으로 행렬을 만들고 원하는 대로 크기를 조정할 수 있습니다.

예, 컴퓨터의 경우 모든 차원이 1차원 배열이라는 것은 분명합니다.
코드에서 [][] 차원이 표시되면 이것이 1차원 배열이 아니라 행렬이라는 것을 시각적으로 이해할 수 있습니다.
코드의 가독성은 []에 포함된 내용을 추측하는 것보다 여러 번 증가합니다.
행렬에 메모리를 할당하는 함수를 하나 추가하라는 요청을 받았을 때 그런 오해를 받을 거라고는 생각하지 못했습니다.
여러분 모두는 ArrayResize를 사용합니다. 편리하고 걱정할 필요가 없습니다. 개발자가다차원 배열 에 대한 메모리 할당 함수를 작성하는 데 문제가 있습니까?
물론 문제와 장애물은 없지만 사용자에게 이것은 코드를 구성하는 편리함입니다. 그래서 나는 수치적 방법의 훌륭한 C 라이브러리를 mql로 이식하기로 결정했습니다.
이를 위한 일반적인 mql 도구는 없습니다. 다시 말하지만, 비효율적인 코드를 차단하려는 모든 욕구가 사라지는 일종의 목발입니다.

 
Roman :

예, 물론 우리가 원하는 정도는 아니지만 OOP를 이해합니다.
이것은 불평이 아니라 건설적인 제안입니다.
개발자가 하나의 함수를 작성하지 않도록 두 개의 malloc을 할당하여 사용자에게 OOP를 배우도록 강요합니다.
이것은 물론 여전히 언어의 진보, 개발 및 대중화입니다. 여기에서 그들이 OOP를 어떻게 사랑하고 이해하는지 알 수 있습니다.
Nikolai, 래퍼에 있는 모든 것은 실행을 위한 추가 코드이므로 설명할 필요가 없다고 생각합니다.
최신 최적화 컴파일러에 대해서도 말할 필요가 없으며 어떤 지침이 적용될지 모릅니다.
아마도 미국 프로그래머들조차 절차적 스타일로 작성하는 것을 선호한다는 사실에 놀라실 것입니다. OOP가 나쁘기 때문이 아니라 코드를 더 쉽고 빠르게 얻을 수 있기 때문입니다.
그리고 프로젝트에 객관적인 작업이 없다면 젊은이들을 위해 어떻게 든 여전히 이해해야 할 래퍼를 사용하는 이유 ))
그러므로 나는 젊은이들이 기꺼이 PLO를 흡수한다는 당신의 말에 동의하지 않습니다.

나는 mql 언어의 논리가 구축되는 C 언어로 생각합니다.
C언어는 1972년생이니 48년 전임))
그러나 누가 뭐라고 해도 C는 가장 빠른 언어 중 하나입니다. 왜 그런지 아세요? 클래스 형태의 래퍼가 없기 때문입니다.

MQL은 C++로 빌드됩니다.

Roman, 당신이 말하는 이러한 기능을 소개하려면 메모리와 함께 작동하도록 MQL에 많은 추가 사항을 추가해야 합니다. 그리고 이것은 이미 초보자를 위한 합병증입니다.

전문가가 아닌 사람들에게는 더 쉬워야 한다고 스스로 말씀하셨습니다.

"자전거 타고 페달을 잘 배웠는데 너무 간단하고 명료하다. 페달을 BMW에 도입하자, 더 쉬울 것이다"와 같은 상황이다. :)

추신 일반적으로 나는 절차적 스타일과 OOP 스타일이 모두 비참하고 비실용적이라고 생각합니다))

 
Igor Makanu :

모든 것이 완료되면 OOP를 사용하여 기성품 솔루션을 원하지 않습니다(OOP를 알 필요가 없으며 기성품을 사용하십시오!)

ALGLIB를 사용하면 행렬 크기를 조정하는 Resize() 메서드가 있습니다.... 하지만 어쨌든 OOP로 모두 완료됩니다. )))

추신: 나는 포럼을 검색했고, 이 주제에 대한 많은 대화가 있었고, 예가 있었습니다. 배열 필드로 구조를 감쌀 수 있고, 그러한 구조의 배열로 그것을 감쌀 수 있습니다. 그것은 OOP가 없을 것이지만 제 생각에는 모든 것입니다. 거추장스러워 보인다

순수한 C는 더 이상 기억나지 않고, 그냥 대학에서 오랫동안 공부했을 뿐인데, 내가 틀리지 않았다면 C에는 그냥 동적 배열이 없었을 뿐인데 포인터로 작업할 수 있었다. 따라서 메모리에 대한 액세스를 제어하기 위해 메모리를 할당 하는 작업은 전적으로 프로그래머에게 있으며 실제로는 동일한 래퍼가 됩니다.

좋아, 고귀한 holivar는 해결할 수 있습니다. 계속하는 것은 의미가 없습니다.

ALGLIB를 시도했지만 개체에서 인쇄하는 데 문제가 있습니다. ArrayPrint 함수는 개체를 인쇄하지 않습니다.
그리고 [][]에서 헤더가 있는 경우에도 예쁜 매트릭스를 표시합니다. 다시 계산 결과를 시각적으로 추적해야 할 때 정보를 인식하는 편리함을 제공합니다.
예, Temko는 포럼을 보았지만 감동하지 않았습니다. 그것이 바로 모든 것이 복잡하고 비효율적으로 보이는 것입니다. C는 매우 우아한 언어이며 mql은 이를 왜곡합니다.
예, C에서 동적 행렬에 대한 메모리는 포인터를 통해 할당되지만 mql에는 변수에 대한 포인터가 없고 다시 개체로 이동합니다.
사용자가 필요로 하는 모든 기능이 ArrayResizeMx(A, n, m, k) 함수이고 이미 기본 실행 상태일 때 차이점을 이해하게 됩니다.
예, 계속하는 것은 의미가 없습니다. 듣고 실행하면 대단히 감사합니다. 하지만 이 기능은 정말 유용하고 필요합니다.

 
Roman :

큰 소리로 추리하지만 이것은 개발자에게 어필하는 것입니다.
따라서 Zloy를 개인적으로 받아들이지 마십시오.

동적 행렬로 작업하는 것은 객체나 구조를 통해서만 가능하다는 것이 밝혀졌습니다. 일반적으로 다른 목발을 얻습니다.
mql에는 변수에 대한 포인터가 없으며 객체 접근 방식을 사용해야 하며 포인터가 있습니다.
동적 행렬을 사용하려면 사용자가 OOP를 알고 포인터로 작업해야 하며 MQL 실행에서도 작업해야 합니다.
이런 지식을 가진 사람이 얼마나 될까요? 답은 스스로 알고 있습니다. 객체접근법은 제가 다루기 어렵지 않겠지만 OOP를 모르시는 분들을 위해
특히 동적 매트릭스 작업을 위해 언어 사용을 위한 인위적인 임계값이 생성됩니다.
반대로 개발자는 언어 사용을 단순화하고 복잡하게 만들지 않는 데 관심이 있어야 한다고 생각합니다 .
즉, 사용자가 언어를 사용하여 편리한 작업을 수행하는 데 필요한 기능을 개발하는 것입니다.
그리고 거의 수치적 방법의 기초인 행렬의 경우에는 더욱 그렇습니다.

따라서 ArrayResize와 같은 함수를 행렬 ArrayResizeMx(A, n, m)에 대해서만 만들어 주십시오.
잘 그리고 다차원의 경우 가능합니다. 즉, 객체가 아닌 친숙한 C 스타일 배열과 마찬가지로 행렬로 작업할 수 있는 기회를 제공합니다.
특히 행렬의 시각적 표시를 위해 ArrayPrint(A, 0) 함수는 객체가 아닌 배열에서 행렬을 인쇄합니다.

개발자들은 이에 대해 매우 구체적입니다. 여기

Респект и уважуха создателям языка, Но...
Респект и уважуха создателям языка, Но...
  • 2010.05.15
  • www.mql5.com
Добавление ООП потребовало от создателей языка изменения синтаксиса, для введения классов и структур и много-го чего.
 
Koldun Zloy :

개발자들은 이에 대해 매우 구체적입니다. 여기

멀리 갈 필요가 없습니다 . 다음 포스트 , Halt의 구체적인 질문,
거의 같은 시기에 유능한 군사 개발자로 알고 지냈고, 그가 이곳을 떠난 이유는 답이 뻔하다.
10년이 흘렀는데 무엇이 달라졌나?
코드 베이스는 단순한 알고리즘으로 채워져 이 수준에 머물렀다. 전문 솔루션은 어디에 있습니까?
이를 위해 우리는 이러한 전문 솔루션을 작성하고 코드 기반을 개발하기 위한 도구를 제공하는 것보다 python과의 통합을 검토하고 있습니다.
그것은 실수가 있는 곳입니다. 도구가 없고 해당 수준의 프로그래머가 없습니다.
알았어, 자러 갈게, 아직 안 잤어. 모두 행운을 빌어 요.

Респект и уважуха создателям языка, Но...
Респект и уважуха создателям языка, Но...
  • 2010.05.15
  • www.mql5.com
Добавление ООП потребовало от создателей языка изменения синтаксиса, для введения классов и структур и много-го чего.
 
Nikolai Semko :

그래서 절차상...

절차는 C이며 모든 것이 기본이며 발에 총을 쏠 기회가 더 많습니다.

나는 당신이 혼란스러워하고 기능적인 것을 의미했다고 생각합니다. 그러나 그것은 중요하지 않습니다.