作者x2266 (擁抱寂寞享受孤獨)
看板NTUBSE-B-93
標題計程
時間Thu Nov 10 20:57:38 2005
我是計程助教
關於作業 我想在考前我還是來不及改完
但針對作業我講一些東西
首先是「流程圖」(flowchart)
可以到
http://www.chwa.com.tw/TResource/VS/book2/ch2/2-2.htm
或
http://www.cyut.edu.tw/~ywfan/C++/20030220flowchart.htm 看看
或者到網路上搜尋一下吧 我不再多說了
因為大家的邏輯想法都不一樣 所以圖都不一樣
還是說圖本來就錯了
所以我不再多說了
程式的部分
結果的列印是 程式跑出來後的"結果"
也就是電腦經由 編輯器 翻譯程式碼 而做出的動作
並不是已知的答案 當然數列的樣子 大家都知道 幹麻再列印一次
所以有人的程式碼根本是無法編輯的或者是錯的
但還是有結果(還蠻多人的)
這真的是結果嗎??
再來是程式碼的部份
首先 程式碼的結構為:
1.宣告段
2.執行段
3.結束段
宣告段顧名思義是宣告會用到之變數的形式,還有會用到哪些imsl
或者設定(如implicit none),這邊大家都不錯
執行段是你要電腦做的運算或判斷,電腦會一列一列的讀 並做出反應
除非是用到if跟do 就會先作完裡面的指令再往下做
if的結構有兩種
標準格式:
if(邏輯判斷) then <=開始if敘述
..... <=如果判斷為真,會執行的動作
.....
elseif(邏輯判斷) then <=上一個不成立時
..... <=如果判斷為真,會執行的動作
.....
else
..... <=當上面好幾個判斷都不成立時,會執行的動作
.....
end if
例如:x=1~2 -->執行動作A
x=2~3 -->執行動作B
x≠1~2,2~3 -->執行動作C
當然elseif 在if與endif之間 可以有很多個,看你的問題需要而定
簡單格式:
if(邏輯判斷)執行動作 <-如果判斷為真,會執行動作
我發現有人這樣寫:
200 if(邏輯判斷)go to200
這樣的話 如果邏輯判斷為真的話
電腦會一直執行這一行
因為 goto200->200->goto200->200...........
程式不會繼續讀下去或結束
所以請大家寫好時check一下
do迴圈大家都用的不錯,所以不用講啦
再來是結束段 一大堆人都沒在最後加一行end
程式碼少了end 是無法被編輯的
所以我強烈懷疑你們的結果是從何而來
寫程式最少要寫對或可以編輯
再來是可以跑出來
最後才看跑程式所需的時間 精度 誤差
最後visual fortran 中 當你compile後 下面的視窗
會出現 0 error(s), 0 warning(s)
這樣表示0個錯誤 與0個警告 所以可以跑
當有錯誤時 無法跑
但只有警告時 可以跑 但跑出來可能有錯(不一定)
以上只是檢查語法與簡單邏輯而已
邏輯如果有錯也有可能不能跑 或結果是錯的
目前我只想到這樣
integer::f0=0,f1=1,fn,n
read(*,*)n
write(*,*)f0
if(n>0)write(*,*)f1
if(n>1)then
do i=2,n
fn=f0+f1
write(*,*)fn
f0=f1
f1=fn
end do
end if
end
參考一下吧
我有想到在po上來吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.202
※ 編輯: x2266 來自: 140.112.63.202 (11/10 21:03)
※ 編輯: x2266 來自: 140.112.63.202 (11/10 21:09)
※ 編輯: x2266 來自: 140.112.63.202 (11/10 21:09)
※ 編輯: x2266 來自: 140.112.63.202 (11/10 21:14)
→ x2266:有沒有人有問題啊..... 11/10 21:29
推 razer:推!好文啊 每年計程都該先講清楚流程圖的. 11/10 22:34
推 cktiger45:不是很懂 還是謝謝熱心的助教...... 11/10 23:01
→ x2266:哪邊 可以講一下嗎 你們下週考試 快問吧 11/10 23:04
推 razer:f(0) f(1)其實可以一起寫吧? 何必非得過個if? 這樣會慢一點 11/11 00:02
→ x2266:那你寫給我看吧 11/11 00:29
→ x2266:fortan在算次方時會較慢 還有遇到if時會把所有if elseif內的 11/11 00:31
→ x2266:所以計算式都算出來 再來決定要哪個 所以也會慢些 11/11 00:33
推 Popple:多兩個 if 是真的只會慢"一點",幾個 cycle 而已。 11/11 01:12
推 gibson72:這麼熱心實力又堅強的助教不多見囉~大家一定要惜福啊XD 11/11 23:07
→ x2266:不要狗腿 工數助教!! 11/11 23:12