Funkcje tablicowe:   ArrayFill()

Funkcja void ArrayFill() wypełnia tablicę określoną wartością liczbową. Tablica może być typu liczby całkowitej , liczby zmiennoprzecinkowej , logicznego , koloru , daty i czasu . Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

Przykład skryptu, gdzie najpierw utworzono jednowymiarową tablicę array[], zawierającą 5 elementów o wartościach 0.1. Pierwsze 3 elementy, tj. od indeksu 0 do 2, wypełniono wartością 2.2.

#property strict
void OnStart()
  {
//---
   double array[]  = {0.1, 0.1, 0.1, 0.1, 0.1}; // tablica
   int    startPos = 0;   // indeks elementu początkowego
   int    count    = 3;   // ilość elementów
   double value    = 2.2; // wartość

//--- wypełnić tablicę
   ArrayFill(array, startPos, count, value);

//--- wyświetlić wynik
   for(int i = 0; i < 5; i++)
      Print("array[",i,"] = ",array[i]);
  }

Rys. 1. Przykład stosowania funkcji ArrayFill().


Przykład 2

Tablica wielowymiarowa traktowana jest przez funkcję ArrayFill() jako tablica jednowymiarowa. Na przykład dwuwymiarowa tablica array[2][4] zostanie przetworzona jako tablica jednowymiarowa array[8].

#property strict
void OnStart()
  {
//---
   double array[2][4] =
     {
        {0.0, 0.1, 0.2, 0.3},
        {1.0, 1.1, 1.2, 1.3}
     };

/* wypełnić tablicę od elementu z indeksem 5
   kolejne 2 elementy wartością 555.5 */

   ArrayFill(array, 5, 2, 555.5);

//--- wyświetlić wynik
   for(int i = 0; i < 2; i++)
      for(int j = 0; j < 4; j++)
         Print("array [",i,"] [",j,"] = ",array[i][j]);
  }

Rys. 2. Przykład stosowania funkcji ArrayFill().


Jeśli trzeba całą tablicę zainicjować jedną określoną wartością, należy zastosować funkcję ArrayInitialize() .