fortran 動態計算

大家好~

請問如何用fortran來進行動態計算?

就是每當我輸入一個數值時,

程式會把這次輸入的值和之前的值做計算並列印一次,

像是和,平均數,標準差等需要連續輸入不同的值來做計算,

ex.連續輸入2,4,6,10

程式就會列印:

輸入值.....N.....總和....平均數

...2..........1.......2...........2

...4..........2.......6...........3

...6..........3.......12.........4

...10........4........22........5.5

輸入一個值,他就印一排這樣

因為還是個新手,想了實在很久還是想不出來,懇請各位幫忙指點了~!!

已更新項目:

對了,如果可以的話麻煩幫我註記一下,讓我知道每一行在幹嘛,謝謝!

2 個解答

評分
  • 卸貨
    Lv 5
    7 年前
    最佳解答

    program main

    implicit none

    integer :: ValuesCount = 0 ! 記錄輸入的數量

    real :: NewValue

    real :: Sum = 0 ! 記錄所有輸入值的總和

    real :: Sum2 = 0 ! 記錄所有輸入值平方的總和

    real :: Average ! 平均

    real :: Variance ! 變異數

    real :: StdDev ! 標準差,因為 StandardDeviation 太長了,所以縮寫。

    do while( .true. )

    write(*,*) "Input a value :"

    read(*,*) NewValue

    ValuesCount = ValuesCount + 1

    Sum = Sum + NewValue

    Sum2 = Sum2 + NewValue**2

    Average = Sum/ValuesCount ! 平均等於總和除上數量,很單純。

    Variance = Sum2/ValuesCount - Average**2 ! 變異數的公式請自行查看維基百科

    StdDev = sqrt(Variance)

    write(*,"('cnt =',i2,' sum =',f8.2,' ave =',f8.2,' stddev =',f8.2)") &

    ValuesCount, Sum, Average, StdDev

    end do

    stop

    end program main

  • 匿名使用者
    7 年前

    發問者你好:

    幫你整理好了,詳細資料在這邊

    http://adf.ly/jXLsv

    希望其他回答者也認同我意見^^

還有問題?馬上發問,尋求解答。