[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 424

 
re-posted
Ilya12345:

Ciao a tutti, è da qualche giorno che armeggio con il codice, ma senza successo! La condizione non funziona. Alla variabile Z viene sempre assegnato l'ultimo valore, in questo caso equivale a Z=1. Cosa devo sistemare per far funzionare le condizioni? Chi può aiutare?

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
se (0 < Y <= 0,03125)
{Z = 0.03125;}

se (0,03126 < Y <= 0,0625)
{Z = 0.0625;}

se (0,0625 < Y <= 0,09375)
{Z = 0.09375;}

se (0,09375 < Y <= 0,125)
{Z = 0.125;}

se (0,125 < Y <= 0,15625)
{Z = 0.15625;}

se (0,15625 < Y <= 0,1875)
{Z = 0.1875;}

se (0,1875 < Y <= 0,21875)
{Z = 0.21875;}

se (0,21875 < Y <= 0,25)
{Z = 0.25;}

se (0,25 < Y <= 0,28125)
{Z = 0.28125;}

se (0,28125 < Y <= 0,3125)
{Z = 0.3125;}

se (0,3125 < Y <= 0,34375)
{Z = 0.34375;}

se (0,34375 < Y <= 0,375)
{Z = 0.375;}

se (0,375 < Y <= 0,40625)
{Z = 0.40625;}

se (0,40625 < Y <= 0,4375)
{Z = 0.4375;}

se (0,4375 < Y <= 0,46875)
{Z = 0.46875;}

se (0,46875 < Y <= 0,5)
{Z = 0.5;}

se (0,5 < Y <= 0,53125)
{Z = 0.53125;}

se (0,53125 < Y <= 0,5625)
{Z = 0.5625;}

se (0,5625 < Y <= 0,59375)
{Z = 0.59375;}

se (0,59375 < Y <= 0,625)
{Z = 0.625;}

se (0,625 < Y <= 0,65625)
{Z = 0.65625;}

se (0,65625 < Y <= 0,6875)
{Z = 0.6875;}

se (0,6875 < Y <= 0,71875)
{Z = 0.71875;}

se (0,71875 < Y <= 0,75)
{Z = 0.75;}

se (0,75 < Y <= 0,78125)
{Z = 0.78125;}

se (0,78125 < Y <= 0,8125)
{Z = 0.8125;}

se (0,8125 < Y <= 0,84375)
{Z = 0.84375;}

se (0,84375 < Y <= 0,875)
{Z = 0.875;}

se (0,875 < Y <= 0,90625)
{Z = 0.90625;}

se (0,90625 < Y <= 0,9375)
{Z = 0.9375;}

se (0,9375 < Y <= 0,96875)
{Z = 0.96875;}

se (0,96875 < Y <= 1)
{Z = 1;}
}
W = X + Z;




Ilya12345:

Ciao a tutti, sono giorni che armeggio con il codice, ma senza successo! La condizione non funziona. Alla variabile Z viene sempre assegnato l'ultimo valore, in questo caso è uguale a Z=1. Cosa devo sistemare per far funzionare le condizioni? Qualcuno può aiutarmi?


Prova questo

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:
trasferito da


Prova così.


opere!!!! vere grazie!!! soprattutto per la tempestività!
 
Ilya12345:

opere!!!! vere grazie!!! soprattutto per la tempestività!


Da qualche parte così:

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;
        }
   } 
 

Ho due domande sulle variabili globali.

Domanda 1: è scritto che sono memorizzati sul disco rigido. Il tempo di accesso ad essi è lungo come quando si leggono dati da un file o veloce come quando si legge una variabile ordinaria?

Domanda 2: Dice che le variabili globali possono essere solo di tipo double, ma cosa succede se voglio memorizzare dati di altri tipi, per esempio int o stringa?

 
KONDOR:

1. Non posso lamentarmi della velocità.

2. dove sta scritto? tutti i tipi possono essere globali.

"Non lamentarsi" non è proprio un concetto matematico.

È scritto qui:

 
Elenn:

"Non lamentarsi" non è proprio un concetto matematico.

È scritto qui:

Dice che la variabile globale è memorizzata sul disco rigido ed è conservata per un certo periodo di tempo. Mentre il programma (terminale, indicatore, consulente) è in esecuzione, tutte le variabili sono in RAM, cioè il valore del G.P. sarà letto dal disco solo quando il programma sarà lanciato per la prima volta.
 
Temnyj:
Dice che la variabile globale è salvata sul disco rigido e conservata per un certo tempo. Mentre il programma (terminale, indicatore, consulente) è in esecuzione, tutte le variabili sono memorizzate in RAM, vale a dire che il valore di G.P. sarà letto dal disco solo quando il programma sarà lanciato per la prima volta.

Grazie per le informazioni. E la seconda domanda?
 
Elenn:

Grazie per le informazioni. E la seconda domanda?

Non capisco bene la seconda domanda.

Potresti voler leggere questo.

 
Temnyj:

Non capisco bene la seconda domanda.

Potresti volerlo leggere qui


Qualsiasi variabile viene persa quando si esce dal programma (riavvio del computer, ecc.). Tranne le variabili globali, perché sono memorizzate sul disco rigido. Ma possono essere solo di tipo doppio. Cosa fare se è necessario memorizzare variabili di altri tipi (int o stringa per esempio)? Cosa non è chiaro qui?

 
Elenn:


Tutte le variabili saranno perse quando si esce dal programma (riavvio del computer, ecc.). Tranne le variabili globali, perché sono memorizzate sul disco rigido. Ma possono essere solo di tipo doppio. Cosa fare se è necessario memorizzare variabili di altri tipi (int o stringa per esempio)? Cosa non è chiaro qui?

Ci sono variabili globali del livello corrente del programma e variabili globali del livello terminale. I primi vengono resettati alla deinizializzazione, i secondi no. Lei sta chiaramente parlando di quest'ultima.

Naturalmente, sarebbe difficile, per esempio, nascondere un array come il doppio da 100 elementi in tali variabili. È meglio non usarli affatto per questi scopi.

Utilizzare un file per memorizzare dati di qualsiasi tipo. Non ci sono limitazioni. E questo metodo è usato da tutti in ogni momento.