O que eu gostaria do "terminal" como programador profissional. Outro fio com desejos para a MQL5. - página 6

 
Korey писал (а) >>
cerca de um quarto dos algoritmos numéricos usam goto, que tal se um algoritmo for testado, aprovado, testado, mas não pode ser
para a MT sem goto?

Encher a funcionalidade em uma dll ou remover goto.

Ainda estou me perguntando de que algoritmos você está falando.

 

Eu me junto a Korey. Ninguém viu nenhum algoritmo de alto nível implementado com o goto? Toda essa histeria é apenas um tipo de religião, e não uma necessidade real. Um codificador competente pode escrever um código claro e preciso também com goto e pode ser mais legível do que um código equivalente com saltos condicionais.

P.S. Parece que o próprio Wirth, que criticou o goto, o deixou na sua cabeça de qualquer maneira. E em C++, "os idiomas mais estruturados", goto parece não ter desaparecido. Eu não aceito a objeção de compatibilidade retroativa com a C.

 
TheXpert писал (а) >>

Na verdade, usar goto é um estilo de programação ruim e em 99% dos casos o código com ele pode ser substituído por um semelhante com declarações condicionais existentes.

Eu discordo.

Você pode reescrevê-lo. Mas você também pode dizer que a ausência de goto em uma língua é um estilo ruim e 99% do código pode ser reescrito com base em seu uso.

Eu, por exemplo, realmente perdi o goto para sair de estruturas complexas aninhadas se-else com laços. Se em algum lugar profundo da estrutura for calculada a necessidade de análise de saída, tenho que escrever uma análise adicional das bandeiras de saída para todos esses anexos que considero inconvenientes. Ele sobrecarrega o código. É muito mais fácil lembrar o estado da bandeira e ir para fora da análise.

Não tem que passar à marca. Já estava sendo discutido. Poderíamos passá-lo atrás de um bloco externo (chamado) (operador, laço - o que quer que tenha um corpo em aparelho encaracolado).

 

Bem, a SK. já escreveu exatamente o que eu queria pedir ao zelota do estilo correto (por exemplo, sair da profundidade de um ninho quíntuplo se-else).

 
TheXpert писал (а) >>

Encher a funcionalidade em uma dll ou remover goto.

Ainda estou me perguntando de que algoritmos você está falando.

Trata-se da Fortran como a principal fonte de métodos numéricos.
Tudo nele é testado e aprovado pela associação americana de engenheiros.
e aqui não há problema - trabalhamos com DLL e pronto))))
e como se isso acontecesse - você quer inserir diretamente no código MQ, mas você tem que lavrar através do algoritmo, o que consome bastante tempo.

P.S. e o mais importante: perigoso.

 
Mathemat писал (а) >>

Eu me junto a Korey. Ninguém viu nenhum algoritmo de alto nível implementado com o goto? Toda essa histeria é apenas um tipo de religião, e não uma necessidade real. Um codificador competente pode escrever um código claro e limpo também com goto e pode ser mais legível do que o código equivalente com saltos condicionais.

P.S. Parece que o próprio Wirth, que criticou o goto, o deixou na sua cabeça de qualquer maneira. E em C++, "os idiomas mais estruturados", goto parece não ter desaparecido. Objeções a

Não aceito nenhuma compatibilidade retroativa com a C.

Eu não vou discordar. É isso mesmo.

SK. escreveu (a) >>

Eu discordo.

É possível reescrevê-lo. Mas você também poderia dizer que a falta de goto no idioma é um mau estilo e 99% do código pode ser reescrito com base em seu uso.

Eu, por exemplo, realmente perdi o goto para sair de estruturas complexas aninhadas se-else com laços. Se em algum lugar profundo da estrutura for calculada a necessidade de análise de saída, tenho que escrever uma análise adicional das bandeiras de saída para todos esses anexos que considero inconvenientes. Ele sobrecarrega o código. É muito mais fácil lembrar o estado da bandeira e ir para fora da análise.

Não tem que passar à marca. Já estava sendo discutido. Poderíamos passar fora do bloco (nomeado) (operador, loop - o que quer que tenha um corpo dentro de um aparelho encaracolado).

A pausa não funcionaria?


Em resumo, cada um tem seu próprio estilo e compreensão, e isso é o fim da questão.

SK. Se você tiver algum problema com isso, por favor, entre em contato comigo, eu o ajudarei, sujeito à disponibilidade de tempo.

 
TheXpert писал (а) >> A pausa não serve?

Isto é apenas para laços ou interruptores (a propósito, não é uma construção muito necessária, que pode ser substituída com a mesma elegância por uma cadeia de se...outra cadeia). Tudo é relativo.

 
TheXpert писал (а) >>

A pausa não serviria?

De modo geral - cada um tem seu próprio estilo e compreensão, vamos encerrar o assunto neste ponto.

SK. Se você tiver algum problema com isso, eu o ajudarei, se eu tiver tempo.

O intervalo não serve. Tem um efeito limitado.

E você não deve ser mal-educado.

 
SK. писал (а) >>

E você não deve ser mal-educado.

Eu não pensava assim.

 
Korey писал (а) >>

Trata-se da Fortran como a principal fonte de métodos numéricos.
tudo nele é testado e aprovado pela associação americana de engenheiros.
e aqui não há problema - nós trabalhamos com DLL e pronto))))
e como se ele existisse - você quer inserir diretamente no código MQ, mas tem que lavrar através do algoritmo, o que consome bastante tempo.

P.S. E o mais importante, é perigoso.

Fortran, havia o goto. Mas não tem nada a ver com a eficiência dos métodos numéricos. No MatLab ele é implementado tanto (ainda mais) e não há como ir para lá. Goto tem uma história que remonta ao estilo de programação da linguagem assembly (mudar para etiqueta). A aparente simplicidade deste operador é enganosa. Suponha que haja cinco se anexos mais. E foi para onde você precisa e é isso, mas depois há variáveis locais e globais, pilha, ponteiros, arrays, etc. O que fazer com eles? Implementar a saída correta de anexos em assembler, levando em conta todos os erros imagináveis ((. É difícil descobrir como fazê-lo corretamente mesmo em linguagem de alto nível, enquanto que em assembler é uma verdadeira confusão.

Se eu fosse o desenvolvedor, tentaria fazer com que a MQL5 permitisse anexar programas escritos em MathCad(MatLab). Seria simples e fácil (e não a mão direita na orelha esquerda). Isso representa bilhões de horas-homem economizadas + um passo gigantesco na capacidade de processar dados. Para dar essa capacidade, e o principal esforço para melhorar o terminal

Razão: