OLP - página 4

 
mrProF:

O meu erro - "Não há tarefa que possa ser escrita em OOP e não pode ser escrita sem OOP".


Foi assim que o entendi, por alguma razão.
 
Tente implementar listas, árvores, gráficos em MQL4. Isto não é possível. Na MQL5 é fácil de fazer; nem sequer tem de reinventar a roda, pode encontrar o código em С++ e utilizá-lo com o mínimo de retrabalho. E, claro, os tipos que mencionei como exemplo são melhor concebidos como aulas. Redes neurais, lógica fuzzy e muitas outras coisas podem agora ser implementadas na MQL5. Mas não há dúvida que cada instrumento deve ser adequado para a tarefa a ser resolvida, e o OOP deve ser utilizado apenas quando necessário. Os gritos daqueles que repreendem novas características são ridículos. Se não gostar, não o utilize, ninguém o está a forçar a usá-lo. Utilizar programação funcional.
 
FoxRex:
Tente implementar listas, árvores, gráficos em MQL4. Isto não é possível. Na MQL5 é fácil de fazer, nem sequer é preciso reinventar a roda, basta encontrar algum código em С++ e utilizá-la com o mínimo de retrabalho. E, claro, os tipos que mencionei como exemplo são melhor concebidos como aulas. Redes neurais, lógica fuzzy e muitas outras coisas podem agora ser implementadas na MQL5. Mas não há dúvida que cada instrumento deve ser adequado para a tarefa a ser resolvida, e o OOP deve ser utilizado apenas quando necessário. Os gritos daqueles que repreendem novas características são ridículos. Se não gostar, não o utilize, ninguém o está a forçar a usá-lo. Utilizar programação funcional.

Não confunda "impossível" com "difícil", não há tarefa que não possa ser resolvida por programação processual e que ao mesmo tempo possa ser resolvida por OOP, refiro-me à funcionalidade final do programa...
E, em geral, pode escrever em linguagem de montagem, pode relaxar, pode servir pronto a fazer :)

O OOP baseia-se na mesma programação processual com isolamento adicional de dados e funções.
Por exemplo, demora mais tempo a escrever um programa "Olá mundo!" usando OOP, mas é mais rápido escrever um grande projecto. A linha entre a escolha de escrever ou não OOP é muito ténue e depende da experiência, propósito e preferências do programador.
Pessoalmente, para mim é mais conveniente escrever OOP na maioria dos casos, porque conheço os seus "gargalos" e "larguras" e tenho experiência em programação OOP (C++, JavaScript, PHP).
Mas se eu escrever um pequeno guião de teste, não uso o OOP.

Conselhos: antes de mudar para OOP em problemas do mundo real, deve praticar em exemplos simples, por exemplo, para escrever uma aula que acrescentará dois números, etc.
É improvável que consiga ler num livro sobre OOP e começar a programar nele programas sérios sem praticar.
Tem de se habituar, começar a pensar em termos de OOP, ver o que tem de conceber como uma classe e o que não tem de conceber.

 
Listas, árvores, gráficos, não é possível ter apontadores em MQL4.
 
FoxRex:
Listas, árvores, gráficos, não é possível ter apontadores em MQL4.

Note-se que isto é uma implementação, não um resultado.
Estamos a programar para o resultado (programa) ou para a implementação do programa?
Podemos prescindir de todos estes métodos e organizá-los em arrays e passagem de valores.
É complicado, demorado, mas possível.

 
mrProF:

Note-se que isto é uma implementação, não um resultado.
Estamos a programar para o resultado (programa) ou para a implementação do programa?
Pode prescindir de todos estes métodos e organizá-los em arrays e passagem de valores.
É complicado, demorado, mas possível.

Os "nascidos" na era do Windows e do OOP não conseguem compreender DOS e C / Turbo Pascal (já para não falar de Asm)...

IMHO, claro, mas....

 
Interesting:

Aqueles que "nasceram" na era do Windows e do OOP não conseguem compreender o que são DOS e C / Turbo Pascal (já para não falar de Asm)...

IMHO, claro, mas....

Para os biscoitos compreenderem o que é o asm :)
Tem de tentar tudo para variar, porque o programador pode resolver um problema de várias maneiras ao mesmo tempo :)
Mas depurar um programa em Asm é deprimente :)
 
mrProF:

Note-se que isto é a implementação, não o resultado.
Estamos a programar para o resultado (o programa) ou para a implementação do programa?
É possível prescindir de todos estes métodos e organizar-se em arrays e passagem de valores.
É complicado, demorado, mas possível.

Concordo que o podemos fazer de facto, desde que a matriz seja dinâmica. Mas concorda que esta não é uma solução muito elegante. É mais fácil de o fazer em assembler. E o OPP nasceu antes do Windows. E as suas ideias ajudaram-me a programar em linguagem de montagem para MS/CT. E o meu primeiro livro de programação foi o livro de três volumes de Knuth.
 
FoxRex:
Concordo, pode ser feito, desde que a matriz seja dinâmica. Mas deve concordar que não é uma solução muito elegante. É mais fácil de fazer em assembler. Mas a OPP nasceu antes do Windows. E as suas ideias ajudaram-me a programar em linguagem de montagem para MS/CT. E o meu primeiro livro de programação foi o livro de três volumes de Knuth.
Concordo.
Então, pensando bem - "O OOP é conveniente" :)

E também: "Se não se sente confortável com o OOP, não o utilize" :)

Dois conceitos simples...

 
mrProF:

OOP é uma coisa boa para grandes programas.
Se o código for inferior a 50 linhas, não precisa de OOP.
Mas quando o código se torna muito grande, é quase impossível compreender o que pertence a quê, apenas através de comentários.
A probabilidade de um erro aumenta quando as variáveis não são partilhadas como pretendido; é uma confusão.
No OOP, as variáveis podem ser armazenadas dentro de um contentor (classe) juntamente com métodos (funções).

Não há tarefa que possa ser escrita no OOP e não pode ser escrita sem o OOP.
É uma questão de conveniência))

O OOP não é um método de resolução de problemas, mas uma forma de estruturação de códigos.

É necessário utilizar o OOP se o programa se tornar maior do que "Olá palavra".

Em geral, conheço a MQL4 há vários anos e não posso deixar de me espantar com a sua miséria. O quarto MQL está tão distante como uma estrela das capacidades do clássico C. Na MQL5, os criadores decidiram avançar. O número de características aumentou e a programação tornou-se mais fácil. A linguagem tornou-se mais complexa, sim, mas o produto não foi criado para estudantes da escola.

Razão: