Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 144
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Eu já estou confuso)
Você tem uma matriz:
O que a função deve eventualmente retornar e por quê? O número de correspondências para cada número, ou um número máximo específico, ou ... Escrevi alguma coisa, mas deve estar errada, e errada?
Eu não sei como explicar...
Vemos uma matriz:1, 2, 3, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
Marcamos números idênticos com a mesma cor (se houver apenas um número, não há duplo para ele - não é necessário):
1, 2, 3, 1, 2, 1 , 2 , 2, 2, 1, 1, 1, 1, 3 , 3, 3 , 3 , 3 , 3, 3 , 3, 3, 3, 3,3
Conte o número de números com cores diferentes: 3 - este é o resultado.
Você verificou o código antigo. Verifique novamente.
Eu não sei como explicar...
Vemos uma matriz:1, 2, 3, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
Marcamos números idênticos com a mesma cor (se houver apenas um número, não há duplo para ele - não é necessário):
1, 2, 3, 1, 2, 1 , 2 , 2, 2, 1, 1, 1, 1, 3 , 3, 3 , 3 , 3, 3 , 3 , 3, 3, 3, 3,3
Conte o número de números com cores diferentes: 3 - este é o resultado.
Talvez)
{
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);
}
Lá ... Eu sou um esquisito... Pensei que tivesse vindo de lá, mas veio de outro lugar.
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));
}
Resumido
Talvez)
Resumido por
Isto é interessante
Com esta notação, um Array não pode ser apenas um tipo numérico, mas qualquer estrutura simples.
Outra coisa é que o ArraySort para estruturas, é claro, não funciona.
Com esta notação, um Array não pode ser apenas um tipo numérico, mas qualquer estrutura simples.
Outra coisa é que o ArraySort para estruturas, é claro, não funciona.
Exatamente... Mas as estruturas são geralmente muito complexas. E ainda têm de ser classificados...
Os complexos contêm objetos (cordas, por exemplo).
O MqlTick é uma estrutura simples.
MqlTradeRequest - complexo.
O ArraySort pode ser facilmente escrito para estruturas simples.