[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 57

 
Sepulca :

Şu şekilde deneyin:

https://docs.mql4.com/en/basis/variables/formal

İki işlev vardır.
 // заполняет массив фракталами, найденными в пределах заданного количества баров
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 ;
   }  
 }

Bir EA'da derlemeye çalışırken "FractalsUP - uyumsuz türler" hatası veriyor

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

İşlevler ve bildirilen diziler, varsa, içerme dosyalarında saklanır.

 
silhouette :
Ders kitabını yazmadan önce okudum, altı çizildiğini gördüm ama pratikte uygulamak mümkün olmadı - uyumsuz bir tür hakkında yazıyor.


Dizi öğesi değerleri parametrelerini referansa göre (& öneki ile) geçirmenin çalışan bir örneğini gördüm.

 
silhouette :
İki işlev vardır.

Bir EA'da derlemeye çalışırken "FractalsUP - uyumsuz türler" hatası veriyor

İşlevler ve bildirilen diziler, varsa, içerme dosyalarında saklanır.


Allah korusun böyle olması lazım. En azından hatasız derler:

 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 :


Allah korusun böyle olması lazım. En azından hatasız derler:

Yardımınız için teşekkürler, prensip olarak bir nevi anlarım.
 

Merhaba Uv. programcılar!

Bana neyi yanlış yaptığımı söyle?

int türünde harici bir değişkenim var, programda double türündeki dizide kaç öğe olacağını ayarlaması gerekir,

Aşağıda gösterildiği gibi yapıyorum ama derleyici hata veriyor, zaten double türünde harici bir değişken yazmaya çalıştım ama yine de hata mı veriyor?

Lütfen bana söyle.

 extern int        max_count= 4 ;

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

hatalar

 
SvSerg :

Merhaba Uv. programcılar!

Bana neyi yanlış yaptığımı söyle?

int türünde harici bir değişkenim var, programda double türündeki dizide kaç öğe olacağını ayarlaması gerekir,

Aşağıda gösterildiği gibi yapıyorum ama derleyici hata veriyor, zaten double türünde harici bir değişken yazmaya çalıştım ama yine de hata mı veriyor?

Lütfen bana söyle.

Diziyi açık bir çift A[4] ile başlatın ;

Ardından ArrayResize() ile yeniden boyutlandırın;

 
artmedia70 :

Diziyi açık bir çift A[4] ile başlatın;

Ardından ArrayResize() ile yeniden boyutlandırın;



Teşekkür ederim!

Sonuçta burada boş bir dizi başlatmak için double А[]; , o zaman bir döngüye ne kadar koyabilirsin gibi görünüyor?

Noob soruları için özür dilerim, ancak yeni başlayanlar için diziler benim için bir tür kapetler.

 
SvSerg :


Teşekkür ederim!

Sonuçta burada boş bir dizi başlatmak için double А[]; , o zaman bir döngüye ne kadar koyabilirsin gibi görünüyor?

Noob soruları için özür dilerim, ancak yeni başlayanlar için diziler benim için bir tür kapetler.

Herhangi bir dizide, ihtiyacınız olduğu kadar bellek doldurabilirsiniz, asıl şey boyutunu değiştirmeyi unutmamaktır. Özellikle dizi boşsa.
 
artmedia70 :
Herhangi bir dizide, ihtiyacınız olduğu kadar bellek doldurabilirsiniz, asıl şey boyutunu değiştirmeyi unutmamaktır. Özellikle dizi boşsa.


Tekrar teşekkürler! Çok kötü + konulamaz.
 

Tünaydın!

Sevgili programcılar! Bir uzman yazmanız gerekir.

Açıklama mevcuttur.

Hangi koşullar? Ne garanti eder?

Saygılarımla, Maxim.

Neden: