Erreurs, bugs, questions - page 3149

 
TheXpert #:
Quelle différence cela fait-il ? Peut-il être inférieur à zéro ?

Oui, j'ai (ajouté au message précédent)

 
Artyom était le seul à comprendre le problème.
Mais apparemment, ce problème est éternel.
Et maintenant, il n'y a que des "si".
 
Roman #:
Seul Artyom a compris le problème.
Mais apparemment, ce problème est éternel.
Et maintenant, il n'y a que des "si".

Non, je n'ai pas compris. Clarifier ce que j'ai compris...

 
Vladimir Karputov #:
   int limit=prev_calculated-1;
   if(prev_calculated==0)
      limit=0;
   for(int i=limit; i<rates_total; i++)
     {
      CloseBuffer[i]=close[i];
     }

l'opérateur ternaire semble plus laconique (IMHO)

int limit = prev_calculated==0 ? 0: prev_calculated-1;

De plus, comme je l'ai dit, que se passe-t-il si quelque chose se passe mal et que prev_calculé s'avère être plus élevé que rates_total.
J'ai rencontré une telle situation, lorsque les barres maximales dans la fenêtre sont != illimitées, mais par exemple, 50000. Dans ce cas, la taille du tableau de barres augmenterait de 1 à chaque nouvelle barre, mais à un moment donné, elle redeviendrait 50000. Je ne suis pas la logique. Je l'ai attrapé il y a quelques années. Je dois le vérifier maintenant. Je vais mettre en place un déblocage sur mon VPS.

 
Artyom Trishkin #:

Non, je ne l'ai pas eu. Clarifier ce que j'ai compris...

Ce qui pour l'instant ne fonctionne pas comme avant

limit==0
pour les ticks i>=0
pour les barres i>0

Vous avez tout écrit correctement ci-dessus,
seulement pour la nouvelle barre mal impriméefor(int i=limit ; i>=0 ; i--)
l'opérateur = n'est pas nécessaire ici, mais il est probablement dans le passé,
à moins qu'ils ne retournent le comportement précédent
.

 
Roman #:

Ce qui pour l'instant ne fonctionne pas comme avant

limit==0
pour les ticks i>=0
pour les barres i>0

Vous avez tout écrit correctement ci-dessus,
seulement pour la nouvelle barre c'est mal impriméfor(int i=limit ; i>=0 ; i--)
ici l'opérateur = n'est pas nécessaire, mais il doit être déjà dans le passé,
sinon retourner le comportement précédent
.

Encore une fois, je ne comprends rien. Qu'est-ce qu'il y a de mal à ça ? Tout semble être comme avant.

 
Artyom Trishkin #:

Je ne l'ai plus. Qu'est-ce qu'il y a de mal à ça ? Tout semble être comme avant.

Avec cette conception.

int limit = rates_total-prev_calculated;

for(int i=limit; i>=0; i--)


Le tampon de l'indicateur est hors limites.

Veuillez me montrer un exemple deticks avec un cycle i>=0
. J'ai peut-être oublié quelque chose et je m'y prends mal
.

 
Roman #:

Avec cette conception
, le tampon indicateur sort des limites.

est toujours sorti.
 
Roman #:

Avec cette conception.


Le tampon de l'indicateur est hors limites.

Veuillez me montrer un exemple deticks avec un cycle i>=0
. J'ai peut-être oublié ce que je fais mal
.

J'ai déjà écrit qu'avec cette construction, vous accédez à l'index du tampon avec rates_total (lorsque prev_calculated == 0 ).
Et c'est un débordement parce que rates_total est la taille du tampon dont le dernier élément rates_total-1

 
Nikolai Semko #:

l'opérateur ternaire semble plus concis (IMHO)

int limit = prev_calculated==0 ? 0: prev_calculated-1;

de manière encore plus concise :

int limit = prev_calculated-bool(prev_calculated);

:))