Erreurs, bugs, questions - page 1440
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Deuxièmement (j'ai peur de faire une erreur ici, j'espère qu'Alexander Puzanov pourra me corriger si nécessaire), si le programmeur décide pour une raison quelconque d'ajouter un élément avec l'indice 20 à un tableau dynamique, rien de mauvais ne se produira. Le tableau prendra cette dimension et y inscrira une valeur et initialisera les index "manquants" avec des valeurs nulles.
Exactement. Pourquoi "zéro" ? Peut-être devrait-il s'agir de EMPTY_VALUE ? Ou WRONG_VALUE ?
Le problème de ces affectations implicites est précisément leur nature implicite - le compilateur introduit du code, qu'un programmeur pense d'une certaine manière, alors qu'un autre pourrait penser différemment.
De plus, c'est inefficace - il n'est pas toujours nécessaire d'initialiser une variable immédiatement, et initialiser un grand tableau dans une boucle peut réduire considérablement la vitesse.
Et troisièmement, personne n'empêche le programmeur de contrôler la dimensionnalité et l'indice utilisé ! La seule différence est que maintenant il est obligé de le faire ! )))
Si le compilateur garde lui-même la trace de la dimension d'un tableau, aucune classe ne sera en mesure de nettoyer ce code. L'efficacité peut très bien baisser.
En même temps, si le compilateur ne s'occupe pas de cette tâche, le programmeur peut écrire une classe pour le faire et utiliser un tableau qui se développera et sera initialisé avec des zéros si nécessaire.
Dans le second cas, la flexibilité est plus élevée.
Ainsi, ce que vous proposez est également une bonne solution pour de nombreux cas. Mais cela peut diminuer l'efficacité, ce qui n'est pas bon.
Il s'agit, en principe, d'un exemple simple de la manière dont un tableau dynamique doit normalement être rempli. Je n'ai pas écrit en C depuis longtemps, je ne me souviens pas, mais c'est comme ça que les tableaux sont remplis en php ! Tout est logique et compréhensible. Si j'ajoute un élément à un tableau (arr[] = x), le tableau est automatiquement étendu, et l'élément est ajouté à la fin du tableau. Et nous n'avons pas besoin de l'étirer nous-mêmes, ni de spécifier l'index de l'élément nous-mêmes. Mais ici, nous devons faire des mouvements absolument inutiles :
la différence est évidente...
À mon avis, c'est étrange, pour ne pas dire plus. ))))
Les langages de programmation sont divisés en langages strictement typés et non typés. Vos PHP, R et autres langages fonctionnels font partie de ceux qui ne sont pas strictement typés. Dans les langages strictement typés comme MQL, C# et Java, ce type de manipulation ambiguë des données n'est pas autorisé. Et ceci est fait spécifiquement pour la sécurité du programmeur lui-même. Le typage strict implique que chacune de vos procédures soit extrêmement spécifique : "prendre un élément à l'indice 0 dans le tableau array" est une procédure spécifique et claire, mais vous proposez de la remplacer par "prendre quelque chose dans le tableau array et l'ajouter à ce que le compilateur décide de retourner en premier". - Vous convenez que vous n'irez pas loin avec ça.
D'un autre côté, bien sûr, nous voulons des constructions simples de haut niveau sans dimensionnement fastidieux des tableaux et sans réorganisation constante par l'utilisateur. C'est exactement ce à quoi sert la bibliothèque standard. Au lieu d'utiliser des tableaux de base, passez aux classes du groupe Array. Voici à quoi ressemble, par exemple, l'ajout de zéro à 16 dans le tableau CArrayInt :
Comme vous pouvez le constater, il n'y a rien de trop naturel. Et il n'est pas nécessaire de se creuser la tête pour connaître la taille actuelle du tableau et autres réarrangements. Tout est fait pour vous, dans le cadre d'une saisie stricte, et vous êtes invité à vous concentrer directement sur la tâche de l'utilisateur. C'est la puissance et l'intérêt de la POO.
L'enregistrement complet n'est pas disponible. Erreur de compilation
Je n'arrive pas à trouver où je me trompe.
La tâche consiste à trouver la valeur maximale et minimale d'un intervalle.
Mauvais ordre des arguments dans ArrayMaximum(), ArrayMinimum().
Je n'arrive pas à trouver où je me trompe.
La tâche consiste à trouver la valeur maximale et minimale d'un intervalle.
Fonctions
CopyHigh(_Symbol,0,2,Kol_Kan,HI) ;//copie des valeurs des maxima
CopyLow(_Symbol,0,2,Kol_Kan,LO) ; //copie des valeurs des minima
déjà redimensionné le tableau.
C'est inutile
ArrayResize(HI,Kol_Kan) ; //définir la taille du tableau
ArrayResize(LO,Kol_Kan) ;
Неправильный порядок аргументов в ArrayMaximum(), ArrayMinimum().
Exactement)) Et moi qui pensais...
Fonctions
CopyHigh(_Symbol,0,2,Kol_Kan,HI) ;//copie des valeurs des maxima
CopyLow(_Symbol,0,2,Kol_Kan,LO) ; //copie des valeurs des minima
déjà redimensionné le tableau.
C'est inutile
ArrayResize(HI,Kol_Kan) ; //définir la taille du tableau
ArrayResize(LO,Kol_Kan) ;
Je le saurai, merci.
L'auteur, en revanche, a déjà tout compris. ))
PabloEs:
Exactement.)) Et moi qui pensais...
Lorsque j'essaie de devenir un acheteur de signaux, il est dit que l'abonnement a échoué. quelle pourrait être la raison ?
dans le journal de bord :
2015.11.27 17:30:23.482 '100980' : Signal - error purchasing product [142893] - attempt to subscribe to foreign signal, broker enabled only own signals