Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 241

 

Hallo Programmierer!

Wie kann man den Vergleich zweier Zahlen in einer for-Schleife lösen?

Was wäre nötig, um A==B ohne den Fall der Schleife i zu finden?

In der Schleife werden zwei Zahlen nur mit i verglichen , z.B. wenn i == 1 ist, dann werden nur die Zahlen A und B mit der Zahl, die gleich i ist, durchlaufen .

Ich möchte, dass alle angegebenen Zahlen miteinander verglichen werden , ohne den Fall des Zyklus i. Wie kann man dies in Code umsetzen, wenn Sie ein Codebeispiel zeigen können.

Ich danke Ihnen.

а

#property copyright "."
#property link      ""
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
    for(int i=1; i<10; i++)
     {   
      double x=1.0;
      double y=0.5;
        
      double A = x*i;
      double B = y*i;
  
      Alert(" i = ",i,"     A = ",DoubleToStr(A,1),"     B = ",DoubleToStr(B,1));
      
      //КАК НАЙТИ СРАВНЕНИЕ ЧИСЕЛ А == В БЕЗ УЧЕТА i ?
   }
  }
//+------------------------------------------------------------------+
Dateien:
Test_1.mq4  2 kb
 

Machen Sie eine Schleife in der Schleife: Vergleichen Sie zunächst das erste A mit jedem der zehn Bs, dann das zweite A usw.

 
Aleksei Stepanenko:

Führen Sie einen Zyklus in einer Schleife durch: Vergleichen Sie zunächst das erste A mit jedem der zehn Bs, dann das zweite A usw.

Ich danke Ihnen für Ihre Antwort.

9 Mal? in diesem Zyklus 9 A und 9 B.

Ich habe einen Zyklus von 100 A's und 100 B's, und das ist bereits ein 100-maliger Durchlauf von A und B..... Es ist ein Albtraum.

Gibt es keinen anderen Weg?

 

Das hängt ganz von der jeweiligen Aufgabe ab. Es kann sein, dass Sie überhaupt nichts zu suchen brauchen. Zum Beispiel, wenn einige Werte vorher in einem Array gespeichert werden.

Was erforderlich ist, geht aus Ihrem Beispiel bisher nicht hervor. Wozu dienen diese Vergleiche, was wollen Sie erreichen?

 
Aleksei Stepanenko:
Das hängt ganz von der jeweiligen Aufgabe ab. Vielleicht brauchen Sie überhaupt nicht zu suchen. Zum Beispiel, wenn einige Werte vorher in einem Array gespeichert werden.

Ich habe darüber nachgedacht, nur mit Arrays habe ich ein Problem zu alt, um sie zu verstehen. Aber wenn ein Beispiel gezeigt würde, könnte ich vielleicht herausfinden, wie man es anwendet. Ich dachte an ein zweidimensionales Array, kam aber nie dazu, es zu implementieren. Die Daten werden in einem eindimensionalen Array genauso ausgegeben wie in loop.....

Ich dachte, vielleicht ist jemand auf dieses Problem gestoßen und hat eine Lösung, die er mitteilen könnte.

 
Aleksei Stepanenko:

Aus Ihrem Beispiel geht immer noch nicht hervor, was erforderlich ist. Wozu dienen diese Vergleiche, was wollen Sie erreichen?

Wenn ich die Vergleichsdaten in die Funktion des Pfeilobjekts einfüge, werden nur die Vergleiche angezeigt, die mit dem i übereinstimmen, also das, was ich oben beschrieben habe.
 

Um etwas vorschlagen zu können, müssen Sie das Problem beschreiben. Nicht die Lösung, wie Sie sie sehen, sondern was Sie damit erreichen wollen. Dann können Sie über die Umsetzung nachdenken.

 
Aleksei Stepanenko:

Um etwas vorschlagen zu können, müssen Sie das Problem beschreiben. Nicht die Lösung, wie Sie sie sehen, sondern was Sie damit erreichen wollen. Dann können wir über die Umsetzung nachdenken.

Danke, Aleksei, ich werde Ihren ersten Rat befolgen, ich habe ihn bereits umgesetzt. Ich wollte nur den Code reduzieren, er war zu umfangreich. Ich dachte, es gäbe eine einfache Lösung, unter vier Augen hat man mir bereits gesagt, dass es keinen anderen Weg gibt.

 
Aleksei Stepanenko:

Um etwas vorschlagen zu können, müssen Sie das Problem beschreiben. Nicht die Lösung, wie Sie sie sehen, sondern was Sie damit erreichen wollen. Dann können wir über die Umsetzung nachdenken.

Ich habe gedacht, ist es möglich, dies zu tun, indem Sie doppelte Daten in das Array speichern? Soweit ich weiß, können Sie nur int in ein Array setzen?

Ich denke, Sie könnten etwas damit anfangen.......

А[100]={0,1,2,......99};
 

Beim Programmieren gibt es selten nur eine mögliche Lösung. Es gibt immer Optionen. Sie sagen nichts über die Bedeutung, also weiß ich nicht, was ich sagen soll.

Ein Array kann Daten verschiedener Typen enthalten:

int a[];
double b[];
string c[];
char d[];
Grund der Beschwerde: