プロが教える店舗&オフィスのセキュリティ対策術

配列xに入っているデータの平均値を求める関数副プログラムaver(x,n)の作り方がよく分かりません。

function aver(x,n)
implicit real*8(a-h,o-z)
real*8 x(*)
!!この部分が分かりません。!!
return
end

教えてください。
よろしくお願いします。

A 回答 (1件)

program test


implicit none
integer::n

real*8,allocatable,dimension(:)::arr

!面倒なので直接ソース中に埋め込んでいるが,
!本来は別ファイルから読み込み,値の個数に応じて,
!allocateしなおすような仕組みを作るべき。

allocate(arr(5))

arr(1) = 57d0
arr(2) = 24d0
arr(3) = 38d0
arr(4) = 92d0
arr(5) = 37d0

!本当は引数渡しではなく,引数のみを関数に渡し,
!関数がuboundを行うべきだろうと思う。

n = ubound(arr,1)
print *,aver(arr,n)

contains
real*8 function aver(x,n)
real*8,dimension(:)::x
integer::n
integer::i
do i = 1,n
aver = aver + x(i)
end do
aver = aver / n
end function
end program
    • good
    • 0
この回答へのお礼

詳しく教えて下さり、
ありがとうございました。
参考になりました。

お礼日時:2009/08/02 22:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!