[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 53

 
for (i=4; i<19; i++)
{
   sum+=GetPrcD1(symb[i]);
   Content[5 + (i-4)/3][1]=DoubleToStr(sum/3,3);
}
Qualcosa del genere. Non ha controllato.
 
TheXpert:
Qualcosa del genere. Non ha controllato.

Grazie! Funziona! Perché sono così stupido? Penso di essere andato bene a scuola!
 

Un'altra domanda è venuta fuori. Problema con la somma dei valori. per tipo sum+=a[i] (letto nel tutorial)

Restituisce erroneamente la somma dei valori, si prega di indicare l'errore.

for (i=4; i<19; i++){
   sum+=GetPrcH12(symb[i]);//сумма значений по номеру i пары   
   }
//+------------------------------------------------------------------+
double GetPrcH12(string symb){
int i=iBarShift(NULL, 0, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 12:00"));//ищем бар по времени на сегодня
double pc=iClose(symb,PERIOD_M30,i);//цена закрытия на начало времени  
double a=0;
if (pc!=0) 
a=(iClose(symb,PERIOD_M30,0)*100)/pc-100;//расчет процента изменения от начала времени
return (a);
}
 
Kondratiev_A_A: Problema con la somma dei valori. tipo sum+=a[i]

Ho il sospetto che il problema sia la mancanza di inizializzazione della variabile sum con zero, e probabilmente in un ciclo corretto, come questo, dovrebbe funzionare:

sum = 0;
for (i=4; i<19; i++)
   sum+=GetPrcH12(symb[i]);

Dopo il ciclo, la variabile sum conterrà la somma dei valori della funzione.

 
IgorM:

Sospetto che il problema sia la mancanza di inizializzazione della variabile sum con zero, e probabilmente in un ciclo adeguato, come questo, dovrebbe funzionare:

Dopo il ciclo, la somma dei valori della funzione sarà nella variabile sum.


Grazie, ho provato, sum=0, nessun cambiamento.

L'errore è nel meccanismo di somma stesso... Dovrò pensarci.

 
Posso usare MathPow() per incrementare un numero intero? È corretto?
 

Ancora una volta una domanda sull'ottimizzazione e il layout, come confezionare un tale miracolo? Ho usato sum+=a[i], è un casino.

   sum=GetPrcH12(symb[4])+GetPrcH12(symb[5])+GetPrcH12(symb[6]);
   Content[5][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[7])+GetPrcH12(symb[8])+GetPrcH12(symb[9]);
   Content[6][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[10])+GetPrcH12(symb[11])+GetPrcH12(symb[12]);
   Content[7][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[13])+GetPrcH12(symb[14])+GetPrcH12(symb[15]);
   Content[8][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[16])+GetPrcH12(symb[17])+GetPrcH12(symb[18]);
   Content[9][3]=DoubleToStr(sum/3,3);
 

Ragazzi, qualcuno può sapere perché la mia madre ASUS P5B sotto il Seven su 4 giga di RAM (2 su 2GB DDR3) ne vede solo tre?

Dice 4 installati, 2.94 disponibili...

 
moskitman:

Ragazzi, qualcuno può sapere perché la mia madre ASUS P5B sotto il Seven su 4 giga di RAM (2 su 2GB DDR3) ne vede solo tre?

Dice 4 installati, 2.94 disponibili...

Computer portatile, forse? Si sta riservando per la scheda video.
 
AndEv: Posso usare MathPow() per incrementare un numero intero? Quanto sarà corretto?
Il modo più semplice è eseguire un controllo, e la teoria dice: int è convertito in double, che ha la precedenza. MathPow (base doppia, esponente doppio) passa variabili di tipo doppio. Usare variabili "senza perdita di salute" di tipo int invece che di tipo double.