Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Uma e a mesma função pode ser chamada tanto do início quanto do início. Isto deve ser corrigido.
Eu posso fazer isso com meus dedos, mas você tem que pensar bem ))
assim:
conte o número de funções, deixe ser 4, escreva #define X 4 no cabeçalho do código
assumir que o número máximo de chamadas em um tick é #define Y 100
temos uma matriz de tamanho 4 x 100, inicializar matriz = -1
e agora, ao chamar uma função no ponto de entrada da função, adicione uma chamada do contador (modelador gráfico), que deve adicionar o código (1,2,3 ou 4) à posição X desejada na entrada de nossa matriz na linha livre - quem chamou
Acho que seu problema é mais como gráficos de rede, suspeito que a matriz para gráficos de rede foi desenvolvida há muito tempo - você precisa ir ao Google
SZY: bem, aqui já está a 2ª página do tópico ;)
IgorM, a forma como você propõe armazenar gráficos é chamada de "matriz de adjacência". É muito antieconômico para gráficos esparsos (e os programadores devem ser espancados para uma arquitetura "gráfica totalmente conectada", etc.).
É muito melhor usar a lista de bordas (ou seja, armazenamos um conjunto unidimensional de estruturas que consiste em 2 elementos - id de função de chamada e id de função chamada; a estrutura pode ser complementada com campos adicionais - contadores de chamadas, etc.)
p.s. O matapparatus foi realmente desenvolvido há muito tempo :)
IgorM, a forma como você se propõe a armazenar o gráfico é chamada de "matriz adjacente".
Comprovação de impossibilidade para uma idéia ?
há destruidores e algo como desenrolar a pilha.
Embora... para o mesmo C++ há bibliotecas que permitem construir a ordem das chamadas de função para qualquer
ponto em código por pilha.
.
Portanto... cada retorno significa chamadas adicionais :-).
Uma árvore é um caso especial de um gráfico.
Sim, era isso que eu queria dizer. Com base na linearidade do código MQL - será uma árvore em sua forma pura. Uma vez que os nós não apontam um para o outro.
IgorM:
ter uma matriz de dimensão 4 x 100, inicializar a matriz = -1
e agora quando chamamos a função no ponto de entrada da função adicionamos uma chamada do contador (modelador gráfico) que deve adicionar um código (1,2,3 ou 4) na posição X requerida na linha livre na entrada de nossa matriz - quem a chamou
Sim, vejo isso agora. Mas me parece que esta abordagem é realmente trabalhosa, não tanto em código, mas em recursos e preparação para análise. Para a ramificação, você teria que fazer uma matriz tridimensional.
Em geral, a opção é aceita. Mas vamos deixar isso para a página 4 no resumo, por enquanto :)
Eu acho que seu problema é mais como gráficos de rede, eu suspeito que o aparelho matemático para gráficos de rede foi desenvolvido há muito tempo - você precisa ir ao Google
A tarefa não é nem um know-how, nem uma novidade. Apenas um simples gráfico de funções. Nada mais.
Não há nova matemática, apenas precisamos de uma versão simplificada, tanto quanto possível.
É muito melhor usar a lista de borda (ou seja, armazenamos um conjunto unidimensional de estruturas composto por 2 elementos - id de função de chamada e id de função chamada; a estrutura pode ser complementada com campos adicionais - contadores de chamadas, etc.)
Eugene, isto é exatamente o que já foi feito.
Mas o código estagnou. Pelo terceiro dia eu não consigo dormir ou beber.... . :)
Não consigo descobrir como fazer o retorno da borda (mais precisamente o nó descendente) para o nó pai para ir para a nova borda (novo nó descendente). Mas para manter a regra - usamos apenas uma função de rastreamento no início da função do código fonte.
Não consigo descobrir como fazer um retorno de uma costela a um nó para ir a um novo ramo.
E todos com apenas uma função que já fez um passe para a frente? Já é suficiente - voltar sem fazer nada)) Bem, nada, é a segunda página já terminou, logo Vladimir não será capaz de suportar))))
Deus esteja com eles, com estas páginas. A tarefa é interessante.
Veja, é assim que você pode.... O recuo para o nó pai já pode ser feito no novo chamado descendente. Ou seja, quando você vai ao descendente, o sistema primeiro descerá a árvore para um nível inferior, e depois subirá para o novo descendente chamado descendente.
Mas nesta versão você não pode fazer ramos com mais de dois de profundidade. Porque o sistema sempre voltará antes de seguir adiante. Ou seja, todas as funções serão desenhadas no mesmo nível.
Portanto, pensa-se que teremos que usar algumas matrizes de variáveis, para identificar a posição atual. para seguir em frente, em vez de retornar. Essa é exatamente a complexidade desse retorno...
Na "peça conceitual" do trailer, mais precisamente um exemplo de implementação. no MT 5
As funções In() e Out() precisam ser reescritas para fazê-las funcionar com a lista de chamadas. Agora eles apenas imprimem entradas e saídas na rosca padrão.
Más notícias: Não salvei o sonho do iniciante do tópico de uma função de rastreamento. Desculpe, Sergeyev. :)
Boas notícias: Tudo funciona.
Manual do usuário.
1. A macro "_in" é inserida no início de cada função.
2. Todas as chamadas de retorno são substituídas por "_retorno".
3. Duas definições estão escritas no início do programa
#define _in in(__FUNCTION__);
#define _return out(__FUNÇÃO__); retornar
Isso é tudo.
Que se lixe estas páginas. É uma tarefa interessante.
Veja, é assim que você pode.... O recuo para o nó pai já pode ser feito no novo chamado descendente. Ou seja, quando você vai ao descendente, o sistema primeiro descerá a árvore para um nível inferior, e depois subirá para o novo descendente chamado descendente.
Mas nesta variante não se pode fazer galhos com mais de duas profundidades. Porque o sistema sempre voltará antes de seguir adiante. Ou seja, todas as funções serão desenhadas no mesmo nível.
Portanto, parece que teremos que usar alguns conjuntos de variáveis, para identificar a posição atual. para ir mais longe e não para retornar. Essa é exatamente a dificuldade desse retorno...