[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 57

 
Há duas funções.
// заполняет массив фракталами, найденными в пределах заданного количества баров
double FractalsUP[], FractalsDN[];
void FractalsMassive(string symb, int timeframe, int bars)
 {
  int fr, frtUP=0, frtDN=0;
  for(fr=3; fr<=bars; fr++)
   {
    if(iFractals(symb,timeframe,MODE_UPPER,fr)>0)
     {
      ArrayResize(FractalsUP,frtUP+1);
      FractalsUP[frtUP]=iFractals(symb,timeframe,MODE_UPPER,fr);
      frtUP++;
     }
    if(iFractals(symb,timeframe,MODE_LOWER,fr)>0)
     {
      ArrayResize(FractalsDN,frtDN+1);
      FractalsDN[frtDN]=iFractals(symb,timeframe,MODE_LOWER,fr);
      frtDN++;      
     }
   }
 }
double ExtremeFractalUP(double& fractalup[])
 {
  int masrange, efup;
  masrange=ArrayRange(fractalup,1);
  
  for(efup=0; efup<masrange; efup++)
   {
    if(fractalup[efup]>fractalup[efup+1])
     {
      return(fractalup[efup]);
     }
    else continue;
   }  
 }

Erro "FractalsUP - tipos incompatíveis" ao tentar compilar na EA.

   FractalsMassive(Symbol(),0,100);
   double extr=ExtremeFractalUP(FractalsUP[]);

As funções e matrizes declaradas são armazenadas em arquivos, se for o caso.

 
silhouette:
Eu li o livro antes de escrever, vi o sublinhado, mas na prática não pude implementá-lo - ele diz sobre o tipo incompatível.


Vi um exemplo de trabalho de passagem de parâmetros de valores de elementos de matriz por referência (com & prefixo).

 
silhouette:
Há duas funções.

Ao tentar compilar na EA, ele dá erro "FractalsUP - tipos incompatíveis".

As funções e matrizes declaradas são armazenadas em arquivos, se for o caso.


Se Deus quiser, isto deve funcionar. Pelo menos, ele se compila sem erros:

int start()
{
 double FractalsUP[], FractalsDN[];
 ExtremeFractalUP(FractalsUP);// Передаем ссылку на один массив
 ExtremeFractalUP(FractalsDN);// Передаем ссылку на другой массив
}
//
double ExtremeFractalUP(double& fractalup[]) // В параметрах указываем что будет передаваться ссылка на массив
 {
  int masrange, efup;
  masrange=ArrayRange(fractalup,1);
  
  for(efup=0; efup<masrange; efup++)
   {
    if(fractalup[efup]>fractalup[efup+1])
     {
      return(fractalup[efup]);
     }
    else continue;
   }  
 }
 
Sepulca:


Se Deus quiser, isto deve funcionar. Pelo menos, ele se compila sem erros:

Obrigado pela ajuda, o princípio parece ter sido resolvido.
 

Olá Queridos programadores!

Você poderia me dizer o que estou fazendo de errado?

Eu tenho uma variável externa do tipo int, no programa deve definir quantos elementos estarão na matriz do tipo duplo,

Estou fazendo da maneira como sou mostrado abaixo, mas o compilador ainda gera erros, já tentei escrever uma variável externa do tipo duplo, mas ainda assim recebo erros.

Por favor, informe.

extern int       max_count=4;

int start()
{
   static double A[max_count];

Erros

 
SvSerg:

Olá Queridos programadores!

Você poderia me dizer o que estou fazendo de errado?

Eu tenho uma variável externa do tipo int, no programa deve definir quantos elementos estarão na matriz do tipo duplo,

Estou fazendo da maneira como sou mostrado abaixo, mas o compilador ainda gera erros, já tentei escrever uma variável externa do tipo duplo, mas ainda assim recebo erros.

Por favor, informe.

Inicializar a matriz com um valor explícito de duplo A[4];

Em seguida, redimensioná-lo usando o ArrayResize();

 
artmedia70:

Inicializar a matriz com um valor explícito de duplo A[4];

Em seguida, redimensioná-lo usando o ArrayResize();



Obrigado!

Estou pensando, se inicializarmos uma matriz vaziaduplo A[]; então é possível colocar o quanto você quiser, fazendo looping nela?

Peço desculpas por novas perguntas, mas as matrizes são uma bagunça para mim como iniciante.

 
SvSerg:


Obrigado!

Eu estava pensando, se nós inicializarmos uma matriz vaziaduplo A[]; então ela pode ser usada tanto quanto você quiser?

Peço desculpas por novas perguntas, mas as matrizes são uma bagunça para mim como iniciante.

Você pode encaixar tanta memória quanto precisar em qualquer matriz, desde que se lembre de redimensioná-la. Especialmente se a matriz estiver vazia.
 
artmedia70:
Qualquer conjunto pode ser preenchido com tanta memória quanto necessário, desde que você se lembre de redimensioná-lo. Especialmente se a matriz estiver vazia.


Mais uma vez, obrigado! É uma pena que você não possa me dar um +.
 

Boa tarde!

Caros programadores! Você precisa escrever um consultor especializado.

Descrição disponível.

Quais são as condições? Quais são as garantias?

Cumprimentos, Maxim.