• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:至急!FORTRANを教えてください!)

【FORTRAN入門】x(○,○)の配列番号を知りたい!dxdtが正で最小になる場合の解法とは?

このQ&Aのポイント
  • 初心者でも分かるFORTRANのプログラム組み方を教えてください。具体的な問題として、dxdtが正で最小になる場合のx(○,○)の配列番号を知りたいとき、どうすればいいか教えてください。
  • まず、dxdtの定義を確認して、その最小値を求めます。具体的な計算式と結果の例を示しました。次に、最小値と一致するx(○,○)の配列番号を求めるために、FORループを使用します。具体的なアルゴリズムと解法を詳しく解説します。
  • 最後に、FORTRANのプログラム例を示して、実際に問題を解く手順を説明します。初心者でも理解しやすいように、分かりやすい解説を心がけました。是非、参考にしてみてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

< Maxとかを定義している文と解釈してよろしいでしょうか? > はい、そうです。 < 僕の質問にある例題の(i,j)がでるのですか > 例; 代用するとかえってごちゃごちゃするのだけど 解んないの??。 For i = 1 To 10 For j = 1 To 10 If =(x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1)>= Max Then Max = =(x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) Y = j 'ここが、ポイントです。 ElseIf =(x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) <= Min then Min = =(x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) X = j 'ここが、ポイントです。 End If Next j Next i

y-auio
質問者

お礼

わかりやすく回答いただきましてありがとうございます。 チャレンジしてみます!

その他の回答 (4)

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.5

< 初心者なんでなかなか上手くプログラムが組めません。> なら、下記を参考にゼロから勉強して 基礎を学んでください。 1.FORTRANプログラミング初級編・・・どとらかと言うと超初心者向けです。 多分あなた向けです。 http://svr01.damp.tottori-u.ac.jp/~akimoto/Fortran/ 2.初心者のためのFortran入門 http://homepage.mac.com/galois21/fortran/ 3.Fortran プログラミングの基礎知識  http://www.uopmu.ees.osakafu-u.ac.jp/~yabu/soft/fortran.h

y-auio
質問者

お礼

何度も回答いただきありがとうございました! 頑張って勉強します!

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.4

例; 代用するとかえってごちゃごちゃするのだけど 解んないの??。 For i = 1 To 10 For j = 1 To 10 If  (x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1)>= Max Then Max =(x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) Y = j 'ここが、ポイントです。 ElseIf (x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) <= Min then Min = (x(m-j+1,j)-x(m-j,j+1))/(t(m-j+1,j)-t(m-j,j+1) X = j 'ここが、ポイントです。 End If Next j Next i

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.3

追加です。 Max の部分は、myMax でも AAbbcc でも 自分が解れば、なんでも 良いですよ。 但し FORTRAN は、実数を宣言する場合は、先頭文字は    H,I,J,K,L,M,N 以外を使用しなければ、ならないので注意すること。

y-auio
質問者

お礼

わかりました! ありがとうございます!

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

下記は、簡単な例です。 下記コードを実行すると  Yには、Max値が、得られたときの Jの値が、 Xには、Min値が、得られたときの Jの値が それぞれ入ります。 これを、応用してください。 Sub test() Dim Max As Variant Dim Min As Variant Dim Y As Integer Dim X As Integer Dim Data(10) As Variant Max = 0 Min = 9999 Y = 0 X = 0 Data(1) = 100 Data(2) = 5 Data(3) = 2 Data(4) = 3.5 Data(5) = 80 Data(6) = 6 Data(7) = 41 Data(8) = 2.8 Data(9) = -10 Data(10) = -5 For j = 1 To 10 If Data(j) >= Max Then Max = Data(j) Y = j 'ここが、ポイントです。 ElseIf Data(j) <= Min Then Min = Data(j) X = j 'ここが、ポイントです。 End If Next j End Sub

y-auio
質問者

補足

返答ありがとうございます。 この回答について質問なんですが、 まず、最初の6行 Sub test() Dim Max As Variant Dim Min As Variant Dim Y As Integer Dim X As Integer Dim Data(10) As Variant はただ、Maxとかを定義している文と解釈してよろしいでしょうか? 次に、この例の場合だと Max=100 Y=1 Min=-10 X=9 となるのでしょうか? また、Nextjというのは次のjに行けということですよね。 何分、分からないことが多くてもうしわけありません。 また、これをどう応用すれば、僕の質問にある例題の(i,j)がでるのですか?

関連するQ&A