dポイントプレゼントキャンペーン実施中!

フォートランの 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

A 回答 (5件)

FORTRANなんて学生だった頃にちょっとしただけなのであまり覚えていないし、質問のようなIF文はつかった覚えがないですが、IF

( A ) L1,L2,L3 は Aが負のときL1、0のときL2、正のときL3へジャンプしなさいということではないでしょうか?
    • good
    • 0

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があるがここには来ない
と思う。不明。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/09 10:55

こんばんは。


私も、高校の時に習いましたので、参考書を見てみました。

  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回だけ回ることになります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/09 10:53

工業系の高校で習いました...10年以上前...懐かしいです。


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

参考URL:http://www.g.dendai.ac.jp/class/fortran/fort09.h …

この回答への補足

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

DO 13 K=2,M

では K=2,2 になりますけど,この場合はM=2についてのみ
行われることになるんですか?

補足日時:2002/10/08 16:59
    • good
    • 0

FORTRANなんて学生だった頃にちょっとしただけなのであまり覚えていないし、質問のようなIF文はつかった覚えがないですが、IF

( A ) L1,L2,L3 は Aが負のときL1、0のときL2、正のときL3へジャンプしなさいということではないでしょうか?
    • good
    • 0

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