鐵之狂傲

標題: 能否有人可一行一行解析這程式碼...???拜託了 [列印本頁]

作者: gx010972    時間: 09-1-6 23:54
標題: 能否有人可一行一行解析這程式碼...???拜託了
[size=+0]#include <windows>
#include <cmath>

// 提供 Macro 版 和 Function 版。
// 把 freq 和 Freq 對換改名就可以用不同的版了。

#define Freq(f) (220 * pow(2,((double)(f)+3)/12))

double freq(int i)
{
const double d = pow(2, 1. / 12); //根號 2 的 12 次方
return 220*pow(d, 3)*pow(d, i);
//A 的基音是 440, 故 220*pow(d, 3) 就是中央 C
}


int main()
{
/*
音名定位
c,#c, d,#d, e, f,#f, g,#g, a,#a, b, ...
= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, ...
*/
int pitch[] = {7, 7, 9, 7, 12, 11,
7, 7, 9, 7, 14, 12,
7, 7, 19, 16, 12, 11, 9,
17, 17, 16, 12, 14, 12};

int size = sizeof(pitch) / sizeof(pitch[0]);

double tempo[] = {0.5, 0.5, 1, 1, 1, 2,
0.5, 0.5, 1, 1, 1, 2,
0.5, 0.5, 1, 1, 1, 1, 2,
0.5, 0.5, 1, 1, 1, 2};

for (int i = 0; i < size; ++i)
Beep(freq(pitch), tempo*300);
}

其實我對這程式碼整個結構不是很懂也
所以能否有人一行一行(一個片段) 〝註解〞 或 敘述 解析 這個程式碼呢??
結果是可以執行的,有些(單字=術語?)不是很懂.. 感激不盡,謝謝...
(對音樂有熱血度,也想不到這程式可以玩這個)很有趣!!!




歡迎光臨 鐵之狂傲 (https://www.gamez.com.tw/)