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