Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 733
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
Zu Ihrem"ArraySortBubbleTwoDims"
Zu Ihrem"ArraySortBubbleTwoDims".
Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
Zu Ihrem"ArraySortBubbleTwoDims".
Wie auch immer, ich habe die Schleife erweitert und das Problem ist gelöst. Aber ich würde trotzdem gerne eine normale Lösung in Form einer Standardfunktion sehen
//| sTestSort.mq5 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
//---
#define TWO_DIM (2)
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
double array[][TWO_DIM];
ArrayResize(array,10);
for(uchar i=0; i<10; i++) {
array[i][0]=i*10;
array[i][1]=rand();
}
Print("Перед сортировкой");
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по первому измерению по возрастанию");
ArraySortBubbleTwoDims(array);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по первому измерению по убыванию");
ArraySortBubbleTwoDims(array,0,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
//---
Print("Сортировка по второму измерению по возрастанию");
ArraySortBubbleTwoDims(array,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
Print("Сортировка по второму измерению по убыванию");
ArraySortBubbleTwoDims(array,1,1);
for(uchar i=0; i<10; i++) Print("array[",i,"][0]=",array[i][0],", array[",i,"][1]=",array[i][1]);
}
//+------------------------------------------------------------------+
//| Пузырьковая сортировка двумерного массива |
//+------------------------------------------------------------------+
template<typename T>
void ArraySortBubbleTwoDims(T& array[][TWO_DIM], int sort_dimension=0, int sort_direction=0) {
T t=0;
int k=ArrayRange(array,1); // Количество колонок
int n=ArrayRange(array,0); // Количество строк
//---
if(sort_dimension<0) sort_dimension=0;
if(sort_dimension>k) sort_dimension=k;
//---
for(int i=n-1; i>0; i--) {
for(int j=0; j<i; j++) {
//--- по возрастанию
if(sort_direction==0) {
if(array[j][sort_dimension]>array[j+1][sort_dimension]) {
for(int e=0; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+1][e];
array[j+1][e]=t;
}
}
}
//--- по убыванию
else {
if(array[j][sort_dimension]<array[j+1][sort_dimension]) {
for(int e=0; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+1][e];
array[j+1][e]=t;
}
}
}
}
}
}
//+------------------------------------------------------------------+
Skript überprüfen:
Danke, aber mein Code ist magisch(
Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25
Danke, aber mein Code ist magisch(
Fehler: 'mas' - Parameterumwandlung nicht erlaubt e.mq5 2129 25
Ihr mas hat eine zweite Dimension von 3. Sie benötigen 2.
Unterm Strich:
void PosBySort(double &mas[][3])
Es fällt mir schwer, mql5 zu lernen, aber ich habe gemerkt, dass ich den finanziellen Teil nicht verstehe, also weiß ich nicht einmal, was ich schreiben soll. Ich habe einige Grundkenntnisse, weiß aber nicht, wie ich sie anwenden soll. Können Sie den guten Menschen, die in der gleichen Situation waren, einen Rat geben?
Genau das ist klar, aber man kann nicht immer billiger einkaufen und teurer verkaufen. Wann man in ein Geschäft einsteigt, wann man aussteigt und so weiter, das ist es, was ich meine.