A mudança do TF é um problema - página 8

 

Em resumo, a conclusão é a seguinte.

Contamos manualmente a diferença entre as barras contadas e não contadas, e se for mais de 1...

zeramos todos os amortecedores de uma só vez ou elemento por elemento.

Não é agradável. Talvez os desenvolvedores reiniciem tudo da mesma forma se houver uma condição?

 
Vasyl Nosal:

Em resumo, a conclusão é a seguinte.

Contamos manualmente a diferença entre as barras contadas e não contadas, e se for mais de 1...

zeramos todos os amortecedores de uma só vez ou elemento por elemento.

Não é agradável. Talvez os desenvolvedores reiniciem tudo da mesma forma se houver uma condição?

Vinte e cinco novamente :) . Nesse caso, por que você precisa de sua cabeça? É impossível prever todas as variantes de reação aos eventos. A escolha da variante está nos ombros do programador (embora, não haja nada a fazer aqui, duas linhas: verificar por ==0 e reagir).
 
Vasyl Nosal:

Em resumo, a conclusão é a seguinte.

Contamos manualmente a diferença entre as barras contadas e não contadas, e se for mais de 1...

zeramos todos os amortecedores de uma só vez ou elemento por elemento.

Não é agradável. Talvez os próprios desenvolvedores reiniciem os amortecedores se houver uma condição?

Novamente...! © :D E isto depois de todas as explicações com exemplos de como escrever indicadores corretamente? )))

 
Sergei Vladimirov:

O quê, de novo?!! © :D E isto depois de todas as explicações com exemplos de como escrever corretamente os indicadores? )))

Então. Na minha versão e na sua vai zerando, não?
 
Vasyl Nosal:
Então. Na minha variante e na sua há zeragem, não?

Na minha versão, cada barra é calculada. Se o valor tampão em tal barra for zero, ele se tornará zero, se for igual a 5, ele se tornará 5. No seu caso, você pode simplesmente anular os amortecedores através do ArrayInitialize() e depois não calcular aquelas barras onde o valor dos amortecedores deve permanecer nulo. Mas primeiro, este é um estilo de programação ruim (muito ruim!), e segundo, este é um caso especial.

Todas as barras devem ser calculadas explicitamente. Só assim você pode ter certeza de que não haverá "lixo", dados não calculados, etc. em nenhuma célula, e você não terá que pegar bugs (com os quais você lutou neste tópico).

E você também não precisa acompanhar as atualizações da história, é desnecessário. Basta iniciar o cálculo a partir de bar [taxas_total - MathMax(prev_calculated, 1)], e tudo estará sempre garantido de ser calculado e recalculado, se necessário.

 
Sergei Vladimirov:

Na minha versão, cada barra é calculada. Se o valor tampão em tal barra for zero, ele se tornará zero, se for igual a 5, ele se tornará 5. No seu caso, você pode simplesmente anular os amortecedores através do ArrayInitialize() e depois não calcular aquelas barras onde o valor dos amortecedores deve permanecer nulo. Mas primeiro, este é um estilo de programação ruim (muito ruim!), e segundo, este é um caso especial.

Todas as barras devem ser calculadas explicitamente. Só assim você pode ter certeza de que não haverá "lixo", dados não calculados, etc. em nenhuma célula, e você não terá que pegar bugs (com os quais você lutou neste tópico).

E você não precisa acompanhar as atualizações da história, é desnecessário. Basta iniciar o cálculo com bar [taxas_total - MathMax(prev_calculated, 1)], e sempre será garantido que tudo será calculado e recalculado, se necessário.

Ai. Ok.

De qualquer forma, os desenvolvedores não implementarão nada.

Obrigado a todos.