int F(double &muss[],double find,int begin=-1,int end=-1,int accuracy=8)
{
//**********************************************************************************
int size=ArraySize(muss);
int i;
//**********************************************************************************
// блок проверки верности входящих данных
//**********************************************************************************
if(size==0) return(-1); // массив не заполнен
if(begin<-2) return(-2); // значение begin меньше допустимого
if(end<-2) return(-3); // значение end меньше допустимого
if(begin>=size) return(-4); // значение begin больше допустимого
if(end>=size) return(-5); // значение end больше допустимого
//**********************************************************************************
// блок подготовки данных к расчету
//**********************************************************************************
int dd=1,// имеет значение +1 или -1
count=0; // количество совпадений - возвращаемый результат
if(begin==-1)
{
i=0;
end=size-1;
}
else
{
if(begin==-2)
{
i=size-1;
begin=0;
end=i;
dd=-1;
}
else
{
if(end==-1)
{
i=begin;
end=size-1;
}
else
{
if(end==-2)
{
i=begin;
end=i;
begin=0;
dd=-1;
}
else
{
i=begin;
if(begin>end)
{ // если begin>end
dd=-1;
begin=end;
end=i;
}
}
}
}
}
//**********************************************************************************
// блок расчета
//**********************************************************************************
if(accuracy<0) // если точность < 0
{
for(i>=begin; i<=end; i+dd)
if(muss[i]==find)
count++;
return count;
}
else // если точность > 0
{
for(i>=begin; i<=end; i+dd)
if(NormalizeDouble(muss[i]-find,accuracy)==0)
count++;
return count;
}
}
//**********************************************************************************
Странноватый у Вас код .......
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите найти ошибку - '\end_of_program' - ending bracket '}' expected
Функция возвращает количество значений равных find в массиве muss[] с определенной точностью accuracy
int F(
double& muss[], // массив в котором ищем
double find, // что ищем
int begin=-1, // откуда (номер элемента в массиве) (если -1 - ищем от начала до конца) (если -2 - ищем от конца до начала)
int end=-1, // покуда (номер элемента в массиве) (если -1 - ищем до конца) (если -2 - ищем до начала)
int accuracy=8 // точность сравнения типов double, если меньше 0 - сравниваем без точности
)
{
//**********************************************************************************
int size=ArraySize(muss);
int i;
//**********************************************************************************
// блок проверки верности входящих данных
//**********************************************************************************
if (size==0) return (-1); // массив не заполнен
if (begin<-2) return (-2); // значение begin меньше допустимого
if (end<-2) return (-3); // значение end меньше допустимого
if (begin>=size) return (-4); // значение begin больше допустимого
if (end>=size) return (-5); // значение end больше допустимого
//**********************************************************************************
// блок подготовки данных к расчету
//**********************************************************************************
int dd=1, // имеет значение +1 или -1
count=0; // количество совпадений - возвращаемый результат
if (begin==-1){ // параметры для расчета от начала до конца
i=0;
end=size-1;
}
else{
if (begin==-2){ // параметры для расчета от конца до начала
i=size-1;
begin=0;
end=i;
dd=-1;
}
else{
if (end==-1){ // параметры для расчета от кудось до конца
i=begin;
end=size-1;
}
else{
if (end==-2){ // параметры для расчета от кудось до начала
i=begin;
end=i;
begin=0;
dd=-1;
}
else{
i=begin;
if (begin>end){ // если begin>end
dd=-1;
begin=end;
end=i;
}
}
}
}
}
//**********************************************************************************
// блок расчета
//**********************************************************************************
if (accuracy<0) // если точность < 0
{
for(,i>=begin && i<=end,i+dd)
if (muss[i]==find)
count++;
return count;
}
else // если точность > 0
{
for(,i>=begin && i<=end,i+dd)
if (NormalizeDouble(muss[i]-find,accuracy)==0)
count++;
return count;
}
//**********************************************************************************