Erros, bugs, perguntas - página 594

 
Interesting:

Os criadores irão, em qualquer caso, pedir para localizar tudo, criar uma aplicação para o RS, juntar um perito e descrever tudo com o máximo de detalhe possível.

Eles são os criadores (já os conhecem) e os telepatas estão hoje a ter um descanso. :)

Tudo bem)). Agora vou localizá-lo)).

A telepatia não tem nada a ver com isso. A questão é que um erro deste tipo ocorre pela primeira vez, e pensei que ocorresse em alguns casos específicos, e posso pelo menos aconselhar sobre o fórum em que pode ocorrer, e depois eu próprio o resolverei.

Isto é, gostaria de saber, em que casos ocorre a violação do Access write (0x-code) e Access violation read (0x-code)? Há cerca de um mês que não toco neste programa. Isto significa que esta questão pode ter começado a ocorrer após alguma construção. Talvez os programadores tenham apertado os controlos e agora precisam de escrever o código de forma mais correcta. Apenas onde procurar por um erro em ~20 000 linhas de código? )))

 
tol64:

Está tudo bem)). Vou localizá-lo agora)).

A telepatia não tem nada a ver com isso. O que se passa é que este tipo de erro ocorre da primeira vez, e pensei que ocorresse em alguns casos específicos, e posso pelo menos sugerir no fórum, em que casos pode ser, e depois tratarei eu próprio do assunto.

Isto é, gostaria de saber, em que casos ocorre a violação do Access write (0xcode) e Access violation read (0xcode )? Há cerca de um mês que não toco neste programa. Isto significa que esta questão começou a ocorrer após alguma construção. Talvez os programadores tenham apertado os controlos e agora precisam de escrever o código de forma mais correcta. Apenas onde procurar por um erro em ~20 000 linhas de código? )))

Tente convertê-lo em C e o erro será encontrado por si só. E em geral - com tais projectos é a única forma de escrever, se não quiser problemas no futuro. Infelizmente, eu próprio o compreendi demasiado tarde e agora estou a reescrevê-lo :)
 

Cavalheiros, por favor aconselhem qual é uma forma compacta (talvez existam funções) de identificar o maior/pequeno valor de um dos amortecedores existentes? Não só identificar, mas também determinar o que é o amortecedor com o maior/pequeno valor.

Suponha que temos 4 amortecedores, então a coisa mais simples que nos vem à mente é comparar primeiro o primeiro com os outros (como if(one[0]<two[0] && one[0]<three[0]&& ...etc.). Se for falso, então compare o segundo da mesma forma e assim por diante. Mas isto é um pouco incómodo.

 
Cmu4:

Cavalheiros, por favor aconselhem qual é uma forma compacta (talvez existam funções) de identificar o maior/pequeno valor de um dos amortecedores existentes? Não só identificar, mas também determinar o que é o amortecedor com o maior/pequeno valor.

Suponha que temos 4 amortecedores, então a coisa mais simples que nos vem à cabeça é primeiro comparar o primeiro com os outros (como if(one[0]<two[0] && one[0]<three[0]&& ...etc.), depois comparar o segundo da mesma forma e assim por diante. Mas isto é um pouco incómodo.

ArrayMinimum retorna o índice do valor mínimo do array, da mesma forma que o ArrayMaximum funciona.

Se quiser comparar vários amortecedores, pode obter os valores extremos e depois compará-los usando se ou fmin, fmax.

 
Cmu4:
Acha que este método requer menos recursos do que a simples força bruta que escrevi acima?

Nem pensar,

embora não, se as matrizes a serem pesquisadas tiverem 3-4 barras e as matrizes forem 2-3, será mais rápido.

 
Urain:

ArrayMinimum retorna o índice do valor mínimo do array, e o ArrayMaximum funciona de forma semelhante.

Se quiser comparar vários amortecedores, pode obter valores extremos e depois compará-los usando se ou fmin, fmax.

Acabei de ler as descrições das funções...

O ArrayMinimum é outro exemplo, pois preciso de comparar o valor de 0 barra e não preciso de pesquisar o histórico da matriz.

fmin só compara dois amortecedores, qual é o objectivo? Também posso utilizar a norma se. Mas, depois, há muitas condições... 4 complexos para o mínimo e o mesmo número para o máximo.

 
Cmu4:

Agora li a descrição da função...

ArrayMinimum é de outra direcção - pois preciso de comparar o valor de 0 barra, e não preciso de procurar o histórico da matriz.

fmin só compara dois amortecedores, qual é o objectivo? Também posso utilizar a norma se. Mas, depois, há muitas condições... 4 complexos para o mínimo e o mesmo número para o máximo.

fmin não está a comparar buffers, mas sim a comparar dois valores.

Agora que a sua tarefa é clara, precisa de encontrar um extremo entre valores paralelos de diferentes amortecedores.

Agora responda, precisa disto apenas para valores zero ? ou precisa de repetir esta acção para muitos valores paralelos ?

 
Urain:

fmin não está a comparar buffers, mas sim dois valores.

Agora que a sua tarefa é clara, precisa de encontrar o extremo entre os valores paralelos dos diferentes amortecedores.

Agora responda se precisa disto apenas para valores zero ? ou esta acção precisa de ser repetida para muitos valores paralelos ?

É necessário um Consultor Especialista que negoceie a partir do mercado. Assim, precisamos de comparar os valores de todos os amortecedores na barra actual.

Aqui está uma imagem do indicador, na barra de zero da qual é necessário encontrar o tampão máximo e mínimo:

 
Cmu4:

Isto é necessário para uma EA que negoceia a partir do mercado. Por conseguinte, os valores de todos os amortecedores na barra actual devem ser comparados.

Aqui está uma imagem do indicador, na barra de zero da qual é necessário encontrar o tampão máximo e mínimo:

É mais fácil, então, atribuir por ordem todos os valores zero de amortecedores numa matriz (pode mesmo definir estaticamente, porque o número de amortecedores é conhecido antecipadamente) e aplicar as funções ArrayMinimum ArrayMaximum a esta matriz sumária, o resultado será o número de série do amortecedor na ordem de atribuição.
 
Urain:
Depois é simples, atribuir por ordem todos os valores nulos de amortecedores num único conjunto (pode mesmo defini-lo estaticamente, uma vez que o número de amortecedores é conhecido antecipadamente) e aplicar a função ArrayMinimum ArrayMaximum a este conjunto sumário, como resultado obterá o número de amortecedores por ordem de atribuição.
Obrigado, serve! :)