作者george1224 ( )
看板Fortran
標題Re: [問題] 怎麼讓他兩個小時列印一次
時間Wed Mar 19 23:09:49 2014
大概想一下 隨手寫的 沒測過
我知道應該會有問題
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)
1F:推 s23325522:thx!但MOD的用法沒有教到 我們是用FORTRAN 2003這本書 03/20 09:41
2F:→ Cypresslin:Fortran 2003 Handbook? see "Modulo" 03/20 11:43
3F:→ sin55688:不贊成直接幫他打好架構,原PO不自己想,永遠學不會 03/20 14:47
4F:→ george1224:所以這個程式有問題 需要去解決的~ 03/21 00:59
5F:→ blc:mod是餘數不是module。 03/23 15:27
6F:推 blc:啊啊,看錯,sorry 03/23 15:28