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

作者: george1224 ( )   2014-03-19 23:09:49
大概想一下 隨手寫的 沒測過
我知道應該會有問題
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
: 該怎麼讓她照題目的要求 每兩個小時列印出結果
: 而不是照著細菌孳生的數目 ?
作者: s23325522 (披著狼皮的羊)   2014-03-20 09:41:00
thx!但MOD的用法沒有教到 我們是用FORTRAN 2003這本書
作者: Cypresslin (啊哈哈~~)   2014-03-20 11:43:00
Fortran 2003 Handbook? see "Modulo"
作者: sin55688 (單手挑藏獒)   2014-03-20 14:47:00
不贊成直接幫他打好架構,原PO不自己想,永遠學不會
作者: george1224 ( )   2014-03-21 00:59:00
所以這個程式有問題 需要去解決的~
作者: blc (Anemos)   2014-03-23 15:27:00
mod是餘數不是module。啊啊,看錯,sorry

Links booklink

Contact Us: admin [ a t ] ucptt.com