Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 144
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je suis déjà confus)
Vous avez un tableau :
Que doit retourner la fonction et pourquoi ? Le nombre de correspondances pour chaque numéro, ou un nombre maximum spécifique, ou ... J'ai écrit quelque chose, mais ça doit être faux, et faux ?
Je ne sais pas comment expliquer...
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Nous marquons les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de doublon pour lui - il n'est pas nécessaire) :
1, 2, 3, 1, 2, 1 , 2 , 2, 1, 1 , 1 , 3, 3, 3 , 3 , 3 , 3 , 3,3, 3, 3, 3,
Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Vous avez vérifié l'ancien code. Vérifiez-le deux fois.
Je ne sais pas comment expliquer...
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
On marque les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de double pour lui - il n'est pas nécessaire) :
1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3 , 3, 3 , 3 , 3 , 3, 3 ,3, 3, 3, 3,
Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Peut-être)
{
int Arr[]={1, 2, 3, 1, 2, 1, 2, 2, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3};
Comment( GetM(Arr) );
}
int GetM(int &Mas[])
{
int MasTemp[][2]; // Временный массив
int c=0,t=0;
ArraySort(Mas);
int ArrSize= ArraySize(Mas);
for(int i=0; i<ArrSize; i++) {
for(int x=i; x<ArrSize; x++) {
if(Mas[i]==Mas[ArrayMinimum(Mas,WHOLE_ARRAY,x)]) {
c++;
}
}
if(c>0) {
t++;
ArrayResize(MasTemp,t);
MasTemp[t-1][0]= c;
MasTemp[t-1][1]= Mas[i];
}
c=0;
}
int ArrRange=ArrayRange(MasTemp,0);
if(ArrRange>0) {
ArraySort(MasTemp);
// Comment("Цифра: ",MasTemp[ArrRange-1][1],", Количество: ",MasTemp[ArrRange-1][0]);
return( MasTemp[ArrRange-1][1] );
}
return(-1);
}
Il y a... Je suis bizarre... Je pensais que ça venait de là, mais ça venait d'ailleurs.
template <typename T>
int Strange( const T &InArray[], const int Repeat = 2 )
{
int Res = 0;
T Array[];
const int Size = ArraySize(InArray);
if ((ArrayCopy(Array, InArray) == Size) && ArraySort(Array))
{
int Tmp = 1;
for (int i = 1; i < Size; i++, Tmp++)
if (Array[i - 1] != Array[i]) // если будут структуры, то есть более универсальная запись
{
if (Tmp >= Repeat)
Res++;
Tmp = 0;
}
if (Tmp >= Repeat)
Res++;
}
return(Res);
}
void OnStart()
{
int Array[] = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4};
for (int i = 1; i <= 4; i++)
Print(Strange(Array, i));
}
Résumé
Peut-être)
Résumés par
C'est intéressant
Avec cette notation, un tableau peut non seulement être un type numérique, mais aussi toute structure simple.
Une autre chose est que ArraySort pour les structures, bien sûr, ne fonctionne pas.
Avec cette notation, un tableau peut non seulement être un type numérique, mais aussi toute structure simple.
Une autre chose est que ArraySort pour les structures, bien sûr, ne fonctionne pas.
Exactement... Mais les structures sont généralement très complexes. Et ils doivent encore être triés...
Les complexes contiennent des objets (des chaînes de caractères, par exemple).
MqlTick est une structure simple.
MqlTradeRequest - complexe.
ArraySort peut facilement être écrit pour des structures simples.