Re: [問題] 很基本的問題~~~~~
※ 引述《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
→
06/24 23:06, , 1F
06/24 23:06, 1F
→
06/24 23:07, , 2F
06/24 23:07, 2F
→
06/24 23:08, , 3F
06/24 23:08, 3F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章