有很多的编程语言,也有很多的方法。都可以求出来的。因此需要做的就是先理解其真正的意义,然后用自己的方法求就好了,并没有什么特殊的规定。
例如一下的例子。
#include<stdio.h>
#include<math.h>
main(){
double y;
int x,m,i;
printf("y=sin(x) [0<x<2*pi]\n");
for(y=1;y>=-1;y-=0.1){
if(y>=0){
m=asin(y)*10;
for(x=1;x<m;x++)printf(" ");
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<m;x++)printf(" ");
printf("*",m);
for(;x<31-m;x++)printf(" ");
printf("*\n",m);
}
}
}
4.一种最直接简单但是很繁琐的方法:
#include<stdio.h>
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<stdio.h>
#include <math.h>
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);
}
2024-08-07 广告
正弦函数图像是对称的,所以在每行打印两个星号。
用反正弦函数asin()得出各点的坐标关系。
而for(y=1;y>=-1;y-=0.1)就是从
0开始描点到
2π。
m=asin(y)*10;
是图像放大10倍、
至于for(;x<31-m;x++)是因为把图像分成了31列。。
算法细节的话lz好好琢磨下吧。。
{
setpixel(x,Y0-Y*sin(6.28*x/X0));
}
X= 在屏幕上画多长的曲线
X0= 一个周期画多少个点
Y= 曲线的幅度,y轴高度
Y0= y轴位置
#include<math.h>
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;
}