Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 144
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich bin schon verwirrt)
Sie haben ein Array:
Was sollte die Funktion letztendlich zurückgeben und warum? Die Anzahl der Treffer für jede Zahl oder eine bestimmte Höchstzahl oder ... Habe ich etwas geschrieben, aber es muss falsch sein, und falsch?
Ich weiß nicht, wie ich es erklären soll...
Wir sehen ein Array:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Wir markieren identische Zahlen mit der gleichen Farbe (wenn es nur eine Zahl gibt, gibt es kein Doppel dafür - es wird nicht benötigt):
1, 2, 3, 1, 2, 1 , 2 , 2, 1 , 1 , 1, 3 , 3 , 3, 3 , 3 , 3, 3 , 3 , 3, 3, 3, 3,3
Zähle die Anzahl der Zahlen mit verschiedenen Farben: 3 - das ist das Ergebnis.
Sie haben den alten Code überprüft. Überprüfen Sie es doppelt.
Ich weiß nicht, wie ich es erklären soll...
Wir sehen ein Array:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Wir markieren identische Zahlen mit der gleichen Farbe (wenn es nur eine Zahl gibt, gibt es kein Doppel dafür - es wird nicht benötigt):
1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3 , 3 , 3, 3 , 3 , 3, 3, 3 , 3, 3, 3, 3,3
Zähle die Anzahl der Zahlen mit verschiedenen Farben: 3 - das ist das Ergebnis.
Vielleicht)
{
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);
}
Dort ... Ich bin ein komischer Kauz... Ich dachte, es käme von dort, aber es kam von woanders.
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));
}
Zusammenfassend
Vielleicht)
Zusammengefasst von
Das ist interessant
Mit dieser Notation kann ein Array nicht nur ein numerischer Typ sein, sondern eine beliebige einfache Struktur.
Eine andere Sache ist, dass ArraySort für Strukturen, natürlich, nicht funktioniert.
Mit dieser Notation kann ein Array nicht nur ein numerischer Typ sein, sondern eine beliebige einfache Struktur.
Eine andere Sache ist, dass ArraySort für Strukturen, natürlich, nicht funktioniert.
Ganz genau... Aber die Strukturen sind in der Regel sehr komplex. Und die müssen noch sortiert werden...
Komplexe enthalten Objekte (z. B. Zeichenketten).
MqlTick ist eine einfache Struktur.
MqlTradeRequest - komplex.
ArraySort kann leicht für einfache Strukturen geschrieben werden.