첫 번째 반복에서 문자열 변수 str은 비어 있습니다. =+ 기호는 str에게 값이 없는 값을 할당하고 값이 있는 문자열을 자체에 추가하도록 지시합니다. 즉, "--LoY["+IntegerToString(r)+"]--, "+DoubleToString( LoY[r],4)+", ";. 이 문자열의 값은 " -- LoY[0]--, --1.6104-- "입니다. 이러한 작업 후에 str은 첫 번째 반복에서 "--LoY[0]--, --1.6104-- " 값을 얻습니다. 귀하의 용어로 이해했듯이 이것을 첫 번째 요소라고 합니다.
두 번째 반복 에서 str에는 이미 값이 " --LoY[0]--, --1.6104--"인 첫 번째 요소가 있습니다. 기호 =+ 규정 str은 첫 번째 요소의 값으로 자신을 할당하고 첫 번째요소의 값으로 자신을 할당합니다. 다른 값으로 문자열을 추가합니다. 즉, "--LoY["+IntegerToString(r)+"]--, "+DoubleToString (LoY[r],4)+", ";. 이 줄의 값은 이미 " --LoY[1]--, --1.6105-- "입니다. 이러한 작업 후에 두 번째 반복에서 str은 값을 얻습니다. "--LoY[0]-- --1.6104-- --LoY[1]-- --1.6105-- ". 즉, 두 번째 요소가 str에 등장(추가)되었습니다. 그리고 30번째 반복에서 str은 배열 요소 값이 다른 30개의 요소를 갖습니다.
그리고 루프가 끝난 후 30개의 요소가 있는 문자열 변수 str이 외부에 한 번 인쇄됩니다. 오랫동안 나는 이 알고리즘을 이해할 수 없었습니다. 왜냐하면 당신이 덧셈에 대해 이야기할 때 나는 오로지 빨간 플러스에만 주의를 기울였기 때문입니다. "--LoY[" +IntegerToString (r) + "]--, " + DoubleToString(LoY[r],4) + " 대신 str + =
그래서 이 빨간 플러스가 이 알고리즘에서 어떤 역할을 하는지는 여전히 미스터리로 남아 있습니다. "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+"
또는 별도의 배열 인쇄 기능을 만드십시오.
그리고 어디에서나 불러
Alexey, 오랫동안 침묵했는데 그냥 가만히 볼 수가 없어요... 이 경우 명시적 타입 캐스팅이 훨씬 쉽고 저렴하다면 IntegerToString() 함수를 사용하는 이유는 ...
어, 습관 :)
또는 별도의 배열 인쇄 기능을 만드십시오.
그리고 어디에서나 불러
귀하의 이해와 설명에 진심으로 감사드립니다. 나는 나를 위해 공부하고 새로운 정보를 이해하기 위해 휴식을 취합니다.
Alexey, 오랫동안 침묵했는데 그냥 가만히 볼 수가 없어요... 이 경우 명시적 타입 캐스팅이 훨씬 쉽고 저렴하다면 IntegerToString() 함수를 사용하는 이유는 ...
그리고 귀중한 추가 정보에 감사드립니다.
어디를 봐야 하는지 알려주세요. 고문을 위한 외부 창 만들기에 대해 읽어보세요.
포럼과 C#, Delphi 및 기타 모든 것에 대한 출판물에서...
또는 별도의 배열 인쇄 기능을 만드십시오.
그리고 어디에서나 불러
별도의 커스텀 배열 인쇄 기능을 만들기로 했습니다. 또는 이미 수행한 것( PrintArray() )을 사용하지 마십시오.
내가 한 것?
1. Kovalev의 자습서에 작성된 대로 OnTick()... 함수 내부에 사용자 지정 PrintArray() 함수에 대한 호출을 배치했습니다.
2. PrintArray() 함수의 본문을 OnTick() 함수 외부에 배치했습니다... Kovalev의 자습서에 작성된 대로.
이 함수 본문의 모든 새 변수는 지역적입니다. 그것들은 이 함수 내에서 선언되고 초기화됩니다.
나는 당신의 기능을 변경하지 않았습니다. 그러나 컴파일러는 어떤 이유로 6개의 오류를 제공합니다. 그리고 그들은 모두 사용자 정의 기능에 속합니다.
![](https://c.mql5.com/3/350/1955031461090__1.png)
제가 뭘 잘못했는지 알려주시면 정말 감사하겠습니다.
고맙습니다.
별도의 커스텀 배열 인쇄 기능을 만들기로 했습니다. 또는 이미 수행한 것( PrintArray() )을 사용하지 마십시오.
내가 한 것?
1. Kovalev의 자습서에 작성된 대로 OnTick()... 함수 내부에 사용자 지정 PrintArray() 함수에 대한 호출을 배치했습니다.
2. PrintArray() 함수의 본문을 OnTick() 함수 외부에 배치했습니다... Kovalev의 자습서에 작성된 대로.
이 함수 본문의 모든 새 변수는 지역적입니다. 그것들은 이 함수 내에서 선언되고 초기화됩니다.
나는 당신의 기능을 변경하지 않았습니다. 그러나 컴파일러는 어떤 이유로 6개의 오류를 제공합니다. 그리고 그것들은 모두 사용자 정의 기능에 속합니다.
제가 뭘 잘못했는지 알려주시면 정말 감사하겠습니다.
고맙습니다.
정확히 기억은 안나는데 너무 게을러서 확인이 안되네요. 대괄호를 추가해 보세요.
Aleksei Stepanenko :
드디어 깨달은 것 같습니다(조금 둔감한 편입니다)....
첫 번째 반복에서 문자열 변수 str은 비어 있습니다. =+ 기호는 str에게 값이 없는 값을 할당하고 값이 있는 문자열을 자체에 추가하도록 지시합니다. 즉, "--LoY["+IntegerToString(r)+"]--, "+DoubleToString( LoY[r],4)+", ";. 이 문자열의 값은 " -- LoY[0]--, --1.6104-- "입니다. 이러한 작업 후에 str은 첫 번째 반복에서 " -- LoY[0]--, --1.6104-- " 값을 얻습니다. 귀하의 용어로 이해했듯이 이것을 첫 번째 요소라고 합니다.
두 번째 반복 에서 str에는 이미 값이 " --LoY[0]--, --1.6104--"인 첫 번째 요소가 있습니다. 기호 =+ 규정 str은 첫 번째 요소의 값으로 자신을 할당하고 첫 번째 요소의 값으로 자신을 할당합니다. 다른 값으로 문자열을 추가합니다. 즉, "--LoY["+IntegerToString(r)+"]--, "+DoubleToString (LoY[r],4)+", ";. 이 줄의 값은 이미 " --LoY[1]--, --1.6105-- "입니다. 이러한 작업 후에 두 번째 반복에서 str은 값을 얻습니다. " -- LoY[0]-- --1.6104-- -- LoY[1]-- --1.6105-- ". 즉, 두 번째 요소가 str에 등장(추가)되었습니다. 그리고 30번째 반복에서 str은 배열 요소 값이 다른 30개의 요소를 갖습니다.
그리고 루프가 끝난 후 30개의 요소가 있는 문자열 변수 str이 외부에 한 번 인쇄됩니다.
오랫동안 나는 이 알고리즘을 이해할 수 없었습니다. 왜냐하면 당신이 덧셈에 대해 이야기할 때 나는 오로지 빨간 플러스에만 주의를 기울였기 때문입니다. "--LoY[" + IntegerToString (r) + "]--, " + DoubleToString(LoY[r],4) + " 대신 str + =
그래서 이 빨간 플러스가 이 알고리즘에서 어떤 역할을 하는지는 여전히 미스터리로 남아 있습니다. "--LoY[" + IntegerToString(r) + "]--, " + DoubleToString(LoY[r],4) + "
도와 주셔서 감사합니다.
정확히 기억은 안나는데 너무 게을러서 확인이 안되네요. 대괄호를 추가해 보세요.
대괄호 추가 void PrintArray(double &eArray[]) 컴파일러에서 오류나 경고를 표시하지 않았습니다.
하지만 ..... 기능 어떤 이유로 Print() 가 한 번도 인쇄되지 않았습니다.
당신의 게으름을 이해합니다. 왜냐하면 나 자신도 그렇습니다. 게으름이 지나가고 그 자리에 열정이 깃든다면 유저 기능에서 여전히 잘못된 점을 알려주시면 감사하겠습니다.
도와주셔서 감사하고 번거롭게 해서 죄송합니다.