[問題] rms average的算法

看板Fortran作者 (wodada)時間14年前 (2010/02/14 21:35), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
小弟在找習題練fortran程式時 找到練均方根值的算法 雖然最終寫出來沒有任何錯誤,但是執行的結果卻令我相當的囧 以下是我寫的程式:...... program RMS implicit none INTEGER :: N= 0 !THE NUMBER OF INPUT SAMPLE REAL :: RMS_AVG= 0 !THE RMS AVERAGE OF INPUT SAMPLE REAL :: SUM_X2= 0 !THE SUM OF THE INPUT VALUE REAL :: X= 0 !AN INPUT DATA VALUE !WHILE LOOP TO READ INPUT VALUES DO WRITE(*,*) "ENTER THE NUMBER:" READ(*,*) X WRITE(*,10) 10 FORMAT(1X,F10.3,"THE NUMBER IS:, X") IF(X < 0)EXIT N= N + 1 SUM_X2= SUM_X2 + X**2 END DO RMS_AVG= SQRT(SUM_X2/REAL(N)) WRITE(*,*) "THE RMS AVERAGE IS:", RMS_AVG PAUSE end program RMS 執行出來的結果,卻是一直不斷的按數字,無法算出rms的數值.... 另外,在do迴圈中間的write無法顯示裡面的字串..... 還請各位高手指點 感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.155.180

02/14 21:45, , 1F
迴圈除了X<0 以外 似乎無法跳出迴圈 可以compilar??
02/14 21:45, 1F

02/14 21:54, , 2F
可以compiler,只是一直不斷出現字串要我輸入數字,然後一直
02/14 21:54, 2F

02/14 21:54, , 3F
輸入數字....
02/14 21:54, 3F

02/14 21:58, , 4F
恩 可以COMPILER 現在在於無法跳出回圈 除非給負數
02/14 21:58, 4F

02/15 20:03, , 5F
write(*,10) X
02/15 20:03, 5F

02/15 20:04, , 6F
10 format("THE NUMBER IS:,",1x,f10.3)
02/15 20:04, 6F

02/15 20:06, , 7F
以上是write的寫法修正 變數x不該寫在format裡面
02/15 20:06, 7F

02/15 20:06, , 8F
要每次都算出RMS,要把計算公式跟write寫在do裡面
02/15 20:06, 8F

02/20 00:16, , 9F
謝謝各位!!
02/20 00:16, 9F
文章代碼(AID): #1BT_mBr6 (Fortran)
文章代碼(AID): #1BT_mBr6 (Fortran)