作者Append (<( ̄︶ ̄)>)
看板NTUCH-97
標題[討論] 化數作業
時間Wed Oct 5 23:45:15 2005
唔,化數課的作業,我想如果沒有程式經驗的應該是毫無頭緒,
致於數學方面倒是應該不難懂。
於是我提供個確定會Work的程式碼出來...
----
這個程式會用到的程式觀念主要是For迴圈 陣列(array)的使用
還有double這個變數型態
上面三個名詞都聽不懂沒關係
翻成白話文是
for可以讓幾行程式跑很多次 所以用來重複的算波函數
在Basic裡面比較白話 會長這樣
For i = 1 to 10 //這行是說 這個for到next裡面的東西會跑十次
敘述1
敘述2
Next i //這行是說 可以讓i增加1 然後可以從頭跑for裡面的東西
陣列就是同一個名字但是要裝很多數字的東西,
像f(x,y)都叫做f 但是對不同的x,y有不同的值
"同樣叫做f 但是有一大堆值" 所以我們會開個陣列
在C裡面叫做f[x][y]
在Basic叫做f(x,y)
再來是double,"雙精確度浮點數"的變數型態
唔首先解釋一下什麼叫做變數。
先舉相對於變數的東西,常數是不會更動的一些值。
所以變數就是可以更動的值。
就像我告訴電腦,x是個整數,然後指定x=1;
然後我可以寫x=3告訴電腦,要把x的值換成3;
可以寫x=cos(2)告訴電腦,算出cos(2)的值之後,
取整數存到x裡面。
【嗯 不要懷疑,因為我剛才告訴電腦x是個整數】
仔細看,上面事先算出cos(2)然後才存到x裡面。
所以我可以寫 x = x+1,電腦就會先算出x+1是多少,然後再存到x裡面。
唔,變數就是這樣的東西。
然後變數有不同的格式,這跟電腦存資料的方式有關係。
double是一種變數的格式,他會用8個byte來存帶有小數點的數字。
跟一般的"浮點數"(就是有小數點的數,在BASIC叫做single,在C叫做float)比起來,
double的精確度遠高於他,因為他多用了一倍的記憶體空間
但是因為記憶體不用錢,
【才8個byte 存一百萬個變數也才8mega,隨便玩個遊戲就不知道幾十mega的記憶體了】
所以為了稍微好一點的結果,還是來用個精確度高一點的東西吧。
唔唔,一些觀念寫在這裡,下面有我寫好的程式碼,可以參考看看
C++的有註解,推薦就算不懂C也可以看看
Basic的有怪符號"#",那個是double的意思,
就是所有有加#的數字都強迫他用double去存
C++
source code (in cpp) :
http://homepage.ntu.edu.tw/~b93203056/sqwell.cpp
BASIC
source code (in bas) :
http://homepage.ntu.edu.tw/~b93203056/sqwell.bas
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.218.121
1F:推 lulujack:辛苦了...真有心...雖然看不太懂但總比無頭緒好... 10/06 00:14