Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 144
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sono già confuso)
Avete un array:
Cosa dovrebbe restituire alla fine la funzione e perché? Il numero di partite per ogni numero, o un numero massimo specifico, o ... Ho scritto qualcosa, ma deve essere sbagliato, e sbagliato?
Non so come spiegare...
Vediamo una matrice:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
Segniamo i numeri identici con lo stesso colore (se c'è solo un numero, non c'è un duplicato per esso - non è necessario):
1, 2, 3, 1, 2 , 1 , 2 , 2 , 1 , 1, 1, 1 , 3 , 3, 3 , 3 , 3 , 3 , 3, 3, 3,3
Conta il numero di numeri con colori diversi: 3 - questo è il risultato.
Avete controllato il vecchio codice. Controllate due volte.
Non so come spiegare...
Vediamo una matrice:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
Segniamo numeri identici con lo stesso colore (se c'è solo un numero, non c'è il doppio - non è necessario):
1, 2, 3, 1, 2 , 1 , 2 , 2 , 1, 1, 1, 1, 3 , 3, 3 , 3 , 3 , 3 , 3, 3, 3,3
Conta il numero di numeri con colori diversi: 3 - questo è il risultato.
Forse)
{
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);
}
Ci ... Sono un tipo strano... Pensavo che venisse da lì, ma veniva da un'altra parte.
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));
}
Riassunto
Forse)
Riassunto da
Questo è interessante
Con questa notazione, un Array può essere non solo un tipo numerico, ma qualsiasi struttura semplice.
Un'altra cosa è che ArraySort per le strutture, ovviamente, non funziona.
Con questa notazione, un Array può essere non solo un tipo numerico, ma qualsiasi struttura semplice.
Un'altra cosa è che ArraySort per le strutture, ovviamente, non funziona.
Esattamente... Ma le strutture sono di solito molto complesse. E devono ancora essere ordinati...
Complessi sono contenenti oggetti (stringhe, per esempio).
MqlTick è una struttura semplice.
MqlTradeRequest - complesso.
ArraySort può essere facilmente scritto per strutture semplici.