//--- 글로벌 변수
double ExtArrayFirst[];
double ExtArraySecond[];
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 배열 크기를 정합니다
if(ArrayResize(ExtArrayFirst,10)!=10)
{
Print("ArrayResize() failed for ExtArrayFirst. Error code: ",GetLastError());
return;
}
if(ArrayResize(ExtArraySecond,10)!=10)
{
Print("ArrayResize() failed for ExtArraySecond. Error code: ",GetLastError());
return;
}
//--- 루프에서 i 및 j 인덱스 값으로 배열을 채웁니다.
int total=ArraySize(ExtArrayFirst);
for(int i=0, j=total-1; i<total; i++,j--)
{
//--- ExtArrayFirst 배열을 왼쪽에서 오른쪽으로 채웁니다.
//--- 오른쪽에서 왼쪽으로 ExtArraySecond 배열을 채웁니다.
ExtArrayFirst[i]=i;
ExtArraySecond[i]=j;
}
//--- 배열을 비교하고 결과를 로그에 인쇄합니다.
ArrayComparePrint(ExtArrayFirst,ExtArraySecond);
/*
Result:
ExtArrayFirst:
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000
ExtArraySecond:
9.00000 8.00000 7.00000 6.00000 5.00000 4.00000 3.00000 2.00000 1.00000 0.00000
Result ArrayCompare(): ExtArrayFirst is smaller than ExtArraySecond (result = -1)
*/
//--- 이제 배열을 뒤집어 보겠습니다.
//--- 루프에서 i 및 j 인덱스 값으로 배열을 채웁니다.
for(int i=0, j=total-1; i<total; i++,j--)
{
//--- 오른쪽에서 왼쪽으로 ExtArrayFirst 배열을 채웁니다.
//--- ExtArraySecond 배열을 왼쪽에서 오른쪽으로 채웁니다.
ExtArrayFirst[i]=j;
ExtArraySecond[i]=i;
}
//--- 배열을 비교하고 결과를 로그에 인쇄합니다.
ArrayComparePrint(ExtArrayFirst,ExtArraySecond);
/*
Result:
ExtArrayFirst:
9.00000 8.00000 7.00000 6.00000 5.00000 4.00000 3.00000 2.00000 1.00000 0.00000
ExtArraySecond:
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000
Result ArrayCompare(): ExtArrayFirst is larger than ExtArraySecond (result = 1)
*/
//--- 이제 한 방향으로 배열을 채워보겠습니다.
//--- 루프에서 i 인덱스 값으로 배열을 채웁니다.
for(int i=0; i<total; i++)
{
//--- 두 배열을 왼쪽에서 오른쪽으로 채웁니다.
ExtArrayFirst[i]=i;
ExtArraySecond[i]=i;
}
//--- 배열을 비교하고 결과를 로그에 인쇄합니다.
ArrayComparePrint(ExtArrayFirst,ExtArraySecond);
/*
Result:
ExtArrayFirst:
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000
ExtArraySecond:
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000
Result ArrayCompare(): ExtArrayFirst and ExtArraySecond are equal (result = 0)
*/
}
//+------------------------------------------------------------------+
//| 결과 비교 및 표시 |
//+------------------------------------------------------------------+
void ArrayComparePrint(const double &array1[], const double &array2[])
{
//--- 배열의 헤더와 내용을 인쇄합니다.
Print("ExtArrayFirst:");
ArrayPrint(array1);
Print("ExtArraySecond:");
ArrayPrint(array2);
//--- 배열을 비교하고 비교 결과를 인쇄합니다
int res=ArrayCompare(array1,array2);
string res_str=(res>0 ? "ExtArrayFirst is larger than ExtArraySecond" : res<0 ? "ExtArrayFirst is smaller than ExtArraySecond" : "ExtArrayFirst and ExtArraySecond are equal");
PrintFormat("Result ArrayCompare(): %s (result = %d)\n",res_str,res);
}
//+------------------------------------------------------------------+
|