Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 241

 

Ciao programmatori!

Come risolvere il confronto di due numeri in un ciclo for?

Cosa servirebbe per trovare A==B senza il caso del ciclo i?

Nel ciclo confrontare due numeri è solo su i, per esempio li confronta se i == 1, poi passa solo attraverso i numeri A e B con il numero che sono uguali a i .

Voglio che provi tutti i numeri dati tra loro senza il caso del ciclo i. Come implementare questo nel codice, se potete mostrare un esempio di codice.

Grazie.

а

#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 ?
   }
  }
//+------------------------------------------------------------------+
File:
Test_1.mq4  2 kb
 

Fai un ciclo nel ciclo: prima confronta il primo A con ciascuno dei dieci B, poi il secondo A, ecc.

 
Aleksei Stepanenko:

Fate un ciclo in un ciclo: prima confrontate il primo A con ciascuno dei dieci B, poi il secondo A, ecc.

Grazie per la sua risposta.

9 volte? in questo ciclo 9 A, e 9 B .

Ho un ciclo di 100 A e 100 B e questo è già passare ogni A e B.... 100 volte. È un incubo.

Non c'è altro modo?

 

Tutto dipende dal compito da svolgere. Può essere che non abbiate bisogno di cercare proprio nulla. Per esempio, se alcuni valori sono memorizzati prima in un array.

Ciò che è richiesto non è chiaro dal tuo esempio finora. A cosa servono questi confronti, cosa vuoi ottenere?

 
Aleksei Stepanenko:
Tutto dipende dal compito da svolgere. Forse non c'è bisogno di cercare proprio nulla. Per esempio, se alcuni valori sono memorizzati prima in un array.

Ci ho pensato solo con gli array che ho un problema troppo vecchio per capirli. Ma se venisse mostrato un esempio forse potrei capire come applicarlo. Ho pensato ad un array bidimensionale, ma non sono mai riuscito ad implementarlo. I dati sono emessi nello stesso modo in un array unidimensionale come in loop....

Stavo pensando che forse qualcuno si è imbattuto in questo e ha una soluzione che potrebbe condividere.

 
Aleksei Stepanenko:

Non è ancora chiaro dal tuo esempio cosa sia richiesto. A cosa servono questi confronti, cosa vuoi ottenere?

Ho messo i dati di confronto nella funzione dell'oggetto freccia, vede solo i confronti che corrispondono alla i, che è quello che ho descritto sopra.
 

Per suggerire qualcosa, è necessario descrivere il problema. Non la soluzione, come la vedi tu, ma quello che vuoi ottenere da essa. Poi si può pensare all'implementazione.

 
Aleksei Stepanenko:

Per suggerire qualcosa, è necessario descrivere il problema. Non la soluzione, come la vedi tu, ma quello che vuoi ottenere da essa. Poi possiamo pensare all'implementazione.

Grazie, Aleksei, seguirò il tuo primo consiglio, l'ho già implementato. Volevo solo ridurre il codice, era troppo. Pensavo ci fosse una soluzione semplice, in privato mi è già stato detto che non c'è altro modo.

 
Aleksei Stepanenko:

Per suggerire qualcosa, è necessario descrivere il problema. Non la soluzione, come la vedi tu, ma quello che vuoi ottenere da essa. Poi possiamo pensare all'implementazione.

Stavo pensando, è possibile farlo memorizzando dati doppi nell'array? Per quanto ne so, si possono mettere solo int in un array?

Penso che si potrebbe fare qualcosa con questo.......

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

Nella programmazione, raramente c'è una sola soluzione possibile. Ci sono sempre delle opzioni. Non dici nulla sul significato, quindi non so cosa dire.

Un array può contenere dati di diversi tipi:

int a[];
double b[];
string c[];
char d[];