[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 206

 
Per come la vedo io, era il PARAMETRO TRASFERIBILE))))), ma non potevo farne a meno))). Grazie, l'ho aggiustato e funziona.
 
Aleksander:

caro... non c'è bisogno di scrivere in lettere così grandi qui... potresti romperti gli occhi :-)

e questo... prima di fare domande... hai provato a leggere l'Aiuto in Metaeditor? Tutto?...per cominciare...così non fai domande stupide sui tipi e cose del genere....

===

Tipo di operazione per la funzione OrderSend(). Può essere uno qualsiasi dei seguenti valori:

Costante Valore Descrizione
OP_BUY 0 Compra
OP_VENDITA 1 Vendere
OP_BUYLIMIT 2 Ordine pendente BUY LIMIT
OP_SELLLIMIT 3 Ordine SELL LIMIT in sospeso
OP_BUYSTOP 4 Ordine BUY STOP in sospeso
OP_SELLSTOP 5 Ordine SELL STOP in sospeso
Caro signore... non c'è bisogno di diventare presuntuosi qui... Se qualcosa ti sembra stupido, non disturbarti a rispondere... Se Dio vuole, ci sono persone senza manie di grandezza... Questa è una sezione per i neofiti e se la gente chiede qualcosa, significa che non la capisce... Inoltre: se tutto fosse chiaro nell'Aiuto e nel libro, non sarei qui.
Ora veniamo al punto: diciamo che abbiamo 3 ordini e tutti sono ordini a mercato. Allora con 3 iterazioni non colpiremo il blocco 4 in nessuno di essi. E dopo l'ultima iterazione andremo immediatamente al blocco 5, bypassando il blocco 4. Il blocco 5 contiene la variabile Tip, che è dichiarata nel blocco 4. Ma il blocco 4 non è stato eseguito. Quindi la variabile Tip non è dichiarata. Quindi usiamo la variabile prima di dichiararla?

 
Il compilatore ha allocato lo spazio di memoria per la variabile al primo passaggio... e accedervi non causerà un errore...
 
Aleksander:
Il compilatore ha allocato lo spazio di memoria per la variabile durante il primo passaggio... e accedervi non causerà un errore...


Il seguente punto non è chiaro: al primo passaggio (supponendo che tutti e 3 gli ordini siano ordini a mercato), non si arriva al blocco 4, poiché la condizione if(OrderType()<2) è soddisfatta nel blocco 3. Poi il prossimo iteratore continue completa l'iterazione corrente e salta il blocco 4, che è dove viene dichiarata la variabile Tip. Significa che la variabile Tip non è stata dichiarata durante la prima iterazione (cioè la linea che dichiara la variabile Tip non è stata eseguita)... E così continua per tutte e 3 le iterazioni. Cioè dopo la terza iterazione arriviamo al blocco 5, che usa la variabile Tip, cioè non è stata dichiarata prima (cioè abbiamo una stringa con la sua dichiarazione, ma dato che non siamo mai arrivati al blocco 4, non abbiamo dichiarato questa variabile?)

 

Mi riferivo all'attraversamento del testo del programma da parte del compilatore - avendo trovato una definizione di variabile in qualsiasi punto di una funzione - il metacompilatore ha dichiarato quella variabile per l'uso a valle - nonostante il fatto che non ci fosse alcun riferimento effettivo all'inizializzazione della variabile... - questo è l'ambiente :-)

int start()  {
       int l=1;
       
       if (l == 2) {
          int kk=99;
          kk = 100;
       }
   }
   if (kk != 10) { Print("net kk takoi peremennoi = ", kk); }


Anche se non c'era nessun input nella condizione - il compilatore ha allocato una locazione di memoria per la variabile... anche se non l'ha inizializzato... in Print sarà = 0

 
Aleksander:

Mi riferivo all'attraversamento del testo del programma da parte del compilatore - avendo trovato una definizione di variabile in qualsiasi punto di una funzione - il metacompilatore ha dichiarato quella variabile per l'uso a valle - nonostante il fatto che non ci fosse alcun riferimento effettivo all'inizializzazione della variabile... - questo è l'ambiente :-)


Anche se non c'era nessun input nella condizione - il compilatore ha allocato una locazione di memoria per la variabile... anche se non l'ha inizializzato... in Print sarà = 0



Quindi, se ho capito bene: il compilatore, a differenza del terminale (approssimativamente parlando) non esegue cicli, ma legge solo le linee in una riga e controlla gli errori... Cioè la cosa principale per esso (che è il criterio di presenza/assenza di errore) è che la linea (posizione), dove una variabile è stata usata, dovrebbe venire DOPO la linea (posizione), dove questa variabile è stata dichiarata?
 
si potrebbe dire così :-) se fai una dichiarazione sotto - e accedi alla variabile sopra - il compilatore genererà un errore...
 
Aleksander:
si potrebbe dire così :-) se fai una dichiarazione sotto - e accedi alla variabile sopra - il compilatore genererà un errore...

Capito, grazie mille... Qualche consiglio sulle variabili di GV?
 

che dire di loro? - globale a livello di terminale?

memorizzano del tempo in un file variabile :-) la data di accesso, il nome e il valore di tipo doppio
 
PS - e anche - indirettamente :-) - è possibile memorizzare fino a 63 lettere in un nome di variabile - che sia russo o inglese...