• ベストアンサー

fortranのif文で・・・

フォートランの if文で IF(M-1) 15,15,12 ってのがあるんですが,これはどういう意味を表しているのでしょうか ? IF(R.LE.0.D0) THEN ・・・・ ならRが0より小さいときは・・・・しなさい.って命令ですよね. でもうえのは,カッコの中がいったいどういうときならってのを表してるのかも分からないし,15,15,12 ってのも意味がわかりません. 基本的なことかもしれませんが,よろしくお願いします. 一応その部分のプログラムも載せておきます. X(N+1)=X(1) Y(N+1)=Y(1) DO 10 I=1,N XM(I)=(X(I)+X(I+1))/2 10 YM(I)=(Y(I)+Y(I+1))/2 IF(M-1)15,15,12 12 XM(NC(1))=(X(NC(1))+X(1))/2 YM(NC(1))=(Y(NC(1))+Y(1))/2 DO 13 K=2,M XM(NC(K))=(X(NC(K))+X(NC(K-1)+1))/2 13 YM(NC(K))=(Y(NC(K))+Y(NC(K-1)+1))/2 15 CONTINUE

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

  • ベストアンサー
  • SHJYOR
  • ベストアンサー率35% (7/20)
回答No.1

FORTRANなんて学生だった頃にちょっとしただけなのであまり覚えていないし、質問のようなIF文はつかった覚えがないですが、IF ( A ) L1,L2,L3 は Aが負のときL1、0のときL2、正のときL3へジャンプしなさいということではないでしょうか?

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

xの値がゼロになったら、ストップさせるプログラムを書くならIF (X.EQ.0)  STOP 「.」をふくめて、「.EQ.」で比較演算子。 ------ 算術if文は一般的に以下のように使う。 if(算術式で書かれた条件)負の場合の文番号、零の場合の文番号、正の場合の文番号 IF(A)10,20,30は負のとき、0の時、正負のときの飛ぶ先の行文番号。 ---- 算術 if 文 Fortran 90 までは互換性のために存在するが, プログラムの論理構造がわかりにくいため, 利用は奨められない。 Fortran 95 では廃止された。 例 if (x) 10, 20, 30 --- IF(A)は論理変数Aが真か偽かきくもの。 Mが数値の時IF(M-1)は通常使わないのでは。 ---- IF(R.LE.0.D0) THEN LE.0.のあとはDOかD0か。 DOはDO...END DO,Do WHILE END DOがあるがここには来ない と思う。不明。

fulikuli
質問者

お礼

回答ありがとうです。 じぶんでももっと勉強しないとだめですね。 また質問あるかもしれません。 その時はよろしくお願いします。 ありがとうございました。

  • Takochu
  • ベストアンサー率53% (82/154)
回答No.4

こんばんは。 私も、高校の時に習いましたので、参考書を見てみました。   IF (e) s1,s2,s3 は、算術IF文と呼ばれるもので、カッコ内 e の結果が、   e<0 なら、s1 の文番号に   e=0 なら、s2 の文番号に   e>0 なら、s3 の文番号に、それぞれジャンプします。 ですから、15,15,12 は文番号です。 > K=2,2 になりますけど,この場合はM=2についてのみ > 行われることになるんですか? そうですね。 M=2 で、ループを1回だけ回ることになります。

fulikuli
質問者

お礼

回答ありがとうです。 皆さん高校で習っていらっしゃるんですね。 僕は大学3年からなんですが。 補足に対する回答も、ありがとうございました。

  • LAMY
  • ベストアンサー率25% (249/985)
回答No.3

工業系の高校で習いました...10年以上前...懐かしいです。 #1が書かれたので正しいですが、参考のURLを載せます。 それと「LE」は「0」も含むので注意。      ^^^ 昔覚える時に「L⇔<」「G(下の部分)⇔>」と覚えました。 「E」はイコールですね...(^-^:...恥ずかしい。

参考URL:
http://www.g.dendai.ac.jp/class/fortran/fort09.html
fulikuli
質問者

補足

早速のお返事ありがとうございます. すっごく助かりました. ちなみに,乗せたプログラムでですが, M=2の場合(M-1)は正になるので12へ飛びますよね. すると DO 13 K=2,M では K=2,2 になりますけど,この場合はM=2についてのみ 行われることになるんですか?

  • SHJYOR
  • ベストアンサー率35% (7/20)
回答No.2

FORTRANなんて学生だった頃にちょっとしただけなのであまり覚えていないし、質問のようなIF文はつかった覚えがないですが、IF ( A ) L1,L2,L3 は Aが負のときL1、0のときL2、正のときL3へジャンプしなさいということではないでしょうか?

関連するQ&A

専門家に質問してみよう