MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1921

 
Ve aslında, daha da geliştirerek, yalnızca ArrayI ile eşleşmeyen öğeleri ArrayJ'ye kopyalayarak döngü 1 ve 2'yi birleştirebilirsiniz.
 
x572intraday ArrayJ dizisinden çıkarmanız gerekir :

Anahtar satırı vurgulandı. Sonuç:

beklenen:

ArrayJ dinamiktir, onda bir sorun var gibi görünüyor... ama statik bir şeye ihtiyacım yok.

Bütün aklımı kırdım. ÇADNT? Yoksa gerçekten eski şarkının bir analogu mu:

https://www.mql5.com/ru/forum/1111/page3141#comment_27152680

ve

https://www.mql5.com/ru/forum/1111/page3142#comment_27371998

adlandırılmış sabitler hakkında?

Fazladan bir döngün var.

İşte doğru seçenek:

 void OnStart ()
{
   int CommonArray[]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 13 , 13 , 13 , 13 , 13 , 13 , 13 };
   int ArrayI[ 20 ]=   { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 9 , 10 ,   0 , 12 , 13 , 13 , 13 , 13 ,   0 ,   0 , 13 ,   0 };
   int ArrayJ[];

   for ( int j= 0 ; j< ArraySize (ArrayI); j++)
   {
       ArrayResize (ArrayJ,j+ 1 );
      ArrayJ[j]=CommonArray[j];
   }

   ArrayPrint (ArrayI);
   ArrayPrint (ArrayJ);

         for ( int i = ArraySize ( ArrayI )- 1 ; i >= 0 ; i-- ){
                 if ( ArrayI[i] > 0 && ArrayI[i] == ArrayJ[i] ){
                         ArrayRemove ( ArrayJ, i, 1 );
                }
        }

   ArrayPrint ( ArrayJ );
//---
}
 
EVGENII SHELIPOV # :

Kendini yırtma İskender

Neden İskender? Ben Andrey'im.

" Kendini yırtma" - açıkla.

 
Koldun Zloy # :

Fazladan bir döngün var.

İşte doğru seçenek:

Ekstra döngü hakkında ... belki burada uygun değildir, ancak büyük kodda buna ihtiyaç vardır, bu yüzden buraya taşındım. Algoritmanın doğruluğunu kontrol edecek bir güç yok, ancak resmi olarak gerektiği gibi çalışıyor.

JRandomTrader , sonuç şaşırtıcıydı: tüm sıfırlar. Daha sonra tekrar kontrol edeceğim.

Herkese teşekkürler.

JRandomTrader
JRandomTrader
  • 2018.10.28
  • www.mql5.com
Профиль трейдера
 
int CommonArray[]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 13 , 13 , 13 , 13 , 13 , 13 , 13 };
int ArrayI[ 20 ]=   { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 9 , 10 ,   0 , 12 , 13 , 13 , 13 , 13 ,   0 ,   0 , 13 ,   0 };
int ArrayJ[];

int CommonOffset= 0 ; // или сколько надо

ArrayResize (ArrayJ, ArraySize (ArrayI));
int k= 0 ;
for ( int j= 0 ; j< ArraySize (ArrayI); j++)
   if (ArrayI[j]!=CommonArray[j+CommonOffset])
      ArrayJ[k++]=CommonArray[j+CommonOffset];
ArrayResize (ArrayJ,k);

Bunun gibi bir şey.

Ve sıfırlar benim pervazım, işte ihtiyacın olan:

 int k= 0 ; // объявляем до цикла - чтобы использовать после
for ( int i= 0 ; i< ArraySize (ArrayI); i++) // после предыдущего кода (1) размеры ArrayI и ArrayJ равны
   if (ArrayI[i]!=ArrayJ[i])
    {
     -ArrayJ[k++]=ArrayI[i];
     +ArrayJ[k++]=ArrayJ[i];
    }
ArrayResize (ArrayJ,k);


 
Tretyakov Rostyslav # :

Hey

 
Tretyakov Rostyslav # :

Sayın!

O bilgiyi kullanmıyorsun.

 
Vitaly Muzichenko # :

Sayın!

O bilgiyi kullanmıyorsun.

Ve neye ihtiyacın var?
 
Tretyakov Rostyslav # :
Ve neye ihtiyacın var?

bir diğeri

 
Tretyakov Rostyslav # :
Ve neye ihtiyacın var?

Sen bir programcısın, taksi şoförü değil, sonuca değil sebebine bakmalısın, o zaman her şey yerli yerine oturacak.