Ce que j'aimerais obtenir du "terminal" en tant que programmeur professionnel. Un autre fil de discussion avec des souhaits pour MQL5. - page 6

 
Korey писал (а) >>
environ un quart des algorithmes numériques utilisent le goto, qu'en est-il si un algorithme est essayé, approuvé, testé, mais qu'il ne peut être
à MT sans goto ?

Placez la fonctionnalité dans une dll ou supprimez goto.

Je me demande toujours de quels algorithmes vous parlez.

 

Je rejoins Korey. Personne n'a vu d'algorithmes astucieux implémentés avec goto ? Toute cette hystérie de goto n'est qu'une sorte de religion plutôt qu'un besoin réel. Un codeur compétent peut écrire un code clair et précis avec goto également et il peut être plus lisible qu'un code équivalent avec des sauts conditionnels.

P.S. Il semble que Wirth lui-même, qui a critiqué le goto, l'ait quand même laissé dans son cerveau. Et dans le C++, "le plus structuré des langages structurés", le goto ne semble pas avoir disparu. Je n'accepte pas l'objection de la rétrocompatibilité avec le C.

 
TheXpert писал (а) >>

En fait, l'utilisation de goto est un mauvais style de programmation et dans 99% des cas, le code avec goto peut être remplacé par un code similaire avec des instructions conditionnelles existantes.

Je ne suis pas d'accord.

Vous pouvez le réécrire. Mais on peut aussi dire que l'absence de goto dans un langage est un mauvais style et que 99% du code peut être réécrit en fonction de son utilisation.

Par exemple, il me manquait vraiment goto pour sortir des structures if-else imbriquées complexes avec des boucles. Si, quelque part dans la structure, la nécessité d'une analyse de sortie est calculée, je dois écrire une analyse supplémentaire des drapeaux de sortie pour toutes ces pièces jointes, ce que je trouve peu pratique. Cela surcharge le code. Il est beaucoup plus facile de se souvenir de l'état du drapeau et d'aller en dehors de l'analyse.

Il n'est pas nécessaire de passer à la marque. Il en a déjà été question. Nous pourrions le passer derrière un bloc externe (nommé) (opérateur, boucle - tout ce qui a un corps entre accolades).

 

Eh bien, SK. a déjà écrit ce que je voulais demander au zélateur du style correct (par exemple, sortir de la profondeur d'un quintuple if-else imbriqué).

 
TheXpert писал (а) >>

Remplir la fonctionnalité dans une dll ou supprimer goto.

Je me demande toujours de quels algorithmes vous parlez.

il s'agit de Fortran comme source principale de méthodes numériques.
Tout ce qu'il contient est testé et approuvé par l'association américaine des ingénieurs.
et il n'y a aucun problème ici - nous travaillons avec des DLL et c'est tout)))
et comme si c'était le cas - vous voulez insérer directement dans le code MQ, mais vous devez passer par l'algorithme, ce qui prend beaucoup de temps.

P.S. et surtout dangereux.

 
Mathemat писал (а) >>

Je rejoins Korey. Personne n'a vu d'algorithmes astucieux implémentés avec goto ? Toute cette hystérie de goto n'est qu'une sorte de religion plutôt qu'un besoin réel. Un codeur compétent peut écrire un code clair et propre avec goto également et il peut être plus lisible que le code équivalent avec des sauts conditionnels.

P.S. Il semble que Wirth lui-même, qui a critiqué le goto, l'ait quand même laissé dans son cerveau. Et dans le C++, "le plus structuré des langages structurés", le goto ne semble pas avoir disparu. Objections à

Je n'accepte pas la rétrocompatibilité avec le C.

Je ne vais pas être en désaccord. C'est vrai.

SK. a écrit (a) >>

Je ne suis pas d'accord.

Il est possible de le réécrire. Mais on pourrait aussi dire que l'absence de goto dans le langage est un mauvais style et que 99% du code peut être réécrit en fonction de son utilisation.

Par exemple, il me manquait vraiment goto pour sortir des structures if-else imbriquées complexes avec des boucles. Si, quelque part dans la structure, la nécessité d'une analyse de sortie est calculée, je dois écrire une analyse supplémentaire des drapeaux de sortie pour toutes ces pièces jointes, ce que je trouve peu pratique. Cela surcharge le code. Il est beaucoup plus facile de se souvenir de l'état du drapeau et d'aller en dehors de l'analyse.

Il n'est pas nécessaire de passer à la marque. Il en a déjà été question. Nous pourrions passer à l'extérieur du bloc (nommé) (opérateur, boucle - tout ce qui a un corps entre accolades).

La pause ne fonctionnerait pas ?


En somme, chacun a son propre style et sa propre compréhension, et c'est tout.

SK. Si vous rencontrez des problèmes à ce sujet, veuillez me contacter, je vous aiderai, dans la limite du temps disponible.

 
TheXpert писал (а) >> Break ne fera pas l'affaire ?

Ceci n'est valable que pour les boucles ou le switch (d'ailleurs, une construction pas très nécessaire, qui peut tout aussi élégamment être remplacée par une chaîne if...else). Tout est relatif.

 
TheXpert писал (а) >>

Break ne ferait pas l'affaire ?

D'une manière générale - chacun a son propre style et sa propre compréhension, fermons le sujet à ce stade.

SK. Si vous avez des problèmes avec elle, je vous aiderai si j'ai le temps.

Une pause ne suffira pas. Il a un effet limité.

Et vous ne devez pas être impoli.

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

Et tu ne devrais pas être impolie.

Je ne le pensais pas.

 
Korey писал (а) >>

il s'agit de Fortran comme source principale de méthodes numériques.
tout ce qu'il contient est testé et approuvé par l'association américaine des ingénieurs.
et ici il n'y a pas de problème - nous travaillons avec des DLL et c'est tout)))
et comme s'il existait - vous voulez insérer directement dans le code MQ, mais vous devez réécrire l'algorithme, ce qui prend beaucoup de temps.

P.S. Et surtout, c'est dangereux.

Fortran, il y avait goto. Mais cela n'a rien à voir avec l'efficacité des méthodes numériques. Dans MatLab, il est implémenté autant (voire plus) et il n'y a pas de goto. Goto a une histoire qui remonte au style de programmation du langage assembleur (move to label). L'apparente simplicité de cet opérateur est trompeuse. Supposons qu'il y ait cinq pièces jointes si else. Et va à là où il faut et c'est tout, mais ensuite il y a les variables locales et globales, la pile, les pointeurs, les tableaux, etc. Que faire d'eux ? Implémenter une sortie correcte de pièces jointes en assembleur, en tenant compte de toutes les erreurs imaginables ((. Il est difficile de trouver comment le faire correctement, même en langage de haut niveau, alors qu'en assembleur, c'est un véritable gâchis.

Si j'étais le développeur, j'essaierais de faire en sorte que MQL5 permette de joindre des programmes écrits en MathCad(MatLab). Ce serait simple et facile (et pas la main droite sur l'oreille gauche). Cela représente des milliards d'heures de travail économisées + un pas de géant dans la capacité à traiter les données. Pour donner cette capacité, et l'effort principal pour améliorer le terminal