/*
Программа расчета синуса.
Версия 0.1
Лицензия свободная.
*/
#include <stdio.h>
int main(void)
{
// вроде все объявления переменных нужно вначале писать
int n = 3;
int sign = 1;
float k;
float pi = 3.1415926535897932384626433832795; // float это 7 цифр вроде
float pi2 = 2 * pi;
float sinus;
float angle;
float angle2;
float oldsinus = 0;
puts("Расчет синуса угла."); puts("Введите угол в радианах.");
// приведение угла к [0; pi/2] чтоб быстрее считать
k = angle;
if (k < 0) {
sign = -1;
k *= -1;
}
if (k > pi2) {
k -= pi2 * (int)(k / pi2);
}
if (k > pi * 1.5) {
sign *= -1;
k = pi2 - k;
}
else if (k > pi) {
sign *= -1;
k -= pi;
}
else if (k > pi / 2) {
k = pi - k;
}
// собственно расчет синуса
sinus = k;
angle2 = k * k;
while (oldsinus != sinus) {
k *= -1 * angle2 / n / (n - 1);
oldsinus = sinus;
sinus += k;
//printf("%.7f\n", sinus); // для отладки
n += 2;
}
sinus *= sign;
printf("Синус равен %f\n", sinus
);
return 0;
}
LyoK0J/RgNC+0LPRgNCw0LzQvNCwINGA0LDRgdGH0LXRgtCwINGB0LjQvdGD0YHQsC4K0JLQtdGA0YHQuNGPIDAuMQrQm9C40YbQtdC90LfQuNGPINGB0LLQvtCx0L7QtNC90LDRjy4KKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IG1haW4odm9pZCkKewoJLy8g0LLRgNC+0LTQtSDQstGB0LUg0L7QsdGK0Y/QstC70LXQvdC40Y8g0L/QtdGA0LXQvNC10L3QvdGL0YUg0L3Rg9C20L3QviDQstC90LDRh9Cw0LvQtSDQv9C40YHQsNGC0YwKCWludCBuID0gMzsKCWludCBzaWduID0gMTsKCWZsb2F0IGs7CglmbG9hdCBwaSA9IDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTsgLy8gZmxvYXQg0Y3RgtC+IDcg0YbQuNGE0YAg0LLRgNC+0LTQtQoJZmxvYXQgcGkyID0gMiAqIHBpOwoJZmxvYXQgc2ludXM7CglmbG9hdCBhbmdsZTsKCWZsb2F0IGFuZ2xlMjsKCWZsb2F0IG9sZHNpbnVzID0gMDsKCglwdXRzKCLQoNCw0YHRh9C10YIg0YHQuNC90YPRgdCwINGD0LPQu9CwLiIpOwoJcHV0cygi0JLQstC10LTQuNGC0LUg0YPQs9C+0Lsg0LIg0YDQsNC00LjQsNC90LDRhS4iKTsKCXNjYW5mKCIlZiIsICZhbmdsZSk7CgoJLy8g0L/RgNC40LLQtdC00LXQvdC40LUg0YPQs9C70LAg0LogWzA7IHBpLzJdINGH0YLQvtCxINCx0YvRgdGC0YDQtdC1INGB0YfQuNGC0LDRgtGMCglrID0gYW5nbGU7CglpZiAoayA8IDApIHsKCQlzaWduID0gLTE7CgkJayAqPSAtMTsKCX0KCWlmIChrID4gcGkyKSB7CgkJayAtPSBwaTIgKiAoaW50KShrIC8gcGkyKTsKCX0KCWlmIChrID4gcGkgKiAxLjUpIHsKCQlzaWduICo9IC0xOwoJCWsgPSBwaTIgLSBrOwoJfQoJZWxzZSBpZiAoayA+IHBpKSB7CgkJc2lnbiAqPSAtMTsKCQlrIC09IHBpOwoJfQoJZWxzZSBpZiAoayA+IHBpIC8gMikgewoJCWsgPSBwaSAtIGs7Cgl9CgoJLy8g0YHQvtCx0YHRgtCy0LXQvdC90L4g0YDQsNGB0YfQtdGCINGB0LjQvdGD0YHQsAoJc2ludXMgPSBrOwoJYW5nbGUyID0gayAqIGs7Cgl3aGlsZSAob2xkc2ludXMgIT0gc2ludXMpIHsKCQlrICo9IC0xICogYW5nbGUyIC8gbiAvIChuIC0gMSk7CgkJb2xkc2ludXMgPSBzaW51czsKCQlzaW51cyArPSBrOwoJCS8vcHJpbnRmKCIlLjdmXG4iLCBzaW51cyk7IC8vINC00LvRjyDQvtGC0LvQsNC00LrQuAoJCW4gKz0gMjsKCX0KCXNpbnVzICo9IHNpZ247CgoJcHJpbnRmKCLQodC40L3Rg9GBINGA0LDQstC10L0gJWZcbiIsIHNpbnVzKTsKCglyZXR1cm4gMDsKfQ==