これ何て呼びますか Part2

配列Xに入っているデータの最大値、最小値を求めるサブルーチンmaxminの作り方を教えてください。(n:データ数)

subroutine maxof(x,n,xmax,xmin)
implicit real*8(a-h,o-z)
real*8
C 最大値は変数xmaxに、最小値は変数xminに代入する
 !!この部分が分かりません!!
return
end

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

A 回答 (2件)

!検証の都合上求められているサブルーチン以外の部分のプログラムも全て書いてます。


!個人的な信条の関係で質問文のソースコード自体を意図的に無視しているところもあります。
!(問題がmaxminを定義することなのにmaxofサブルーチンを定義するようなソースになっている地点で矛盾している)

!ヒストグラムはやらない

program test

!暗黙の型宣言など邪道だ(笑)
!こうして書いてみると
!構文が非常にVBA/VB6に似ていて,派生元派生先であることを強く実感する。

implicit none
integer::n
real*8::x
real*8::y

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

allocate(arr(5))

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

n = ubound(arr,1)

call maxmin(arr,n,x,y)
print *,x,y

contains
!fortranは参照渡しらしい。
!個人的には二つのことを同時にやるんじゃなくて,
!max関数とmin関数だけを定義したい。
subroutine maxmin(x,n,xmax,xmin) !
real*8,dimension(:)::x
real*8::xmax
real*8::xmin

integer::n
integer::i

xmin = x(1)
xmax = x(1)

do i = 2,n
if (xmax < x(i)) then
xmax = x(i)
end if
if (xmin > x(i)) then
xmin = x(i)
end if
end do
end subroutine

end program
    • good
    • 0
この回答へのお礼

とても参考になりました。
留年は免れそうです。
どいつもこいつも冷やかしの回答ばっかりだったので、
あなたの回答はとてもうれしいものです。
ありがとうございました。

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

使っている言語とか処理系とか規格を書いてくれないかなぁ.


でも, こんなのわざわざサブルーチンで作るかねぇ. 何も考えずに maxval/minval で終わりなのに.

この回答への補足

大学の勉強でFortranを使っているからです。
マジ分からん。
助けて!!

補足日時:2009/07/31 13:03
    • good
    • 0

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


おすすめ情報