有很多的编程语言,也有很多的方法。都可以求出来的。因此需要做的就是先理解其真正的意义,然后用自己的方法求就好了,并没有什么特殊的规定。
例如一下的例子。
#include
#include
main(){
double y;
int x,m,i;
printf("y=sin(x) [0 for(y=1;y>=-1;y-=0.1){ if(y>=0){ m=asin(y)*10; for(x=1;x printf("*",m); for(;x<31-m;x++)printf(" "); printf("*\n");} else{ m=-1*asin(y)*10; for(i=0;i<32;i++)printf(" "); for(x=1;x printf("*",m); for(;x<31-m;x++)printf(" "); printf("*\n",m); } } } 4.一种最直接简单但是很繁琐的方法: #include int main() { printf(" *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" *\n"); return 0; } 5,/*泰勒公式求sin(x)*/ #include #include main() { double x,s1,e,s=0; int n=1; printf("输入x和误差范围e:\n"); scanf("%lf %lf",&x,&e);/*误差上限e要尽量取小,如取e为0.0000001。这里我们将e取为0.000001*/ s1=x; do { s+=s1; /*s1为中间变量*/ s1=-s1*x*x/(n+1)/(n+2); n+=2; } while (fabs(s1)>=e);/*fabs为对实数求绝对值的函数*/ printf("x=%lf\nsin(x)=%lf\n",x,s); }
简单点这么说吧。。
正弦函数图像是对称的,所以在每行打印两个星号。
用反正弦函数asin()得出各点的坐标关系。
而for(y=1;y>=-1;y-=0.1)就是从
0开始描点到
2π。
m=asin(y)*10;
是图像放大10倍、
至于for(;x<31-m;x++)是因为把图像分成了31列。。
算法细节的话lz好好琢磨下吧。。
for(x=0;x
setpixel(x,Y0-Y*sin(6.28*x/X0));
}
X= 在屏幕上画多长的曲线
X0= 一个周期画多少个点
Y= 曲线的幅度,y轴高度
Y0= y轴位置
#include
#include
int main()
{
const double pi = 3.1415926;
double d, e;
scanf("%f", &d);
e = sin(2*pi*d/63.84);//正弦函数实现。
printf("%lf\n", e);
return 0;
}