看板 NTUCH-97 關於我們 聯絡資訊
唔,化數課的作業,我想如果沒有程式經驗的應該是毫無頭緒, 致於數學方面倒是應該不難懂。 於是我提供個確定會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
lulujack:辛苦了...真有心...雖然看不太懂但總比無頭緒好... 10/06 00:14