作者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