[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 204

 
borilunad:
Hallo Allis! Ich trage in den Druck ein, wenn es einen Fehler gibt, und wenn er sich geöffnet hat, und so ist es im Fahrtenbuch vorgeschrieben, dass er sich geöffnet hat, und nur einmal!

Ja, du bist ein Zauberer)) Ich danke Ihnen!
 
Allis:

Du bist ein Magier)) Ich danke Ihnen!
Genau, in der Programmierung bin ich weit davon entfernt, ein "Zauberer" zu sein, ich lerne gerade, aber in einigen anderen Bereichen vielleicht!)) Ich danke Ihnen!
 

Guten Abend zusammen. Es gibt einen Indikator (oben in der Abbildung), der seine Werte (+1, 0, -1) auf Bar Nummer 0 zeichnet, aber die Berechnung wird von Bar Nummer 1 durchgeführt. Ich muss einen Indikator schreiben, der die Anzahl der Bars in jedem separaten kontinuierlichen Block von +1 und -1 oben Indikator und die gesamte Geschichte (der Durchschnitt in der Abbildung, die Höhe des Balkendiagramms in Einheiten entsprechend der Anzahl der Bars) zählen würde.Ich habe einen Indikator (unten in der Abbildung), aber es beginnt nur im Moment der Installation in das Fenster (blaue vertikale Linie) gezeichnet werden.help wer kann!


Code

int start()
  {
    
    int i;
      
    for(i=1;i<Bars-34-1;i++)                                               
     {
      double AO_Sig_Sig_1 =iCustom(NULL,0,"AO_His_l-b_Signal-Signal_sploshnoy_PSR",0,i);                           
      double AO_Sig_Sig_2 = iCustom(NULL,0,"AO_His_l-b_Signal-Signal_sploshnoy_PSR",0,i+1);
      
                                  
      if((AO_Sig_Sig_1!=AO_Sig_Sig_2)) break;                                                                
     }
         
    i=i*(AO_Sig_Sig_1);         
               
    if(i>0)            
     {
      UpMapBuffer[0]=i;
     }
    else
     {
      UpMapBuffer[0]=0;
     } 
         
    if(i<0)         
     {
      DnMapBuffer[0]=i;
     }
    else
     {
      DnMapBuffer[0]=0;
     }          
                 
      
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
borilunad:

Dies ist der Rest der Division! Schauen Sie in die Rechenschritte und in Ihren Drucker!

Geben Sie es ein, und Sie werden nur die beiden Ergebnisse abwechselnd sehen:

 int x = MathRand() % 2;
  Print("x =",x);


Ich verstehe die Logik nicht. In dem Buch lese ich:

Wenn Sie den Rest der Division von Variablea durch Variable b berechnenund das Ergebnis in die Variable ostatok schreiben wollen, sieht der Zuweisungsoperator wie folgt aus:

ostatok = a % b;

Es stellt sich heraus, dass in unserem Fall, wennMathRand() durch 2geteilt wird, der Wert von x 0 oder 1 sein muss. Warum sollte sie plötzlich 0 oder 1 sein? Es erscheint zum Beispiel die Zufallszahl 9. 9 % 2 = 4.5. Der Rest von ist gleich 4.
 
hoz:


Das ist etwas, dessen Logik ich nicht verstehe. In dem Buch lese ich:

Es stellt sich heraus, dass in unserem Fall, wennMathRand() durch 2geteilt wird, ein Wert von x gleich 0 oder 1 sein sollte. Warum sollte sie plötzlich 0 oder 1 sein? Es erscheint zum Beispiel die Zufallszahl 9. 9 % 2 = 4.5. Der Rest von ist gleich 4.

Wenn etwas nicht stimmt, braucht es nur ein paar Klicks, um zu antworten...

P.S. ostatok = 9 % 2 = 1.

 
TarasBY:

Wenn etwas nicht stimmt, braucht es nur ein paar Klicks, um zu antworten...

P.S. ostatok = 9 % 2 = 1.


Nun, es ist geschrieben:

"DieDivision mit Rest(Modulo-Division,Rest der Division,Rest der Division) ist einearithmetischeOperation, die zweiganze Zahlen ergibt:einen unvollständigen Quotienten undden Rest der Division einer ganzen Zahl durch eine andereganze Zahl."

9 : 2 = 4,5 Dies sind doppelte Zahlen.

Wenn man die Nachkommastellen abschneidet, ist es 4. Woher hast du die 1?

 
hoz:


Irgendetwas an dieser Logik verstehe ich nicht. In dem Buch lese ich:

Es stellt sich heraus, dass in unserem Fall, wennMathRand() durch 2geteilt wird, der Wert von x 0 oder 1 sein muss. Warum sollte sie plötzlich 0 oder 1 sein? Es erscheint zum Beispiel die Zufallszahl 9. 9 % 2 = 4.5. Der Rest von ist gleich 4.

Victor, verwechseln Sie nicht int mit double! Alsoint x = MathRand() % 2; ergibt 0 oder 1! Es kann weder 0,1 noch 0,9, weder 1,1 noch 1,9 ergeben, weil Dezimalzahlen in int gerundet werden und weniger als 0,5 verworfen werden! Und das %-Zeichen bedeutet den Rest der Division, nicht das Divisionszeichen. Das Divisionszeichen ist /.

Ich gebe Ihr Beispiel mit 9 ein und erhalte ein einziges Ergebnis, 1, weil es keinen Zufall gibt:

  int x = 9 % 2;//MathRand()
  Print("x =",x);

Sie fragen:

9 : 2 = 4,5 Dies sind doppelte Zahlen.

Wenn Sie den Bruchteil weglassen, erhalten Sie 4. Woher haben Sie die 1?

Ich antworte: 0,5 wird also auf 1 gerundet!

Interessant ist, dass der Compiler, als ich einen Punkt und eine Null (2.0) zu 2 gesetzt habe, mir eine Fehlermeldung gab, die besagte, dass % nur eine ganze Zahl erfordert!

Selbst wenn Sie also double x eingeben, kommt immer noch ein Integer int heraus. Danke, Victor, für deine Zweifel! Dank ihnen und Ihnen habe ich eine interessante Forschung gemacht, die meine Möglichkeiten der mathematischen Transformationen erweitern wird! Ich schulde Ihnen ein (virtuelles) Glas! :))

 
hoz:


Nun, so steht es hier:

"DieDivision mit Rest(Modulo-Division,Rest der Division,Rest der Division) ist einearithmetischeOperation, die zweiganze Zahlen ergibt:einen unvollständigen Quotienten undden Rest der Division einer ganzen Zahl durch eine andereganze Zahl."

9 : 2 = 4,5 Dies sind doppelte Zahlen.

Wenn man die Nachkommastellen abschneidet, ist es 4. Woher hast du die 1?

Was ist die nächstgelegene ganze Zahl zu 9, die durch 2 teilbar ist, ohne einen Rest zu haben? Ziehe dann diese Zahl von der teilbaren Zahl (9) ab. Was haben Sie bekommen?

P.S. Wenn Sie gescheitert sind, können Sie das Ergebnis ausdrucken: Print ("ostatok = ", 9 % 2);

 

laveosa 07.03.2013 21:15

Hallo, können Sie mir sagen, wie ich Symbol() durch "EURUSD" in Ordersend() ersetzen kann? oder was?

 
Mathemat:

laveosa 07.03.2013 21:15

Hallo, können Sie mir sagen, wie ich Symbol() durch "EURUSD" in Ordersend() ersetzen kann? oder was?

NULL
Grund der Beschwerde: