Re: [問題] 很基本的問題~~~~~

看板Fortran作者 (Laa)時間15年前 (2009/06/20 02:20), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #1AEzRmc0 (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1AEzRmc0 (Fortran)