0 ? -x : x);
}
double custom_fmod(double x, double diver){
while (x > diver)
x -= diver;
return x;
}
float tan_taylor(double x, double accuracy){
int i = 1;
double cos = 1, sin = x, intermediate_cos = 1, intermediate_sin = x;
x = custom_fmod(54, 3.14159265358979323846);
while (custom_fabs(intermediate_cos *= - x * x / (2 * i * (2 * i - 1))) > accuracy && custom_fabs(intermediate_sin *= - x * x / (2 * i * (2 * i + 1))) > accuracy){
cos += intermediate_cos;
sin += intermediate_sin;
i++;
}
return sin/cos;
}
int main(){
double accuracy = 0.0001;
double x = 54;
double diver = 3.14159265358979323846;
printf("%g\n", tan_taylor(x, accuracy));
// printf("%f\n", custom_fmod(54.21, 3.14159265358979323846));
// printf("%f\n", tan_taylor(x, accuracy));
}
всем привет. вчера спрашивал здесь про вычисление значения тангенса с заданной точностью с помощью ряда тейлора. вроде как что то получилось.. только вот само значение неверное, а ещё не могу разобраться с локальными переменными. как их лучше передавать? подскажите что исправить.
Куда передавать?
ну типа чтобы я просто вызвал функцию и передал ей аргументы один раз. как это грамотно сделать
Зависит от типа, для встроенных типов передавать и возвращать по значению подойдет
ну вот конкретно в моём примере
Конкретно в вашем примере можно по значению
tan_taylor(x, accuracy)); — ну вот ты вызвал, передал...
а вот в самой tan_taylor я еще вызываю custom_fmod и ей переменные я уже не могу передать, только значения
Кто сказал? custom_fmod(x, accuracy) или какие вам там переменные нужны
Что это блин должно значить? Ты же вызываешь, всё передаёшь...
Обсуждают сегодня