簡諧運動的方程:
成都創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元興城做網(wǎng)站,已為上家服務,為興城各地企業(yè)和個人服務,聯(lián)系電話:18980820575
簡諧運動的位移x=R*cos(ωt+φ),
簡諧運動的速度v=-ω*R*sin(ωt+φ),
簡諧運動的加速度a=-(ω^2)R*cos(ωt+φ),
同方向、不同頻率的簡諧振動的合成
x1=A1cos(2πf1t+φ10)和x2=A2cos(2πf2t+φ20),
x = x1 + x2;
相互垂直,不同頻率的簡諧振動的合成見:
函數(shù)void sound(unsigned frequency);
以指定頻率打開PC揚聲器
nosound :關閉PC揚聲器
原型為: void nosound(void);
delay 用于將程序的執(zhí)行暫停一段時間(毫秒)
原型為:void delay(unsigned milliseconds);
如delay(5000)表示延遲5秒
sound()函數(shù)用于讓pc喇叭發(fā)聲,nosound()函數(shù)用于使正在發(fā)聲的pc喇叭靜音。要使程序中的發(fā)聲的具體方法,是調(diào)用sound()函數(shù)并延遲一定時間,然后使用nosound()函數(shù)靜音,具體語句實現(xiàn)方法舉例如下:
sound(100);
delay(100);
nosound();
它們?nèi)齻€都在“dos.h”里面,
至于d(x,y,z)應該是程序員自己定義的函數(shù),我沒見過。
把所有用到的量用變量表示,然后按照公式模擬就行了,動畫可以用窗口的gui
函數(shù):
voiddelay(uinti)
{
while(i)i--;
}
這樣的延遲設計很不好,因為受影響的因素太多。
首先就是機器的CPU頻率,快的CPU執(zhí)行i--這句的機器時間短,慢的機器就很慢。
其次是當前機器的負荷情況,負荷較重時,系統(tǒng)給當前進程分配的CPU時間少,執(zhí)行這些語句的機會就少,延遲就增加了。
影響因素還有很多在此不再列舉。
做延遲程序主要有以下幾種方法:
1.定時器法
用CWnd::SetTimer()函數(shù)設置定時器,當定時時間到時發(fā)送WM_TIMER消息觸發(fā)CWnd::OnTimer()函數(shù),重載它把自己的代碼放進去。
SetTimer()參數(shù)為毫秒,此方法定時不高,受系統(tǒng)負荷影響。
2.休眠法
調(diào)用系統(tǒng)API函數(shù)Sleep(2000);參數(shù)單位是毫秒,2000代表2秒。
此方法主要收到當前系統(tǒng)負荷的影響,定時不太準確
3.時刻比較法
定義兩個CTime變量,一個用于記錄起始時刻,另一個放在循環(huán)體中不斷刷新當前時刻,并減去起始時刻,自己計算是否到時間了。
此方法因CTime變量只能獲取秒級的時刻,且收到系統(tǒng)負荷影響,精度也較低。
4.CPU滴答查詢法
利用兩個API函數(shù)QueryPerformanceFrequency()和QueryPerformanceCounter()分別獲取CPU的頻率和CPU滴答數(shù),依時刻比較法自己計算時刻差值。
因為CPU滴答數(shù)是等于CPU的機器周期的,所以是Windows系統(tǒng)里最最精確的計時方法了?,F(xiàn)在的CPU主頻都是GHz級的,因此理論上計時精度可以到納秒。
只要系統(tǒng)負荷不太重,此法可用于極其精確的延時程序。
因為Windows并不是實時操作系統(tǒng),因此對于太過精確的計時,還是無能為力的。
#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "math.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd=VGA,gm=VGAHI是同樣效果 */
registerbgidriver(EGAVGA_driver);/* 注冊BGI驅(qū)動后可以不需要.BGI文件的支持運行 */
initgraph(gd, gm, "");
}
main()
{
int i, j;
double a=5;
double t;
initgr(); /* BGI初始化 */
/*y=x; */
moveto(0,getmaxy()/2);
for (i=0;i4*314;i++) {
t=(double)i/10;
j=(int)(a*(1-cos(t/10))*10);
lineto(a*(t-sin(t/10)*10),getmaxy()/2-j);
}
getch(); /* 暫停一下,看看前面繪圖代碼的運行結果 */
closegr(); /* 恢復TEXT屏幕模式 */
}
C語言庫函數(shù),常用庫函數(shù)有:
1、scanf格式輸入函數(shù)
2、printf格式輸出函數(shù)
3、systemdos命令函數(shù)
4、sort排序
5、main主函數(shù)
6、fgets文件讀取字符串函數(shù)
7、fputs文件寫入字符串函數(shù)
8、fscanf文件格式讀取函數(shù)
9、fprintf文件格式寫入函數(shù)
10、fopen打開文件函數(shù)
11、getchar輸入字符函數(shù)
12、putchar輸出字符函數(shù)
13、malloc動態(tài)申請內(nèi)存函數(shù)
14、free釋放內(nèi)存函數(shù)
15、abs求絕對值數(shù)學函數(shù)
16、sqrt求平方根數(shù)學函數(shù)
擴展資料
語言組成:
1、數(shù)據(jù)類型
C的數(shù)據(jù)類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數(shù)組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變量
常量其值不可改變,符號常量名通常用大寫。
變量是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構成的序列,請注意第一個字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時為其分配相應存儲單元。
3、數(shù)組
如果一個變量名后面跟著一個有數(shù)字的中括號,這個聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
4、指針
如果一個變量聲明時在前面使用 * 號,表明這是個指針型變量。換句話說,該變量存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內(nèi)容操作符,意思是取這個內(nèi)存地址里存儲的內(nèi)容。指針是 C 語言區(qū)別于其他同時代高級語言的主要特征之一。
參考資料來源:百度百科-函數(shù)