Re: [問題] 怎麼讓他兩個小時列印一次

看板Fortran作者 ( )時間10年前 (2014/03/19 23:09), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串2/2 (看更多)
大概想一下 隨手寫的 沒測過 我知道應該會有問題 implicit none integer i,j,k real a,b a=1. b=1. do i=1,24*60 if(mod(i,90).eq.0) a=a*2. if(mod(i,70).eq.0) b=b*2. if(mod(i,900).eq.0) a=a*0.999 if(mod(i,200).eq.0) b=b*0.99 if(mod(i,2*60).eq.0) print*,'survile bacteria A:',a,' B:',b enddo stop end try it! ※ 引述《s23325522 (披著狼皮的羊)》之銘言: : 科學家新發現兩種產氫細菌,某生化工程師想利用它門產製氫氣。首先他要決定 : 選用哪種細菌較好,所以他要比較這兩種微生物的生長速率,因此他在實驗室裡 : 以適當的兩種培養基培養這兩種微生物。他發現細菌 A 每 90 分鐘會分裂一次, : 而細菌 B則每70 分鐘分裂一次。當然,也有一小部分的微生物會因種種原因而 : 死亡;細菌 A 的死亡率是每 900 分鐘族群中的千分之一會死亡,而細菌 B 則是 : 每 200 分鐘族群中的百分之一會死亡。假設實驗開始時,在每種培養基裡只有一 : 個細菌。寫一個程式計算從開始至 24 小時止,每隔 2 小時,在培養基裡的細菌 : 數目及兩者的數量差異為何,同時對兩者的生長速率做個結論。 : 上面是題目 : 目前我寫出的程式碼: : program main : implicit none : integer i,sumA,sumB : integer ::counter=1440 : sumA=1 : do i=90,counter,90 : sumA=sumA*2 : write(*,*)'細菌a的數目',sumA : end do : sumB=1 : do i=70,counter,70 : sumB=sumB*2 : write(*,*)'細菌B的數目',sumB : end do : end : 該怎麼讓她照題目的要求 每兩個小時列印出結果 : 而不是照著細菌孳生的數目 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.148.103 ※ 編輯: george1224 來自: 118.160.148.103 (03/19 23:10)

03/20 09:41, , 1F
thx!但MOD的用法沒有教到 我們是用FORTRAN 2003這本書
03/20 09:41, 1F

03/20 11:43, , 2F
Fortran 2003 Handbook? see "Modulo"
03/20 11:43, 2F

03/20 14:47, , 3F
不贊成直接幫他打好架構,原PO不自己想,永遠學不會
03/20 14:47, 3F

03/21 00:59, , 4F
所以這個程式有問題 需要去解決的~
03/21 00:59, 4F

03/23 15:27, , 5F
mod是餘數不是module。
03/23 15:27, 5F

03/23 15:28, , 6F
啊啊,看錯,sorry
03/23 15:28, 6F
文章代碼(AID): #1JARD0t9 (Fortran)
文章代碼(AID): #1JARD0t9 (Fortran)