Você entende o conceito de arrays pensado corretamente ? uma variável com múltiplos índices ?
Tudo o que a inicialização faz é definir um valor inicial para todos os índices.
Você pode definir um valor para cada índice separadamente, como nos exemplos que você postou ou,
se você quiser que o valor inicial seja o mesmo para todos os índices, você pode digitar o valor uma vez assim,
int myarray[100]={0}; //initializes all 100 indexes to value zero
ou,
int myarray[100][5]={-1}; //multi dimensions, initializes all 500 indexes to -1.
Esteja ciente também de que há alguns erros no livro mql4. Acho que no segundo exemplo, quando ele diz,
"Na seqüência inicializada, uma ou várias constantes podem ser omitidas. Neste caso, os elementos da matriz correspondente do tipo numérico são inicializados por zero, os elementos das matrizes do tipo string são inicializados pelo valor da string "" (aspas sem espaço), ou seja, por uma linha vazia (não deve ser confundida com um espaço)".
e depois mostra este exemplo,
string Mas_s[4] = {"a","b", ,"d"}; // String array
provavelmente estava destinado a ser:
string Mas_s[4] = {"a","b","","d"}; // String arraytambém diz em algum lugar no livro "todas as arrays são do tipo estático por padrão" que também é um erro que elas são como outras variáveis, não estáticas a menos que definidas como estáticas, exceto quando elas são globais.
Você entende o conceito de arrays pensado corretamente ? uma variável com múltiplos índices ?
Tudo o que a inicialização faz é definir um valor inicial para todos os índices.
Se você quiser que o valor inicial seja o mesmo para todos os índices, você pode inserir o valor uma vez assim
int myarray[100] {0} //inicializa todos os 100 índices para valor zero.
Certo
Ainda estou um pouco confuso.
Portanto, se eu tiver um array
Duplo myarray[100]
Declarei o tipo de Array (duplo), nome do Array (myarray) e número de índices (100) .
O valor do array MyArray pode ser atribuído usando Double myarray[100] = {1, 2, 3, ....}, de modo que myarray[1]=1 e myarray[2]=2 ect.
Até agora eu só construí arrays com o propósito de obter valores de loops e mesmo assim o array foi usado de forma muito frouxa.
Obrigado, apontando esse erro esclareceu uma pequena questão que eu tinha.
O primeiro índice de matriz é zero, portanto, se você o fizer,
double myarray[100] = {1,2,3 .....};
que fará, myarray[0] == 1, myarray[1] ==2 etc
Ah certo ok.
Então e se eu tiver um Array multidimensional
Double Myarray[3][4] = {0.1,0.2,0.3,0.3,0.4,0.5} (desculpe, eu notei que usei inteiros antes)
Como posso chamar um valor?
Qual seria o valor?
Double Myarray[3][4] = {0.1,0.2,0.3,0.3,0.4,0.5}
Myarray[1][3]=?
você tem 3 x 4 array
duplo Myarray[3][4] = {0.1,0.2,0.3,0.3,0.4,0.5} ;
ele preencheria assim
Myarray[0,0] = 0,1;
Myarray[0,1] = 0,2;
Myarray[0,2] = 0,3;
Myarray[0,3] = 0,4;
Myarray[1,0] = 0,5;
Myarray[1,1] = 0,0;
Myarray[1,2] = 0,0;
etc
Estou sem pistas neste momento...
Myarray[3][4] não é multi-dimensional, se assim é, por que só posso chamar valores mudando o valor de uma das dimensões?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Tenho aprendido sobre arrays do guia mql4, e me deparei com um tópico com o qual estou tendo problemas; a inicialização de arrays é um pouco desconcertante; não entendo a afirmação abaixo
"
Inicialização do Array
Uma matriz só pode ser inicializada por constantes de um tipo correspondente. As matrizes unidimensionais e multidimensionais são inicializadas por uma seqüência unidimensional de constantes separadas por vírgulas. A seqüência é incluída entre parênteses curvos:
"
Não estou confuso pelo fato de que uma matriz só pode ser inicializada por constantes de um tipo correspondente, mas estou confuso pelo conceito de inicialização de matriz e pelo fato de que uma seqüência unidimensional pode iniciar uma matriz multidimensional.
Fico confuso com o seguinte.
"
Na seqüência inicializada, uma ou várias constantes podem ser omitidas. Neste caso, os elementos da matriz correspondente do tipo numérico são inicializados por zero, os elementos das matrizes do tipo string são inicializados pelo valor da string "" (aspas sem espaço), ou seja, por uma linha vazia (não deve ser confundida com um espaço). O próximo programa exibe valores de arrays, inicializados por uma seqüência com omissão de alguns valores (script arrayalert.mq4):
"
Em última análise, não estou entendendo o conceito de inicialização da matriz.