[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 424

 
réaffiché sur
Ilya12345:

J'ai bricolé le code pendant des jours, mais sans succès ! La condition ne fonctionne pas. La variable Z est toujours affectée à la dernière valeur, dans ce cas, elle équivaut à Z=1. Que dois-je réparer pour que les conditions fonctionnent ? Qui peut aider ?

X = MathFloor(PriceTarget) ;
Y = (PriceTarget - X) ;
{
si (0 < Y <= 0.03125)
{Z = 0.03125;}

si (0.03126 < Y <= 0.0625)
{Z = 0.0625;}

si (0.0625 < Y <= 0.09375)
{Z = 0.09375;}

si (0.09375 < Y <= 0.125)
{Z = 0.125;}

si (0.125 < Y <= 0.15625)
{Z = 0.15625;}

si (0.15625 < Y <= 0.1875)
{Z = 0.1875;}

si (0.1875 < Y <= 0.21875)
{Z = 0.21875;}

si (0.21875 < Y <= 0.25)
{Z = 0.25;}

si (0.25 < Y <= 0.28125)
{Z = 0.28125;}

si (0.28125 < Y <= 0.3125)
{Z = 0.3125;}

si (0.3125 < Y <= 0.34375)
{Z = 0.34375;}

si (0.34375 < Y <= 0.375)
{Z = 0.375;}

si (0.375 < Y <= 0.40625)
{Z = 0.40625;}

si (0.40625 < Y <= 0.4375)
{Z = 0.4375;}

si (0.4375 < Y <= 0.46875)
{Z = 0.46875;}

si (0.46875 < Y <= 0.5)
{Z = 0.5;}

si (0.5 < Y <= 0.53125)
{Z = 0.53125;}

si (0.53125 < Y <= 0.5625)
{Z = 0.5625;}

si (0.5625 < Y <= 0.59375)
{Z = 0.59375;}

si (0.59375 < Y <= 0.625)
{Z = 0.625;}

si (0.625 < Y <= 0.65625)
{Z = 0.65625;}

si (0.65625 < Y <= 0.6875)
{Z = 0.6875;}

si (0.6875 < Y <= 0.71875)
{Z = 0.71875;}

si (0.71875 < Y <= 0.75)
{Z = 0.75;}

si (0.75 < Y <= 0.78125)
{Z = 0.78125;}

si (0.78125 < Y <= 0.8125)
{Z = 0.8125;}

si (0.8125 < Y <= 0.84375)
{Z = 0.84375;}

si (0.84375 < Y <= 0.875)
{Z = 0.875;}

si (0.875 < Y <= 0.90625)
{Z = 0.90625;}

si (0.90625 < Y <= 0.9375)
{Z = 0.9375;}

si (0.9375 < Y <= 0.96875)
{Z = 0.96875;}

si (0.96875 < Y <= 1)
{Z = 1;}
}
W = X + Z ;




Ilya12345:

Bonjour à tous, cela fait des jours que je bricole le code, mais sans succès ! La condition ne fonctionne pas. La variable Z se voit toujours attribuer la dernière valeur, dans ce cas, elle est égale à Z=1. Que dois-je réparer pour que les conditions fonctionnent ? Quelqu'un peut-il m'aider ?


Essayez ceci

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
Z = 0.03125;
  else
    if (0.03126 < Y <= 0.0625)
    Z = 0.0625;
      else
        if (0.0625 < Y <= 0.09375)
        Z = 0.09375;
          else
            if (0.09375 < Y <= 0.125)
            Z = 0.125;
              else
                if (0.125 < Y <= 0.15625)
                Z = 0.15625;
                  else
                  if (0.15625 < Y <= 0.1875)
                  Z = 0.1875;
                    else
                      if (0.1875 < Y <= 0.21875)
                      Z = 0.21875;
                        else
                          if (0.21875 < Y <= 0.25)
                          Z = 0.25;
else
if (0.25 < Y <= 0.28125)
Z = 0.28125;
  else
    if (0.28125 < Y <= 0.3125)
    Z = 0.3125;
      else
        if (0.3125 < Y <= 0.34375)
        Z = 0.34375;
          else
            if (0.34375 < Y <= 0.375)
            Z = 0.375;
              else
                if (0.375 < Y <= 0.40625)
                Z = 0.40625;
                  else
                    if (0.40625 < Y <= 0.4375)
                    Z = 0.4375;
                      else
                        if (0.4375 < Y <= 0.46875)
                        Z = 0.46875;
else
if (0.46875 < Y <= 0.5)
Z = 0.5;
  else
    if (0.5 < Y <= 0.53125)
    Z = 0.53125;
      else
        if (0.53125 < Y <= 0.5625)
        Z = 0.5625;
          else
            if (0.5625 < Y <= 0.59375)
            Z = 0.59375;
              else
                if (0.59375 < Y <= 0.625)
                Z = 0.625;
                  else
                    if (0.625 < Y <= 0.65625)
                    Z = 0.65625;
                      else
                        if (0.65625 < Y <= 0.6875)
                        Z = 0.6875;
                          else
                            if (0.6875 < Y <= 0.71875)
                            Z = 0.71875;
else
if (0.71875 < Y <= 0.75)
Z = 0.75; 
  else
    if (0.75 < Y <= 0.78125)
    Z = 0.78125;
      else
        if (0.78125 < Y <= 0.8125)
        Z = 0.8125; 
          else
            if (0.8125 < Y <= 0.84375)
            Z = 0.84375;
              else
                if (0.84375 < Y <= 0.875)
                Z = 0.875;
                  else
                    if (0.875 < Y <= 0.90625)
                    Z = 0.90625;
                      else
                        if (0.90625 < Y <= 0.9375)
                        Z = 0.9375;
                          else
                            if (0.9375 < Y <= 0.96875)
                            Z = 0.96875;
                              else
                                if (0.96875 < Y <= 1)
                                Z = 1;
} 
W = X + Z;
 
sergeev:
transféré de


Essayez comme ceci.


works !!!! vraiment merci !!! surtout pour la rapidité !
 
Ilya12345:

works !!!! vraiment merci !!! surtout pour la rapidité !


Quelque chose comme ça :

double mK[] ={0,0.03125,0.0625....,1};



 

   for (int i=0;i<(ArraySize(mK)-1);i++)
   
   {
    
     if (y>mK[i] && y<=mK[i+1]) 
        {z=mK[i+1];
         break;
        }
   } 
 

J'ai deux questions sur les variables globales.

Question 1 : il est écrit qu'ils sont stockés sur le disque dur. Le temps d'accès à celles-ci est-il aussi long que lors de la lecture de données dans un fichier ou aussi rapide que lors de la lecture d'une variable ordinaire ?

Question 2 : Il est dit que les variables globales ne peuvent être que de type double, mais que faire si je veux stocker des données d'autres types, par exemple int ou string ?

 
KONDOR:

1. Je ne peux pas me plaindre de la vitesse.

2. où est-ce écrit ? tous les types peuvent être globaux.

"Ne pas se plaindre" n'est pas vraiment un concept mathématique.

C'est écrit ici :

 
Elenn:

"Ne pas se plaindre" n'est pas vraiment un concept mathématique.

C'est écrit ici :

Il indique que la variable globale est stockée sur le disque dur et qu'elle est conservée pendant une certaine période. Pendant le déroulement du programme (terminal, indicateur, conseiller), toutes les variables sont en RAM, c'est-à-dire que la valeur du G.P. ne sera lue sur le disque que lors du premier lancement du programme.
 
Temnyj:
Il indique que la variable globale est stockée sur le disque dur et qu'elle est conservée pendant une certaine période. Pendant le déroulement du programme (terminal, indicateur, conseiller), toutes les variables sont stockées en RAM, c'est-à-dire que la valeur du G.P. ne sera lue sur le disque que lors du premier lancement du programme.

Merci pour ces informations. Et la deuxième question ?
 
Elenn:

Merci pour ces informations. Et la deuxième question ?

Je ne comprends pas vraiment la deuxième question.

Vous pourriez vouloir lire celui-ci .

 
Temnyj:

Je ne comprends pas vraiment la deuxième question.

Vous pouvez le lire ici


Toutes les variables sont perdues lorsque vous quittez le programme (redémarrez votre ordinateur, etc.). Sauf pour les variables globales, car elles sont stockées sur le disque dur. Mais ils ne peuvent être que de type double. Que faire, s'il est nécessaire de stocker des variables d'autres types (int ou string par exemple) ? Qu'est-ce qui n'est pas clair ici ?

 
Elenn:


Toute variable sera perdue lors de la sortie du programme (redémarrage de l'ordinateur, etc.). Sauf pour les variables globales, car elles sont stockées sur le disque dur. Mais ils ne peuvent être que de type double. Que faire, s'il est nécessaire de stocker des variables d'autres types (int ou string par exemple) ? Qu'est-ce qui n'est pas clair ici ?

Il existe des variables globales du niveau courant du programme et des variables globales du niveau terminal. Les premiers sont remis à zéro lors de la désinitialisation, les seconds ne le sont pas. Vous parlez clairement de cette dernière.

Bien sûr, il serait difficile, par exemple, de cacher un tableau comme double de 100 éléments dans de telles variables. Il est préférable de ne pas les utiliser du tout à de telles fins.

Utilisez un fichier pour stocker des données de tout type. Il n'y a aucune limite. Et cette méthode est utilisée par tout le monde à tout moment.


Raison: