Cambiare il TF è un problema - pagina 8

 

In breve, la conclusione è questa.

Contiamo manualmente la differenza tra barre contate e non contate, e se è più di 1...

resettiamo tutti i buffer in una volta sola o elemento per elemento.

Non è bello. Forse gli sviluppatori resetteranno tutto lo stesso se c'è una condizione?

 
Vasyl Nosal:

In breve, la conclusione è questa.

Contiamo manualmente la differenza tra le barre contate e non contate, e se è più di 1...

resettiamo tutti i buffer in una volta sola o elemento per elemento.

Non è bello. Forse gli sviluppatori resetteranno tutto lo stesso se c'è una condizione?

Ancora venticinque :) . In questo caso, perché hai bisogno della tua testa? È impossibile prevedere tutte le varianti di reazione agli eventi. La scelta della variante è sulle spalle del programmatore (anche se qui non c'è niente da fare, due righe: controllare per ==0 e reagire).
 
Vasyl Nosal:

In breve, la conclusione è questa.

Contiamo manualmente la differenza tra barre contate e non contate, e se è più di 1...

resettiamo tutti i buffer in una volta sola o elemento per elemento.

Non è bello. Forse gli sviluppatori resetteranno da soli i buffer se c'è una condizione?

Ancora?! © :D E questo dopo tutte le spiegazioni con esempi come scrivere indicatori correttamente? )))

 
Sergei Vladimirov:

Cosa, ancora?!! © :D E questo dopo tutte le spiegazioni con esempi di come scrivere correttamente gli indicatori? )))

Quindi, nella mia versione e nella tua si azzera, no?
 
Vasyl Nosal:
Allora, nella mia variante e nella tua c'è l'azzeramento, no?

Nella mia versione, ogni barra è calcolata. Se il valore del buffer su tale barra dovesse essere zero, diventerà zero, se dovesse essere uguale a 5, diventerà 5. Nel tuo caso, puoi semplicemente annullare i buffer attraverso ArrayInitialize() e poi non calcolare quelle barre in cui il valore dei buffer dovrebbe rimanere nullo. Ma primo, questo è un cattivo stile di programmazione (molto cattivo!), e secondo, questo è un caso speciale.

Tutte le barre devono essere calcolate esplicitamente. Solo in questo modo puoi essere sicuro che non ci saranno "spazzatura", dati non calcolati, ecc. in nessuna cella, e non dovrai catturare i bug (con cui hai lottato in questo thread).

E non c'è nemmeno bisogno di tenere traccia degli aggiornamenti della storia, non è necessario. Basta iniziare il calcolo dalla barra [rates_total - MathMax(prev_calculated, 1)], e tutto sarà sempre garantito per essere calcolato e ricalcolato, se necessario.

 
Sergei Vladimirov:

Nella mia versione, ogni barra è calcolata. Se il valore del buffer su tale barra dovesse essere zero, diventerà zero, se dovesse essere uguale a 5, diventerà 5. Nel tuo caso, puoi semplicemente annullare i buffer attraverso ArrayInitialize() e poi non calcolare quelle barre in cui il valore dei buffer dovrebbe rimanere nullo. Ma primo, questo è un cattivo stile di programmazione (molto cattivo!), e secondo, questo è un caso speciale.

Tutte le barre devono essere calcolate esplicitamente. Solo in questo modo puoi essere sicuro che non ci saranno "spazzatura", dati non calcolati, ecc. in nessuna cella, e non dovrai catturare i bug (con cui hai lottato in questo thread).

E non c'è bisogno di tenere traccia degli aggiornamenti della storia, non è necessario. Basta iniziare il calcolo con la barra [rates_total - MathMax(prev_calculated, 1)], e tutto sarà sempre garantito per essere calcolato e ricalcolato se necessario.

Ahi. Ok.

Gli sviluppatori non implementeranno nulla comunque.

Grazie a tutti.