1、首先,打開VS2019,并且創(chuàng)建一個(gè)C語言源文件,會看到如下的頁面。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、虎林網(wǎng)站維護(hù)、網(wǎng)站推廣。
2、鼠標(biāo)在下圖紅色圈所示的區(qū)域單擊一下。
3、之后,再按Enter鍵,會看到新的一行。
4、在這一行中輸入:#includemath.h。
5、接著,在void main()中去定義一個(gè)單精度型變量。
6、定義完回車后,輸入a=sin(90);注意,90指的是90弧度。
7、再次回車,輸入printf("%f",a);。
8、可以按F5鍵去運(yùn)行這段程序,會看到如下的結(jié)果。即90弧度的正弦值約為0.893997。
本程序加了一個(gè)LCD1602,,,,你自己選擇使用哈
#includereg52.h //包含頭文件
#includeintrins.h
#define uchar unsigned char //宏定義
#define uint unsigned int
uchar i , j ,n,z; //定義全局變量
sbit RS=P2^0; //定義端口
sbit RW=P2^1;
sbit E =P2^2;
sbit k=P2^7;
sbit k1=P2^6;
uchar code str0[]={"Sine Wave "}; //定義LCD1602顯示字符數(shù)組
uchar code str1[]={"Triangle Wave"};
uchar code str2[]={"Square Wave "};
uchar code table[3][40]= //定義顯示波形的二維數(shù)組
{
0x80,0x94,0xa7,0xb9,0xca,0xd9,0xe7,0xf1,0xf8,0xfd,
0xff,0xfd,0xf8,0xf1,0xe7,0xd9,0xca,0xb9,0xa7,0x94,
0x80,0x6c,0x55,0x46,0x35,0x25,0x18,0x0e,0x06,0x02,
0x00,0x02,0x06,0x0e,0x18,0x25,0x35,0x46,0x55,0x6c,
0x80,0x8c,0x99,0xa6,0xb3,0xc0,0xcc,0xd9,0xe6,0xf2,
0xff,0xf2,0xe6,0xd9,0xcc,0xc0,0xb3,0xa6,0x99,0x8c,
0x80,0x73,0x66,0x5a,0x4d,0x40,0x33,0x26,0x1a,0x0d,
0x00,0x0d,0x1a,0x26,0x33,0x40,0x4d,0x5a,0x66,0x73,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void delay(uint z) //延時(shí)程序
{
for(z;z0;z--)
{
}
}
void Write_command(uchar cmd) //LCD1602寫入命令程序
{
RS=0; //選擇指令寄存器
RW=0; //寫操作
E =1; //使能端
P1=cmd;
delay(1);
E =0;
delay(10); //延時(shí) 使LCD1602處于不忙狀態(tài)
}
void Write_data(uchar cmd) //LCD1602寫入數(shù)據(jù)命令
{
RS=1; //選擇數(shù)據(jù)寄存器
RW=0; //寫操作
E =1; //時(shí)能端
P1=cmd;
delay(1);
E=0;
delay(10); //延時(shí) 使LCD1602處于不忙狀態(tài)
}
void Lcd_init() //LCD1602初始化程序
{
Write_command(0x38); //設(shè)置16*2顯示 5*7點(diǎn)陣 8位數(shù)據(jù)接口
Write_command(0x0c); //LCD1602開顯示 ,不顯示光標(biāo)
Write_command(0x06); //讀或?qū)懸蛔址笾羔樇右?,顯示不移動
Write_command(0x80+0x00); //數(shù)據(jù)指針地址設(shè)置
}
void Display() //LCD1602顯示英文程序
{
Lcd_init();
if (i==0)
{
for (n=0;n13;n++)
{
Write_data(str0[n]);
}
}
else if(i==1)
{
for(n=0;n13;n++)
{
Write_data(str1[n]);
}
}
else
{
for(n=0;n13;n++)
{
Write_data(str2[n]);
}
}
}
void main() //主函數(shù)
{
Display();
while(1)
{
for(j=0;j40;j++)
{
P0=table[i][j];
}
if(k==0) //開關(guān)程序
{
delay(1);
if(k==0);
{
if(k==0)
{
i++;
if (i==3) i=0;
Display();
}
}
while(k==0);
}
}
}
#includestdio.h
#include?stdlib.h
#includemath.h
#define?FQ?1000
#define?AM?1000
#define?PI?3.14
int?main()
{
FILE?*stream;
int?i=0,j=0;
double?value=0,bb=0;
short?gg[1000];
stream=fopen("sine_wave.raw","wb");
value=(2*PI/8);
for(i=0;i1000;i++)
{
bb=AM*sin(value*i);
gg[i]=(short)bb;
//fprintf(stream,"%d/n",gg);
}
fwrite(gg,?2,?1000,stream);
fclose(stream);
return;
}
源代碼如下:
#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;
}
擴(kuò)展資料
C語言編寫一個(gè)程序輸出一個(gè)正方形的源代碼如下:
#include
int?main()
{
int?i,j,n;
scanf("%d",n);
for(i=0;i? ? ?
printf("*");
else
printf("?");
}
printf("\n");
}
return?0;?
}
1、C語言中要編寫sin函數(shù),實(shí)質(zhì)上要利用sin的泰勒公式,然后根據(jù)泰勒公式,將其中的每一項(xiàng)進(jìn)行分解,最后用循環(huán),累加計(jì)算出最終結(jié)果。
2、下面用for循環(huán)實(shí)現(xiàn)sin的算法,程序代碼如下:
#includestdio.h
#includemath.h
void?main()
{
int??i;
float??x,sum,a,b;??//sum代表和,a為分子,b為分母
char?s;
printf("please?input?x");
scanf("%f",x);
s=1;
sum=0;
a=x;?????//分母賦初值
b=1;?????//分子賦初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;????//累加一項(xiàng)
a=a*x*x;?????//求下一項(xiàng)分子
b=b*2*i*(2*i+1);???//求下一項(xiàng)分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3、? 關(guān)于上述程序的幾點(diǎn)說明:上述程序的計(jì)算結(jié)果精確到小數(shù)點(diǎn)后六位;上述程序運(yùn)用了sin的泰勒展開式 sin x=x-x^3/3!+x^5/5! ...... ,程序中將sin泰勒公式中的每一項(xiàng)拆成了分子,分母以及每一項(xiàng)前的符號這三項(xiàng),以便于每一項(xiàng)的累加。
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局為C語言制定了一套完整的美國國家標(biāo)準(zhǔn)語法,稱為ANSI C,作為C語言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語言的第三個(gè)官方標(biāo)準(zhǔn),也是C語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識符,一定程度上實(shí)現(xiàn)了漢字編程。
如果只是需要值,那么調(diào)用math中的sin和cos函數(shù)即可.
參數(shù)為弧度, 如果要使用的參數(shù)是角度,需要自行轉(zhuǎn)換一下.
如果想自己寫,可以參考泰勒展開, 計(jì)算近似值.一般計(jì)算到最后一項(xiàng)小于1e-6即可.