Array Out Of Range

 

Boa noite amigos, estou recebendo o erro "Array out of range", e não consegui identificar aonde errei, poderiam me direcionar?


Segue o código:


//*******************************
// VARIÁVEIS UNIVERSAIS
//*******************************

 double       VARIÁVEL_1[3600];
 double       VARIÁVEL_2[3600];

//+------------------------------------------------------------------+ 
//| FUNÇÃO DO TEMPORIZADOR DE 1 SEGUNDO
//+------------------------------------------------------------------+ 
void OnTimer() 
   {
   
      for(int i=3600; i--; i==1) 
         {
            VARIÁVEL_1[i] = VARIÁVEL_1[i-1];
            VARIÁVEL_2[i] = VARIÁVEL_2[i-1];            
            
         }      


Agradeço a atenção!

 
jdmaster:

Boa noite amigos, estou recebendo o erro "Array out of range", e não consegui identificar aonde errei, poderiam me direcionar?


Segue o código:



Agradeço a atenção!

1 - Jamais use acentos em Nomes de Variáveis.

2 - Indices de Vetores começam em 0, portanto o seu i, tem que começar em 3599...

3- Sua estrutura FOR... está bizarra... i-- deveria ser o último dos seus parametros, não o segundo...

Nitidamente você nunca programou nenhuma linguagem de programação, será uma vida sofrida se você não souber ao menos o básico do básico... A convivência com o MQL5 já é complicada por si só em seu ambiente natural, imagine alguém que não sabe programar...

Sem querer te desestimular, procure um curso ou devore livros, do contrário você vai perder muito tempo pra atingir o que você realmente quer alcançar...

;)

 
Flavio Jarabeck:

1 - Jamais use acentos em Nomes de Variáveis.

2 - Indices de Vetores começam em 0, portanto o seu i, tem que começar em 3599...

3- Sua estrutura FOR... está bizarra... i-- deveria ser o último dos seus parametros, não o segundo...

Nitidamente você nunca programou nenhuma linguagem de programação, será uma vida sofrida se você não souber ao menos o básico do básico... A convivência com o MQL5 já é complicada por si só em seu ambiente natural, imagine alguém que não sabe programar...

Sem querer te desestimular, procure um curso ou devore livros, do contrário você vai perder muito tempo pra atingir o que você realmente quer alcançar...

;)


Boa noite caro amigo Flávio...


1 - os nomes usados são apenas uma forma mais amistosa para facilitar a compreensão do código, o programa original não usa esses nomes apresentados.


2 - sim...provavelmente aí esta o problema, distração.


3 - kkkkkkk....simm....tem razão, inverti as bolas, programação exige atenção, hoje confesso q tive um dia cheio e estou cansado. Vc próprio, como excelente programador que tenho certeza que é deve saber como é isso, muitas vezes o erro é óbvio, mas não vemos devido a N motivos, talvez bastasse uma volta por ai para refrescar a cabeça.

Agradeço a atenção e as dicas, realmente sou inciante na linguagem, na programação até q não, faz parte de minha área de estudo desde a adolescência e tb no meu atual curso superior, programar exige atenção e preparo, estou enferrujado, mas logo volto a pegar o jeito.


Mais uma vez obrigado!!

 
jdmaster:


Boa noite caro amigo Flávio...


1 - os nomes usados são apenas uma forma mais amistosa para facilitar a compreensão do código, o programa original não usa esses nomes apresentados.


2 - sim...provavelmente aí esta o problema, distração.


3 - kkkkkkk....simm....tem razão, inverti as bolas, programação exige atenção, hoje confesso q tive um dia cheio e estou cansado. Vc próprio, como excelente programador que tenho certeza que é deve saber como é isso, muitas vezes o erro é óbvio, mas não vemos devido a N motivos, talvez bastasse uma volta por ai para refrescar a cabeça.

Agradeço a atenção e as dicas, realmente sou inciante na linguagem, na programação até q não, faz parte de minha área de estudo desde a adolescência e tb no meu atual curso superior, programar exige atenção e preparo, estou enferrujado, mas logo volto a pegar o jeito.


Mais uma vez obrigado!!

Boa sorte aí!

O aprendizado de MQL5 é tortuoso. Literatura quase-zero, e suporte só pelas almas caridosas do Fórum...

;)

 

Acho que você quis fazer isto aqui:

for(int i=3600; i>=1; i--) 
{
        VARIAVEL_1[i] = VARIAVEL_1[i-1];
        VARIAVEL_2[i] = VARIAVEL_2[i-1];           
} 

O loop for contém 3 instruções em sua definição, separadas por ";" nesta ordem:

1) Processamento inicial, executado 1 única vez antes da primeira iteração do loop

2) Condição para continuação do loop (qualquer expressão lógico-aritmética que retorne um valor booleano)

3) Processamento a ser executado ao final de cada iteração do loop

Isto vale não apenas para MQL5, mas também para C, C++, Java, C# e inúmeras outras linguagens de programação descendentes do bom e velho C.

Razão: