作者laa7352 (Laa)
看板Fortran
标题Re: [问题] 很基本的问题~~~~~
时间Sat Jun 20 02:20:30 2009
※ 引述《anny78929 (吃遥)》之铭言:
: 各位高手
: 请问一下
: 写一个程式,印出 1 到 N 的偶数,但不是 6 的倍数。
: read (*,*) n
: do i = 2, n, 2
: if (i/6*6 == i) go to 10
: write(*,33) i
: 33 format(1x,'i=',i3)
: 10 enddo
: 我不懂格式里
: (1x,'i=',i3)的意思
: 另一个程式~
: integer x y Ans
: open (4,file=' d:\out4b')
: do 10 x = 1,5
: do 10 y = -3,2
: Ans=sqrt(x**2+y**2)
: write (4,*) x,y,Ans
: 10 enddo
:
: end
: 我不懂
: open (4,file=' d:\out4b')和write (4,*) x,y,Ans
: ()里的4是什麽意思~
: 可以教教我吗?
: 谢谢:)
第一个问题
write(*,33) i
33 format(1x,'i=',i3)
这二行是对应的
format括号里第一个是 1x
如果你愿意查的话 可以发现x在格式中代表空格或忽略的意思
没有对应变数
那麽x前面的1是代表x的数量为1
也就是空一格的意思
第二个
'i=
',因为前後有
引号把文字包来
意思是输出文字i跟=
所以萤幕上你会看到如下
i=
^
空一格
第三个i3,i在格式中代表的是整数,有对应变数
後面的3,是代表i的格数为3,代表对应的变数会用整数的型式表形
并且格数为3格
所以,再看一次格式的叙述
write(*,33)
i
33 format(
1x,
'i=',
i3)
在write里的i是变数
所以format里会对应变数的叙述从前面往後看,只有i3
所以格式里的i3,是对应write里的变数i
也就代表变数i的表现方式是3格整数
举个例子,假如i=1 5 10三个数
所以程式结果为
i= 1
i= 5
i= 10
第二个问题
open (4,file=' d:\out4b')和write (4,*) x,y,Ans里的4
先看open的叙述,你的open叙述里有二个部份
第一个部份是4,第二个部份是file=...
如此的叙述代表的是你用open指令去开启了一个档案
叫d:\out4b,同时在当下的fortran程式里,给这个档案一个代称叫 4
在这个fortran结束前或未close(4)以前
这个代称4就代表那open指令里开启的档案
然後在使用input output之类指令时,给代称4 就会把输出输入指向对应的档案
举个例子
open(11,file='a.txt')
open(22,file='b.txt')
write(11,*)'i love you'
write(12,*)'me too'
在a.txt档案里你可以看到 i love you
而在b.txt档案里可以看到 me too
--
老实说…fortran95里都有阿~~
查一下吧…
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.146.93
1F:→ anny78929:揪甘心!!!!非常非常感谢你如此用心的为我解释!! 06/24 23:06
2F:→ anny78929:谢谢你的耐心~感激不尽...我也有好好再去研读课本了 06/24 23:07
3F:→ anny78929:你的详细说明让我获益良多喔 06/24 23:08