//--- variables globales double ExtArrayFirst[]; double ExtArraySecond[]; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- défini la taille des tableaux 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; } //--- remplit les tableaux avec les valeurs des indices i et j dans une boucle int total=ArraySize(ExtArrayFirst); for(int i=0, j=total-1; i<total; i++,j--) { //--- remplit le tableau ExtArrayFirst de gauche à droite //--- remplit le tableau ExtArraySecond de droite à gauche ExtArrayFirst[i]=i; ExtArraySecond[i]=j; } //--- compare les tableaux et écrit le résultat dans le journal ArrayComparePrint(ExtArrayFirst,ExtArraySecond); /* Résultat : 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) */ //--- maintenant retournons les tableaux //--- remplit les tableaux avec les valeurs des indices i et j dans une boucle for(int i=0, j=total-1; i<total; i++,j--) { //--- remplit le tableau ExtArrayFirst de droite à gauche //--- remplit le tableau ExtArraySecond de gauche à droite ExtArrayFirst[i]=j; ExtArraySecond[i]=i; } //--- compare les tableaux et écrit le résultat dans le journal ArrayComparePrint(ExtArrayFirst,ExtArraySecond); /* Résultat : 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) */ //--- maintenant remplissons les tableaux dans une direction //--- remplit les tableaux avec les valeurs de i index dans une boucle for(int i=0; i<total; i++) { //--- remplit les deux tableaux de gauche à droite ExtArrayFirst[i]=i; ExtArraySecond[i]=i; } //--- compare les tableaux et écrit le résultat dans le journal ArrayComparePrint(ExtArrayFirst,ExtArraySecond); /* Résultat : 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) */ } //+------------------------------------------------------------------+ //| Compare et affiche le résultat | //+------------------------------------------------------------------+ void ArrayComparePrint(const double &array1[], const double &array2[]) { //--- affiche l'en-tête et le contenu des tableaux Print("ExtArrayFirst:"); ArrayPrint(array1); Print("ExtArraySecond:"); ArrayPrint(array2); //--- compare les tableaux et affiche le résultat de la comparaison 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); } //+------------------------------------------------------------------+ |