源代码如下:
#include#include#define EX 0.000001
#define PI 3.14159265
int main()
{
double x=0.0, temp=1.0, sin=0.0;
int i;
printf("Please input a degree:");
scanf("%lf",&x);
x=x*PI/180;
temp=x;i=0 ;
while ( fabs(temp) >EX ) ...{
sin += temp;
i += 2;
temp = (-1) * temp*x*x/( (i+1)*(i) );
}
printf("sin(%lf) = %lf ",x,sin);
printf("The number is %d ",i);
return 0;
}
扩展资料
C语言编写一个程序输出一个正方形的源代码如下:
#include
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=0;i
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
#include
#include
#include
#define PI 3.14159
void main()
{
double x,y,dt=1.0/2/PI*0.01;
int sx,sy,i;
int gdrver=VGA, gmode=2; /*定义图形模式参数:16色,640×480*/
initgraph(&gdrver,&gmode,"d:\\bc4\\bgi"); /*图形模式驱动函数 */
cleardevice(); /*清理屏幕*/
setbkcolor(BLACK);
setcolor(WHITE); /*设置绘图颜色 */
/*开始画线 */
x=dt; y=sin(dt);
sx=(int)(640.0*dt); sy=(int)(240.0-480.0*y);
line(0,240,sx,sy);
for(i=1;i<100;i++)
{
sx=(int)(640.0*dt); sy=(int)(240.0-480.0*y);
lineto(sx,sy);
}
getch(); /*从键盘输入任意字符 *、
closegraph(); /*关闭绘图模式,回到文本状态 */
}
d:\\bc4\\bgi为图形驱动程序的所在位置,根据你的TC目录来定。
以经验看来你是要做单片机方面波形输出,dac输出,或者做模拟示波器什么的。
有两种办法:
一是查表法,优点是计算量少,占用ram少,算法简单,缺点是占用储存内存较多,参数比较固定。
查表法的基本思路就是,通过把sin函数进行采样,得到的值记录成一个表,将表以数组的形式放在程序中,通过循环读取数组的值达到查表的目的。
二是计算值法,优缺点跟查表法恰好相反。
计算值法的基本思路是通过特定算法,将特定时间所需的特定值计算出来。
这里给你提供一个计算值法的核心代码,作为指导建议,根据实际情况修调。
double sinwave(double scale,int cycle_time)
{
int a;
double pi = 3.1416;
int resolution_ratio = 100;//分辨率,描述采样量,越高的分辨率计算越多
for(a=0;a
评论
0
0
加载更多
#include
/*字符处理函数的头文件
*/
#include
/*绘图函数的头文件
*/
#include
#define
PI
3.14159
void
main()
{
double
x,y,dt=1.0/2/PI*0.01;
int
sx,sy,i;
int
gdrver=VGA,
gmode=2;
/*定义图形模式参数:16色,640×480*/
initgraph(&gdrver,&gmode,"d:\\bc4\\bgi");
/*图形模式驱动函数
*/
cleardevice();
/*清理屏幕*/
setbkcolor(BLACK);
setcolor(WHITE);
/*设置绘图颜色
*/
/*开始画线
*/
x=dt;
y=sin(dt);
sx=(int)(640.0*dt);
sy=(int)(240.0-480.0*y);
line(0,240,sx,sy);
for(i=1;i<100;i++)
{
sx=(int)(640.0*dt);
sy=(int)(240.0-480.0*y);
lineto(sx,sy);
}
getch();
/*从键盘输入任意字符
*、
closegraph();
/*关闭绘图模式,回到文本状态
*/
}
d:\\bc4\\bgi为图形驱动程序的所在位置,根据你的TC目录来定。