作者liaoamy123 (woody )
看板Fortran
標題[問題] 迭代請益
時間Tue Jan 29 15:08:27 2019
小妹是自學fortran新手,
目前主迴圈的迭代次數,run不出來
program test
implicit real (a-g,l-x)
integer I,j,k,z,y
Parameter k_max=500
i=0
Do while i<k_max (當迭代次數小於最高迭代則繼續run)
a=2-i*(2/k_max)
b=-1+i *(-1/k_max)
i=i+1
write (*,*) a,b
end do
End
Error:syntax error,found identifier “i “ when expecting one of :do while i<k
_max
Error:an end so statement occurred without a corresponding do, do while ,or do
times statement
有嘗試google過,但還是不太了解!
麻煩板上神人可以幫幫忙了!謝謝
重要:我需要將a從2趨近到0 (線性)
將b線性遞減-1到-2
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.116.206
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Fortran/M.1548745709.A.8BC.html
1F:→ rex0707: 直接"DO i = 0 , k_max-1" 如何?01/29 16:21
2F:→ liaoamy123: 你好,試過可以執行,但我需要a從2趨近到0,但執行答01/29 17:04
3F:→ liaoamy123: 案出來一直在2!01/29 17:04
※ 編輯: liaoamy123 (114.137.116.206), 01/29/2019 17:06:13
※ 編輯: liaoamy123 (114.137.116.206), 01/29/2019 17:08:08
4F:推 espresso1: 改成Do while (i<k_max) 01/29 17:10
5F:→ espresso1: 另外整數除以整數的結果,小數部分會捨去 01/29 17:13
6F:→ espresso1: 因此2/k_max=0,-1/k_max=0 01/29 17:15
7F:→ espresso1: 改成2.0/k_max及-1.0/k_max就可以了 01/29 17:17
8F:→ liaoamy123: 謝謝你,跑出來了! 01/29 17:30
11F:推 sin55688: 應該是呼叫副程式\函數 用法錯誤吧 01/29 18:30
12F:推 espresso1: 可能要檢查看副程式名稱,或主副程式間對應的引數型態 01/29 20:16
13F:→ espresso1: 有無符合 01/29 20:16
14F:→ liaoamy123: 好的,我再試試看哪邊出錯!謝謝 01/30 17:41