[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 53

 
for (i=4; i<19; i++)
{
   sum+=GetPrcD1(symb[i]);
   Content[5 + (i-4)/3][1]=DoubleToStr(sum/3,3);
}
Как-то так. Не проверял.
 
TheXpert:
Как-то так. Не проверял.

Спасибо! Заработало! Че ж я такой тупой а, вроде учился в школе хорошо((
 

Еще один вопросик назрел. Проблема с суммой значений. по типу sum+=a[i] (прочитал в учебнике)

Неверно возвращает сумму значений, ткните носом в ошибку, пожалуйста.

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:Проблема с суммой значений. по типу sum+=a[i]

подозреваю, что проблема в отсутствии инициализации переменной sum нулем, ну и наверное в правильном цикле, примерно так, должно работать:

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

после цикла в переменной sum будет сумма значений ф-ции

 
IgorM:

подозреваю, что проблема в отсутствии инициализации переменной sum нулем, ну и наверное в правильном цикле, примерно так, должно работать:

после цикла в переменной sum будет сумма значений ф-ции


Спасибо, попробывал, sum=0, без изменений.

Ошибка в самой организации суммирования... Буду думать.

 
Подскажите, можно ли для возведения числа типа integer в степень числа типа integer использовать функцию MathPow() ? Насколько корректно это будет ?
 

Опять вопрос по оптимизации и компоновки, подскажите как упаковать такое чудо? Через sum+=a[i], косячно получилось.

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

Ребят, мож кто в курсе почему у меня мать ASUS P5B под семёркой из 4 гиг оперативы (2 по 2гБ DDR3) видит только три?

Пишет установлено 4, доступно 2,94...

 
moskitman:

Ребят, мож кто в курсе почему у меня мать ASUS P5B под семёркой из 4 гиг оперативы (2 по 2гБ DDR3) видит только три?

Пишет установлено 4, доступно 2,94...

Ноутбук, наверно? Под видеокарту резервирует.
 
AndEv: Подскажите, можно ли для возведения числа типа integer в степень числа типа integer использовать функцию MathPow() ? Насколько корректно это будет ?
Самое простое - запустить проверку, а теория гласит: int приводится к double, который имеет приоритет. В MathPow (double base, double exponent) передаются переменные типа double. Используйте "без потери здоровья" вместо типа double переменные типа int.


Причина обращения: