MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 143 1...136137138139140141142143144145146147148149150...1953 Yeni yorum Artyom Trishkin 2017.03.07 08:50 #1421 fxsaber : olduğu gibi başlatıldı template < typename T> int Strange( const T &InArray[] ){ int Res = 1 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Tmp = 1 ; ArrayPrint(Array); for ( int i = 1 ; i < Size; i++) { if (Array[i - 1 ] != Array[i]) { if (Tmp > Res) Res = Tmp; Tmp = 0 ; } Tmp++; } } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 }; Print (Strange(Array));} saban İşte çıktıları: 2017.03 . 07 14 : 42 : 44.141 1 1 1 2 2 2 2 3 2017.03 . 07 14 : 42 : 44.141 4 Üst satır sıralanmış girdi dizisidir, alt satır Strange() işlevinin sonucudur. Sıralanan diziye ve renk eşleşmelerine dikkatlice bakarsak ve ardından aynı renkle birden fazla sayıyı sayarsak, şu sonucu alırız: 1 1 1 2 2 2 2 3 - toplam, 2 döndürmek gerekiyordu Ve işlev 4 döndürdü. Yine de - ayrıca ilerleme - benim için her zaman 1 döndürdü - nasıl olduğunu anlamadım. Hatalar, hatalar, sorular Ticarette makine öğrenimi: teori, PROFI'den SUPERPROFI'ye kadar tüm fxsaber 2017.03.07 08:54 #1422 Artyom Trishkin : 1 1 1 2 2 2 2 3 - toplam, 2 döndürmek gerekiyordu Ve işlev 4 döndürdü. Yine de - ayrıca ilerleme - benim için her zaman 1 döndürdü - nasıl olduğunu anlamadım. Yani sayıyı mı yoksa en sık kullanılan öğeyi mi döndürmeniz gerekiyor? İkincisi ise, o zaman template < typename T> int Strange( const T &InArray[] ){ int Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Max = 0 ; int Tmp = 0 ; ArrayPrint(Array); for ( int i = 0 ; i < Size - 1 ; i++) { Tmp++; if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 )) { if (Tmp > Max) { Max = Tmp; Res = Array[i]; } Tmp = 0 ; } } } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 }; Print (Strange(Array));} Any questions from newcomers Libraries: TypeToBytes [WARNING CLOSED!] Any newbie Artyom Trishkin 2017.03.07 08:59 #1423 fxsaber : Yani sayıyı mı yoksa en sık kullanılan öğeyi mi döndürmeniz gerekiyor? Farklı kopyaların sayısı. Ve işleviniz ne döndürür? Çoğu maç? Ayrıca kullanışlı... fxsaber 2017.03.07 09:02 #1424 Artyom Trishkin : Farklı kopyaların sayısı. Garip bir şekilde ifade ediyorsun. "0, 0, 1, 1, 2, 2" - 3? Ve işleviniz ne döndürür? Çoğu maç? Evet. Artyom Trishkin 2017.03.07 09:06 #1425 fxsaber : Garip bir şekilde ifade ediyorsun. "0, 0, 1, 1, 2, 2" - 3? Evet - üç farklı sayıdan üç eşleşme. fxsaber 2017.03.07 09:08 #1426 Artyom Trishkin : Evet - üç farklı sayıdan üç eşleşme. template < typename T> int Strange( const T &InArray[] ){ int Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Tmp = 1 ; ArrayPrint(Array); for ( int i = 1 ; i < Size; i++, Tmp++) if (Array[i - 1 ] != Array[i]) { if (Tmp > 1 ) Res++; Tmp = 0 ; } if (Tmp > 1 ) Res++; } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 3 , 4 , 4 }; Print (Strange(Array));} Artyom Trishkin 2017.03.07 09:15 #1427 fxsaber : Yani sayıyı mı yoksa en sık kullanılan öğeyi mi döndürmeniz gerekiyor? İkincisi ise, o zaman template < typename T> int Strange( const T &InArray[] ){ int Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Max = 0 ; int Tmp = 0 ; ArrayPrint(Array); for ( int i = 0 ; i < Size - 1 ; i++) { Tmp++; if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 )) { if (Tmp > Max) { Max = Tmp; Res = Array[i]; } Tmp = 0 ; } } } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 }; Print (Strange(Array));} Harika. Ama biraz farklı olarak - bu bir şablon işlevidir, yani: template < typename T>T Strange( const T &InArray[] ){ T Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Max = 0 ; int Tmp = 0 ; ArrayPrint(Array); for ( int i = 0 ; i < Size - 1 ; i++) { Tmp++; if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 )) { if (Tmp > Max) { Max = Tmp; Res = Array[i]; } Tmp = 0 ; } } } return (Res);} void OnStart (){ double Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 }; Print (Strange(Array));} Any questions from newcomers MetaEditor build 1463 MetaEditor yapı 1463 Artyom Trishkin 2017.03.07 09:52 #1428 fxsaber : template < typename T> int Strange( const T &InArray[] ){ int Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Tmp = 1 ; ArrayPrint(Array); for ( int i = 1 ; i < Size; i++) { if (Array[i - 1 ] != Array[i]) { if (Tmp > 1 ) Res++; Tmp = 0 ; } Tmp++; } } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 }; Print (Strange(Array));} Bu ne döndürür? Dizi farklı yapılırsa, bu doğru değildir: template < typename T> int Strange( const T &InArray[] ){ int Res = 0 ; T Array[]; const int Size = ArraySize (InArray); if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Tmp = 1 ; ArrayPrint(Array); for ( int i = 1 ; i < Size; i++) { if (Array[i - 1 ] != Array[i]) { if (Tmp > 1 ) Res++; Tmp = 0 ; } Tmp++; } } return (Res);} void OnStart (){ int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 }; Print (Strange(Array));} İadeler 2017.03 . 07 15 : 48 : 26.985 1 1 1 1 1 1 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2017.03 . 07 15 : 48 : 26.985 2 Tam olarak dizideki eşleşen sayıların sayısını mı arıyor? Ya da belki başka bir şey yaptın ve ben bir hata arayacağım Any questions from newcomers MetaEditor yapı 1463 Sormak! Vitaly Muzichenko 2017.03.07 09:57 #1429 zaten kafam karıştı) Bir diziniz var: Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 }; İşlev sonunda ne döndürmeli ve neden? Her sayı için eşleşme sayısı veya belirli bir maksimum sayı veya ... Bir şey yazdım , ama muhtemelen öyle değil, öyle değil mi? Tüm dünyanın danışmanı Forumu kirletmemek için herhangi EURUSD - Eğilimler, tahminler fxsaber 2017.03.07 10:02 #1430 Artyom Trishkin : Tam olarak dizideki eşleşen sayıların sayısını mı arıyor? Ya da belki başka bir şey yaptın ve ben bir hata arayacağım Eski kodu kontrol ettiniz mi? Tekrar kontrol et . 1...136137138139140141142143144145146147148149150...1953 Yeni yorum
olduğu gibi başlatıldı
int Strange( const T &InArray[] )
{
int Res = 1 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Tmp = 1 ;
ArrayPrint(Array);
for ( int i = 1 ; i < Size; i++)
{
if (Array[i - 1 ] != Array[i])
{
if (Tmp > Res)
Res = Tmp;
Tmp = 0 ;
}
Tmp++;
}
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 };
Print (Strange(Array));
}
İşte çıktıları:
2017.03 . 07 14 : 42 : 44.141 4
Üst satır sıralanmış girdi dizisidir, alt satır Strange() işlevinin sonucudur.
Sıralanan diziye ve renk eşleşmelerine dikkatlice bakarsak ve ardından aynı renkle birden fazla sayıyı sayarsak, şu sonucu alırız:
1 1 1 2 2 2 2 3 - toplam, 2 döndürmek gerekiyordu
Ve işlev 4 döndürdü. Yine de - ayrıca ilerleme - benim için her zaman 1 döndürdü - nasıl olduğunu anlamadım.
1 1 1 2 2 2 2 3 - toplam, 2 döndürmek gerekiyordu
Ve işlev 4 döndürdü. Yine de - ayrıca ilerleme - benim için her zaman 1 döndürdü - nasıl olduğunu anlamadım.
int Strange( const T &InArray[] )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Max = 0 ;
int Tmp = 0 ;
ArrayPrint(Array);
for ( int i = 0 ; i < Size - 1 ; i++)
{
Tmp++;
if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 ))
{
if (Tmp > Max)
{
Max = Tmp;
Res = Array[i];
}
Tmp = 0 ;
}
}
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
Print (Strange(Array));
}
Yani sayıyı mı yoksa en sık kullanılan öğeyi mi döndürmeniz gerekiyor?
Farklı kopyaların sayısı.
Ve işleviniz ne döndürür? Çoğu maç? Ayrıca kullanışlı...
Farklı kopyaların sayısı.
Garip bir şekilde ifade ediyorsun. "0, 0, 1, 1, 2, 2" - 3?
Ve işleviniz ne döndürür? Çoğu maç?
Garip bir şekilde ifade ediyorsun. "0, 0, 1, 1, 2, 2" - 3?
Evet - üç farklı sayıdan üç eşleşme.
int Strange( const T &InArray[] )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Tmp = 1 ;
ArrayPrint(Array);
for ( int i = 1 ; i < Size; i++, Tmp++)
if (Array[i - 1 ] != Array[i])
{
if (Tmp > 1 )
Res++;
Tmp = 0 ;
}
if (Tmp > 1 )
Res++;
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 3 , 4 , 4 };
Print (Strange(Array));
}
Yani sayıyı mı yoksa en sık kullanılan öğeyi mi döndürmeniz gerekiyor? İkincisi ise, o zaman
int Strange( const T &InArray[] )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Max = 0 ;
int Tmp = 0 ;
ArrayPrint(Array);
for ( int i = 0 ; i < Size - 1 ; i++)
{
Tmp++;
if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 ))
{
if (Tmp > Max)
{
Max = Tmp;
Res = Array[i];
}
Tmp = 0 ;
}
}
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
Print (Strange(Array));
}
Harika. Ama biraz farklı olarak - bu bir şablon işlevidir, yani:
T Strange( const T &InArray[] )
{
T Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Max = 0 ;
int Tmp = 0 ;
ArrayPrint(Array);
for ( int i = 0 ; i < Size - 1 ; i++)
{
Tmp++;
if ((Array[i] != Array[i + 1 ]) || (i == Size - 2 ))
{
if (Tmp > Max)
{
Max = Tmp;
Res = Array[i];
}
Tmp = 0 ;
}
}
}
return (Res);
}
void OnStart ()
{
double Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
Print (Strange(Array));
}
int Strange( const T &InArray[] )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Tmp = 1 ;
ArrayPrint(Array);
for ( int i = 1 ; i < Size; i++)
{
if (Array[i - 1 ] != Array[i])
{
if (Tmp > 1 )
Res++;
Tmp = 0 ;
}
Tmp++;
}
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 };
Print (Strange(Array));
}
Bu ne döndürür?
Dizi farklı yapılırsa, bu doğru değildir:
int Strange( const T &InArray[] )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Tmp = 1 ;
ArrayPrint(Array);
for ( int i = 1 ; i < Size; i++)
{
if (Array[i - 1 ] != Array[i])
{
if (Tmp > 1 )
Res++;
Tmp = 0 ;
}
Tmp++;
}
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
Print (Strange(Array));
}
İadeler
2017.03 . 07 15 : 48 : 26.985 2
Tam olarak dizideki eşleşen sayıların sayısını mı arıyor? Ya da belki başka bir şey yaptın ve ben bir hata arayacağım
zaten kafam karıştı)
Bir diziniz var:
İşlev sonunda ne döndürmeli ve neden? Her sayı için eşleşme sayısı veya belirli bir maksimum sayı veya ... Bir şey yazdım , ama muhtemelen öyle değil, öyle değil mi?
Tam olarak dizideki eşleşen sayıların sayısını mı arıyor? Ya da belki başka bir şey yaptın ve ben bir hata arayacağım