W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
生成表格式數(shù)據(jù)是能夠從循環(huán)機(jī)制受益的事情之一。舉個(gè)例子,在計(jì)算機(jī)成為常用設(shè)備之前,人們必須手工計(jì)算對(duì)數(shù)、正余弦以及其他常用的數(shù)學(xué)函數(shù)。為使這類(lèi)工作更簡(jiǎn)單,產(chǎn)生了一些書(shū),包含了一些長(zhǎng)表格,你可以查出不同函數(shù)的值。創(chuàng)建這些表的工作是緩慢而繁瑣的,而且結(jié)果容易大量出錯(cuò)。
當(dāng)計(jì)算機(jī)登上了歷史舞臺(tái),人們最初的反應(yīng)是:“太棒了!我們可以用計(jì)算機(jī)準(zhǔn)確無(wú)誤的生成這些表。”這是個(gè)(大部分)正確但短視的看法。沒(méi)多久,計(jì)算機(jī)和計(jì)算器普及,數(shù)學(xué)表就過(guò)時(shí)了。
好吧,應(yīng)該說(shuō)基本上過(guò)時(shí)了。事實(shí)上對(duì)于某些運(yùn)算,計(jì)算機(jī)使用數(shù)學(xué)表得到一個(gè)近似的答案,然后執(zhí)行計(jì)算去改進(jìn)這個(gè)近似解。有些情況下,計(jì)算機(jī)背后的數(shù)學(xué)表是有誤差的,最著名的就是最初的因特爾奔騰計(jì)算浮點(diǎn)除法使用的表。
對(duì)數(shù)表已經(jīng)不像以前那么有用了,但它仍然是一個(gè)不錯(cuò)的迭代示例。下面這段程序在左邊一欄輸出一列值,在右邊一欄輸出其對(duì)應(yīng)的一列對(duì)數(shù)值:
double x = 1.0;
while (x < 10.0) {
cout << x << "\t" << log(x) << "\n";
x = x + 1.0;
}
字符序列\(zhòng)t表示制表符。字符序列\(zhòng)n表示換行符。這些字符序列可以出現(xiàn)在字符串的任意位置,而在此例中,字符串中只有這類(lèi)字符序列。
制表符使光標(biāo)右移至制表結(jié)束位置,通常是每8字節(jié)制表一次。稍后我們將看到制表符的用途—使多列文本排列整齊。
換行符的作用與endl完全一樣,即移動(dòng)光標(biāo)到下一行。通常情況,如果換行符單獨(dú)出現(xiàn),我就用endl;如果作為字符串的一部分出現(xiàn),我就用\n。
上面一段程序的輸出:
1 0
2 0.693147
3 1.09861
4 1.38629
5 1.60944
6 1.79176
7 1.94591
8 2.07944
9 2.19722
要是看著上面這些數(shù)很奇怪,別忘了log函數(shù)是以e為底的。計(jì)算機(jī)科學(xué)中2的冪很重要,因此我們常常要計(jì)算以2為底的對(duì)數(shù),我們可以通過(guò)以下公式實(shí)現(xiàn):
輸出語(yǔ)句改為:
cout << x << "\t" << log(x) / log(2.0) << endl;
輸出:
1 0
2 1
3 1.58496
4 2
5 2.32193
6 2.58496
7 2.80735
8 3
9 3.16993
可以看到,第1、2、4、8行為2的整數(shù)次冪。如果想求2的其他整數(shù)次冪,我們可以修改程序如下:
double x = 1.0;
while (x < 100.0) {
cout << x << "\t" << log(x) / log(2.0) << endl;
x = x * 2.0;
}
之前的循環(huán)中,我們用一個(gè)數(shù)去加x,輸出一個(gè)算術(shù)序列;現(xiàn)在我們改用一個(gè)數(shù)去乘x,輸出一個(gè)幾何級(jí)序列。輸出結(jié)果是:
1 0
2 1
4 2
8 3
16 4
32 5
64 6
由于我們?cè)诹兄g使用的是制表符,所以第二列的位置也就不取決于第一列的數(shù)字位數(shù)了。
對(duì)數(shù)表也許不再有用,但對(duì)于和2的整數(shù)次冪打交道的計(jì)算機(jī)科學(xué)家而言,則是非常有用。下面出一道習(xí)題:修改上面這段程序,使之能一直輸出到65536(2^16)。把程序打出來(lái)并記住它。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: